找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: eachy

[原创] 可自由定制的最强劲的刷子

[复制链接]
发表于 2004-12-29 12:11:54 | 显示全部楼层
宽度不能刷,当我把PL的宽度传到普通直线的时候不行,能否加强一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-29 14:28:32 | 显示全部楼层
可以显示原始物体的属性
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-29 14:53:19 | 显示全部楼层
是可以显示宽度值,但不能刷呀。斑竹能否再加强一下呢?
这个程序真的是很有新意。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-29 15:05:17 | 显示全部楼层
程序只将通用的属性传递到目标物体上,而不是所有属性。希望把一条直线刷成圆弧么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-29 15:12:34 | 显示全部楼层
最初由 aeo 发布
[B]有个问题

比如0层,红色,画了一line1,颜色随层
1层,黄色, line2,颜色随层

刷的时候,勾了颜色,但没勾图层.
那line2要不要改颜色呢?

cad的刷子是不改的,那不是白刷了吗? [/B]

不改更合理。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-29 15:44:43 | 显示全部楼层
为什么使用文字刷后,在刷其他属性时文字也改变?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-30 12:03:13 | 显示全部楼层
1自动获得样本实体的所有可操作属性(小心dim类实体,属性超多)
2将样板实体的属性分为public 和 private


  1. ;;我也会编程, 可自由定制的最强劲的刷子                          
  2. ;;==============================================================
  3. ;;                                                              
  4. ;;     Writen By Eachy Email: [email]eachy@21cn.com[/email]   2004.12.23      
  5. ;;                                                              
  6. ;;              homepage: [url]www.xdcad.net[/url]                        
  7. ;;                                                              
  8. ;;==============================================================
  9. ;;获取某一个实体所有可用属性  petersciganek                     
  10. ;;[url]http://discussion.autodesk.com/thread.jspa?messageID=3941641[/url]  
  11. ;;==============================================================
  12. (defun f:vl-property-available (en)
  13.   (setq en (f:enx en))
  14.           (vl-remove-if-not
  15.             (function (lambda (x) (vlax-property-available-p en x t)))
  16.             (f:vla-getlist)
  17.           )
  18. )
  19. (defun f:vla-getlist ()
  20.   (cond
  21.     (*vla-getlist*)
  22.     ((setq *vla-getlist*
  23.             (mapcar (function (lambda (x) (substr x 9)))
  24.                     (vl-remove-if-not (function (lambda (x) (wcmatch (strcase x) "VLA-GET-*"))) (atoms-family 1))
  25.             )
  26.      )                                        ;setq
  27.     )
  28.   )
  29. )
  30. (defun f:vla-methodlist        ()
  31.   (cond
  32.     (*vla-methodlist*)
  33.     ((setq *vla-methodlist*
  34.             (mapcar (function (lambda (x) (substr x 5)))
  35.                     (vl-remove-if-not
  36.                       (function        (lambda        (x)
  37.                                   (and
  38.                                     (wcmatch (strcase x) "VLA-*")
  39.                                     (not (wcmatch (strcase x) "VLA-GET-*,VLA-PUT-*"))
  40.                                   )        ;and
  41.                                 )
  42.                       )
  43.                       (atoms-family 1)
  44.                     )
  45.             )
  46.      )                                        ;setq
  47.     )
  48.   )                                        ;cond
  49. )
  50. (defun f:vl-method-applicable (en)
  51.   (setq en (f:enx en))
  52.   (vl-remove-if-not
  53.     (function (lambda (x) (vlax-method-applicable-p en x)))
  54.     (f:vla-methodlist)
  55.   )
  56. )
  57. (defun f:enx (en)
  58.   (if (= (type en) 'ENAME)
  59.     (vlax-ename->vla-object en)
  60.     en
  61.   )
  62. )
  63. ;;==============================================================
  64. ;;产生动态对话框,用户供选择  wkai                              
  65. ;;==============================================================
  66. (defun zf:get_properties (e pl / DCL_NAME E F FLAG INDEX_VALUE PL1 VAR pl2 pl0 )
  67.   ;;;======================================================
  68.   (defun zf:format_str (a b)
  69.     (print a)
  70.     (princ " ")
  71.     (princ (type a))
  72.     (setq a (vl-princ-to-string a))
  73.     (if        (> (strlen a) b)
  74.       (setq a (strcat (substr a 1 (- b 1)) "."))
  75.       (repeat (- b (strlen a) )  (setq  a (strcat a " ")))      
  76.     )
  77.     a
  78.   )
  79.   ;;;======================================================
  80.   (defun zf:check_toggles ()
  81.     (foreach n pl0
  82.       (if (= "1" (get_tile (vl-princ-to-string (if (listp n)(car n)n))))
  83.         (setq pl2 (cons (if (listp n)(car n)n) pl2))
  84.       )
  85.     )
  86.     (done_dialog 1)
  87.   )
  88.   ;;;======================================================
  89.   (defun zf:selectall (str pl1 / mode)
  90.     (setq mode (get_tile str))
  91.     (foreach n pl1
  92.       (set_tile (vl-princ-to-string (if (listp n)(car n)n)) mode)

  93.     )
  94.   )
  95.   ;;;======================================================
  96.   (defun zf:get_rows(n / lst)
  97.   (cond
  98.     ((< n 6)(setq b 1))
  99.     ((< n 18)(setq b 2))   
  100.     (t(setq b 3))   
  101.     )
  102.   (setq        c (1+ (fix (/ n b 1.0)))
  103.         m 1
  104.   )
  105. (while (<= m c)
  106.   (setq r (rem n m))
  107.   (if (or (= r 0)(> r (* 0.7 m)))(setq lst (cons m lst) ))
  108.   (setq m (1+ m))  
  109.   )  
  110.   (car lst)
  111.   )
  112.   ;;;======================================================
  113.   (if (= 'ENAME (type e))
  114.     (setq e (vlax-ename->vla-object e))
  115.   )
  116.   (setq pl (f:vl-property-available e))
  117.   (foreach n pl
  118.     (if        (not (vl-catch-all-error-p
  119.                (setq var (vl-catch-all-apply
  120.                            'vlax-get-property
  121.                            (list e (if (listp n)(car n)n))
  122.                          )
  123.                )
  124.              )
  125.         )
  126.       (setq pl0 (cons n pl0))
  127.     )
  128.   )
  129.   (setq pl0 (mapcar 'read (vl-sort  pl0 '<)))
  130.   (setq pl1 pl0)
  131.   (setq        pl '((color "Color")
  132.              (layer "Layer")
  133.              (linetype "线型")
  134.              (lineweight "线宽")
  135.              (LinetypeScale "线型比例")
  136.              (PlotStyleName "打印样式")
  137.             ) ;_ 此处可根据需要增减
  138.   )
  139.   (foreach n pl
  140.     (setq pl1 (vl-remove (car n) pl1) )
  141.     )
  142.   (setq        m 0
  143.         o (zf:get_rows (length pl1))
  144.   )
  145.   (or o (setq o 20) )
  146.   (setq oo (fix(/ (length pl1) o 1.0) ))
  147.   (if(>(rem (length pl1) o )0)(setq oo (1+ oo)))
  148.   (setq oo (cadr (assoc oo '((1 6)(2 3)(3 2)(4 2)(5 2)(6 1)))))
  149.   (or oo (setq oo 1))       
  150.   (setq DCL_NAME (getvar "TEMPPREFIX"))
  151.   (setq dcl_name (strcat dcl_name "easy_matchprop" ".dcl"))
  152.   (SETQ f (OPEN dcl_name "w"))
  153.   (write-line
  154.     (strcat "ss:dialog{label=""
  155.             (vlax-get-property e 'ObjectName)
  156.             "";"
  157.     )
  158.     f
  159.   )
  160.   (write-line
  161.     ":boxed_row{label="Public Props";\n:column{"
  162.     f
  163.   )
  164. (foreach n pl
  165.     (setq m (1+ m))
  166.     (if        (> m oo)
  167.       (progn (setq m 1) (write-line "}\n:column{" f))
  168.     )
  169.     (write-line
  170.       (strcat ":toggle{label=""
  171.               (zf:format_str
  172.                 (if (listp n)
  173.                   (cadr n)
  174.                   n
  175.                 )
  176.                 15
  177.               )
  178.               ":"
  179.               (zf:format_str
  180.                 (vlax-get-property
  181.                   e
  182.                   (if (listp n)
  183.                     (car n)
  184.                     n
  185.                   )
  186.                 )
  187.                 15
  188.               )
  189.               "";key=""
  190.               (vl-princ-to-string
  191.                 (if (listp n)
  192.                   (car n)
  193.                   n
  194.                 )
  195.               )
  196.               "";}"
  197.       )
  198.       f
  199.     )
  200.   )
  201.   (repeat (- oo m)(write-line ":spacer{}" f))
  202.   (write-line "}}:boxed_row{label="Private Props";\n:column{" f)
  203.   (setq m 0)
  204.   (foreach n pl1
  205.     (setq m (1+ m))
  206.     (if        (> m o)
  207.       (progn (setq m 1) (write-line "}\n:column{" f))
  208.     )
  209.     (write-line
  210.       (strcat ":toggle{label=""
  211.               (zf:format_str (if (listp n)(cadr n)n)15)":" (zf:format_str (vlax-get-property e (if (listp n)(car n)n))15)
  212.               "";key=""
  213.               (vl-princ-to-string (if (listp n)(car n)n))
  214.               "";}"
  215.       )
  216.       f
  217.     )
  218.   )
  219.   (repeat (- o m)(write-line ":spacer{}" f))
  220.   (write-line "}}:row{:toggle{label="Public Props";key="selectall";}:toggle{label="Private Props";key="selectall1";}ok_only;}}" f)
  221.   (close f)
  222.   (setq index_value (load_dialog dcl_name))
  223.   (new_dialog "ss" index_value)
  224.   (action_tile "selectall" "(zf:selectall "selectall" pl)")
  225.   (action_tile "selectall1" "(zf:selectall "selectall1" pl1)")
  226.   (action_tile "accept" "(zf:check_toggles)")
  227.   (setq flag (start_dialog))
  228.   (unload_dialog index_value)
  229.   (print pl2)
  230.   pl2
  231. )
  232. ;;==============================================================
  233. ;;改特性的一种通用编程方法,变量名称使用特性名,用 eval 求值   
  234. ;;==============================================================
  235. (defun ea:put-property (obj plst /)
  236.   (mapcar '(lambda (p)
  237.              (if (eval p)
  238.                (vl-catch-all-apply
  239.                  'vlax-put-property
  240.                  (list obj p (eval p))
  241.                )
  242.              )
  243.            )
  244.           plst
  245.   )
  246. )
  247. ;;==============================================================
  248. ;;示例                                                         
  249. ;;用上面的函数可以做出比CAD更最强劲的并可以自由定制的刷子      
  250. ;; pl 中需要的特性参考联机帮助中各实体 Properties               
  251. ;;==============================================================
  252. (vl-load-com)
  253. (defun c:ea:mat (/ e ss obj pl olderr myerr eDoc)
  254.   (defun myerr (msg)
  255.     (if        (/= msg "取消")
  256.       (princ "\n*取消*")
  257.     )
  258.     (if        pl
  259.       (progn
  260.         (mapcar '(lambda (x) (set x nil)) pl)
  261.         (setq pl nil)
  262.       )
  263.     )
  264.     (vla-endundomark eDoc)
  265.     (setq *error* olderr)
  266.     (princ)
  267.   )
  268.   (setq eDoc (vlax-get-property (vlax-get-acad-object) 'activedocument))
  269.   (vla-startundomark eDoc)
  270.   (setq        olderr        *error*
  271.         *error*        myerr
  272.   )
  273.   (if (and (setq e (car (entsel "\n选择源对象: ")))
  274.            (setq pl (zf:get_properties e pl))
  275.            (progn
  276.              (princ "\n选择目标对象....")
  277.              (setq ss (ssget))
  278.            )
  279.       )
  280.     (progn      
  281.       (setq obj (vlax-ename->vla-object e))
  282.       (mapcar '(lambda (p / var)
  283.                  (if (not (vl-catch-all-error-p
  284.                             (setq var (vl-catch-all-apply
  285.                                         'vlax-get-property
  286.                                         (list obj p)
  287.                                       )
  288.                             )
  289.                           )
  290.                      )
  291.                    (set p var)
  292.                    (set p nil)
  293.                  )
  294.                )
  295.               pl
  296.       )
  297.       (setq ssl (sslength ss))
  298.       (while (> ssl 0)
  299.         (setq
  300.           obj (vlax-ename->vla-object (ssname ss (setq ssl (1- ssl))))
  301.         )
  302.         (ea:put-property obj pl)
  303.       )
  304.       (mapcar '(lambda (x) (set x nil)) pl)
  305.       (setq pl nil)
  306.     )
  307.   )
  308.   (setq *error* olderr)
  309.   (vla-endundomark eDoc)
  310.   (princ)
  311. )
  312. (princ "\nWriten By Eachy , From [url]www.xdcad.net[/url]!")
  313. (princ "\nModified  By Wkai , From [url]www.xdcad.net[/url]!")
  314. (princ "\n启动命令: ea:mat")
  315. (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2004-12-30 14:02:32 | 显示全部楼层
这个爽!功能太强了!唯一不足的就是英文太多,想找一个需要的属性要好半天。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-30 18:37:02 | 显示全部楼层
功能强大,但英文确实太多,有中文提示版就就好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-30 21:26:44 | 显示全部楼层
[iframe h=600]http://discussion.autodesk.com/thread.jspa?threadID=344100[/iframe]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-12-31 02:46:20 | 显示全部楼层
太复杂了反而不好用

要做大量的翻译工作
TextGenerationFlag  HorizontalAlignment 怎么翻译合适?

hatch的"填充样式"没了
(vlax-property-available-p en x t) 是t的关系
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-31 14:06:59 | 显示全部楼层
还是用英文吧,免得产生岐义
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-1 21:49:24 | 显示全部楼层
一头雾水!有什么用处?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-4 16:53:04 | 显示全部楼层
大开眼界,收益不浅
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-10 12:25:22 | 显示全部楼层
能不能推出个完美版的?这个可是好东西啊,各位高手们来完善完善
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-24 02:26 , Processed in 0.359565 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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