明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 23314|回复: 196

[讨论] 动态调整图案填充比例的程序?

  [复制链接]
发表于 2011-1-8 16:34 | 显示全部楼层 |阅读模式
本帖最后由 cj52000 于 2011-1-8 17:19 编辑

各位好:
             想求一程序,就是图案填充后,然后可以动态调整其比例,就像“动态调整线型比例 ”一样,贴子如下http://bbs.mjtd.com/thread-84751-1-3.html,论坛里也有类似的程序,但是太复杂,我只是要单纯的调整填充比例,谢谢!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-3-24 14:09 | 显示全部楼层
看看隐藏了什么好东东
发表于 2021-2-7 22:40 | 显示全部楼层

谢谢分享谢谢分享
发表于 2024-4-22 14:56 | 显示全部楼层
感谢分享~
学习了~
发表于 2011-1-8 20:31 | 显示全部楼层

是不是这样?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2011-1-8 21:46 | 显示全部楼层
回复 gzxl 的帖子

回gzxl兄,你发的论坛上有,是这样的,不过图案填充是我已经填充好了的,我只需要改变它的线型比例就好,谢谢!
 楼主| 发表于 2011-1-10 14:35 | 显示全部楼层
版主来看看呀
发表于 2011-1-10 16:32 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-3-26 19:09 编辑

回复 cj52000 的帖子
;;;动态调整填充比例 作者:Gu_xl
  1. ;;;2007以上版本适用


  2.   (defun c:dhatchscale (/ flag p1 p2 p3 en enline gr d scale oldscale newscale enl obj olderr myerr origin)
  3.    (defun myerr(msg)
  4.     (setq *error* olderr)
  5.     (command "_.undo" "_b")
  6.     (princ)
  7.   )
  8.   (setq olderr *error* *error* myerr )
  9.   (command "_.undo" "m")
  10.     (setq flag t)
  11.   (while flag
  12.     (setq en (entsel "\n选择填充:"))
  13.     (if (and en (= "HATCH" (cdr (assoc 0 (entget (car en))))))
  14.       (setq flag nil)
  15.       )
  16.     )
  17.   (setq obj (vlax-ename->vla-object (setq en (car en))))
  18.   (vla-GetBoundingBox obj  'p2 'p3)
  19.   (setq p2 (vlax-safearray->list p2)
  20. p3 (vlax-safearray->list p3)
  21. p1 (mapcar '(lambda (x) (* 0.5 x)) (mapcar '+ p2 p3))
  22. )
  23.   
  24.   (setq d (* 0.1 (getvar "viewsize")))
  25.   (setq scale (vla-get-PatternScale obj)
  26. AssociativeHatch (vla-get-AssociativeHatch obj)
  27. origin (vla-get-Origin obj)
  28. oldscale scale)
  29.   (entmake (list (cons 0 "line") (cons 62 2) (cons 10 p1) (cons 11 (polar p1 0 d))))
  30.   (setq enline (entlast))
  31.   (vla-copy obj)
  32.   (setq obj (vlax-ename->vla-object (entlast)))
  33. (vla-put-Origin obj origin)
  34.   (vla-put-AssociativeHatch obj :vlax-false)
  35.   (entdel en)
  36.   
  37.   (setq flag t)
  38.   (while flag
  39.     (setq gr (grread T 1))
  40.     (if (= (car gr) 5)
  41.       (progn
  42. (setq p2 (cadr gr))
  43. (entdel enline)
  44. (entmake (list (cons 0 "line") (cons 62 2) (cons 10 p1) (cons 11 p2)))
  45. (setq enline (entlast))
  46. (setq newscale (* scale (/ (distance p1 p2) d)))
  47. (if (not (equal newscale oldscale 0.01))
  48.    (progn
  49.      (vla-copy obj)
  50.      (vla-delete obj)
  51.      (setq obj (vlax-ename->vla-object (entlast)))
  52. (vla-put-PatternScale obj newscale)
  53. ;(vla-update obj)
  54. (setq oldscale newscale)
  55. )
  56.    )
  57.    )
  58.       (progn
  59. (entdel enline)
  60.       (setq flag nil)
  61.       )
  62.       )
  63.     )
  64.   (vla-delete obj)
  65.   (entdel en)
  66.   (setq obj (vlax-ename->vla-object en))
  67.   (vla-put-PatternScale obj newscale)
  68.   ;(vla-update obj)

  69.   (setq  *error*  olderr )
  70.   (princ)
  71.   )

点评

怎么不改进一下呢版主 这么好的程序就这样浪费了  发表于 2012-10-28 09:44
2007 不能用  发表于 2012-3-27 10:03
在cad2004上用 “选择填充:”时选不到填充 怎么回事?  发表于 2012-3-26 13:46
你试试呢?我的CAD2006  发表于 2012-3-26 13:40
程序怎么不能用?能够动态看到变化调整 可是点击左键或右键 图案就恢复原状  发表于 2012-3-26 13:39
发表于 2011-1-10 17:38 | 显示全部楼层
还是Gu_xl版主的好玩,呵呵!谢谢!

点评

我 2004 2006 均不能用  发表于 2012-3-26 18:25
Gu_xl的程序 你能用吗?  发表于 2012-3-26 18:23
 楼主| 发表于 2011-1-11 08:23 | 显示全部楼层
本帖最后由 cj52000 于 2011-1-11 08:26 编辑

回复 Gu_xl 的帖子

回Gu_xl版主,程序很好用,可能是我的CAD2010有问题,我新建一个图档,可以正常使用,如果我打开已经画好的图档,那条控制线就飞得好远,而且也动不了,再次感谢您的热心!
发表于 2011-1-11 12:28 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-1-11 12:33 编辑

回复 cj52000 的帖子

控制线就飞得好远,可能是你的ucs的问题!你可以自己修改一下,用函数trans将grread得到的p2坐标转到wcs,示例:(setq p2 (trans p2 1 0))
 楼主| 发表于 2011-1-12 19:44 | 显示全部楼层
回复 Gu_xl 的帖子

不怕版主见笑,我刚入门是个菜乌,不会改啊
发表于 2011-1-12 22:05 | 显示全部楼层
回复 cj52000 的帖子

或者你在程序开始加上这段代码,将坐标系改为wcs
(command "_ucs" "w")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-6 00:58 , Processed in 0.292549 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表