找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: eachy

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

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-12-26 03:57:34 | 显示全部楼层
最初由 aeo 发布
[B]象"自由选"一样,根据选到的物体,出不同的对话框,来个一网打尽. [/B]

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2004-12-26 15:11:13 | 显示全部楼层
这样最好,我本来想用dos_multilist改一改的,可是后来发现pl里的不是字符串,搞了半天也不成。期望斑竹的改进程序早日出炉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-26 16:54:41 | 显示全部楼层
期待eachy斑竹的改进程序早日共享!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-26 20:58:42 | 显示全部楼层
嗯,创意棒,楼主和各位大侠们尽快贴出完美程序来,很想试试
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-12-26 21:14:15 | 显示全部楼层
有个问题

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

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

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2004-12-27 19:58:35 | 显示全部楼层
我觉得不应该改,毕竟物体的颜色是随层的,cad里面的颜色就是这样使用的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-12-28 18:06:16 | 显示全部楼层
希望斑主能想办法团结大家的力量完善它这才是对大家都有利的,呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-28 18:55:27 | 显示全部楼层
在eachy的基础上完成的动态对话框实现版。
12291150更新
  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. ;;产生动态对话框,用户供选择  wkai                              
  10. ;;==============================================================
  11. (defun zf:get_properties (e pl / DCL_NAME E F FLAG INDEX_VALUE PL1 VAR pl2)
  12.   (if (= 'ENAME (type e))
  13.     (setq e (vlax-ename->vla-object e))
  14.   )

  15.   (foreach n pl
  16.     (if        (not (vl-catch-all-error-p
  17.                (setq var (vl-catch-all-apply
  18.                            'vlax-get-property
  19.                            (list e (car n))
  20.                          )
  21.                )
  22.              )
  23.         )
  24.       (setq pl1 (cons n pl1))
  25.     )
  26.   )
  27.   (setq dcl_name (car (convert_string_to_lst (getenv "ACAD") ";")))
  28.   (setq dcl_name (strcat dcl_name "\\easy_matchprop1" ".dcl"))

  29.   (SETQ f (OPEN dcl_name "w"))
  30.   (write-line
  31.     (strcat "ss:dialog{label=""
  32.             (vlax-get-property e 'ObjectName)
  33.             "";"
  34.     )
  35.     f
  36.   )
  37.   (write-line
  38.     ":toggle{label="全选";key="selectall";}\n:boxed_column{label="需要传递性质";\n"
  39.     f
  40.   )

  41.   (foreach n pl1
  42.     (write-line
  43.       (strcat ":toggle{label=""
  44.               (vl-princ-to-string (cadr n))" " (vl-princ-to-string(vlax-get-property e (car n)))
  45.               "";key=""
  46.               (vl-princ-to-string (car n))
  47.               "";}"
  48.       )
  49.       f
  50.     )
  51.   )
  52.   (write-line "}ok_only;}" f)
  53.   (close f)
  54.   (setq index_value (load_dialog dcl_name))
  55.   (new_dialog "ss" index_value)
  56.   (action_tile "selectall" "(zf:selectall)")
  57.   (action_tile "accept" "(zf:check_toggles)")
  58.   (defun zf:check_toggles ()
  59.     (foreach n pl1
  60.       (if (= "1" (get_tile (vl-princ-to-string (car n))))
  61.         (setq pl2 (cons (car n) pl2))
  62.       )
  63.     )
  64.     (done_dialog 1)
  65.   )
  66.   (defun zf:selectall (/ mode)
  67.     (setq mode (get_tile "selectall"))
  68.     (foreach n pl1
  69.       (set_tile (vl-princ-to-string (car n)) mode)

  70.     )
  71.   )
  72.   (setq flag (start_dialog))
  73.   (unload_dialog index_value) ;_卸载框
  74.   (print pl2)
  75.   pl2
  76. )
  77. ;;==============================================================
  78. ;;改特性的一种通用编程方法,变量名称使用特性名,用 eval 求值   
  79. ;;==============================================================
  80. (defun ea:put-property (obj plst /)
  81.   (mapcar '(lambda (p)
  82.              (if (eval p)
  83.                (vl-catch-all-apply
  84.                  'vlax-put-property
  85.                  (list obj p (eval p))
  86.                )
  87.              )
  88.            )
  89.           plst
  90.   )
  91. )
  92. ;;==============================================================
  93. ;;示例                                                         
  94. ;;用上面的函数可以做出比CAD更最强劲的并可以自由定制的刷子      
  95. ;; pl 中需要的特性参考联机帮助中各实体 Properties               
  96. ;;==============================================================
  97. (vl-load-com)
  98. (defun c:ea:mat (/ e ss obj pl olderr myerr eDoc)
  99.   (setq        pl '(
  100.              (color "颜色")
  101.              (layer "图层")
  102.              (linetype "线型")
  103.              (textstring "文字")
  104.              (height "高度")
  105.              (stylename "样式名")
  106.              (textstyle "文字样式")
  107.              (rotation "旋转角度")
  108.              (thickness "厚度")
  109.              (ConstantWidth  "宽度")
  110.              (patternname "填充样式")
  111.              (patternscale "填充比例")
  112.              (lineweight "线宽")
  113.              (elevation "高度")
  114.              (radius "半径")
  115.              (xscalefactor "x比例")
  116.              (yscalefactor "y比例")
  117.              (zscalefactor "z比例")
  118.              (Closed "闭合")
  119.             ) ;_ 此处可根据需要增减
  120.   )
  121.   (defun myerr (msg)
  122.     (if        (/= msg "取消")
  123.       (princ "\n*取消*")
  124.     )
  125.     (if        pl
  126.       (progn
  127.         (mapcar '(lambda (x) (set x nil)) pl)
  128.         (setq pl nil)
  129.       )
  130.     )
  131.     (vla-endundomark eDoc)
  132.     (setq *error* olderr)
  133.     (princ)
  134.   )
  135.   (setq eDoc (vlax-get-property (vlax-get-acad-object) 'activedocument))
  136.   (vla-startundomark eDoc)
  137.   (setq        olderr        *error*
  138.         *error*        myerr
  139.   )
  140.   (if (and (setq e (car (entsel "\n选择源对象: ")))
  141.            (progn
  142.              (princ "\n选择目标对象....")
  143.              (setq ss (ssget))
  144.            )
  145.       )
  146.     (progn
  147.       (setq pl (zf:get_properties e pl))
  148.       (setq obj (vlax-ename->vla-object e))
  149.       (mapcar '(lambda (p / var)
  150.                  (if (not (vl-catch-all-error-p
  151.                             (setq var (vl-catch-all-apply
  152.                                         'vlax-get-property
  153.                                         (list obj p)
  154.                                       )
  155.                             )
  156.                           )
  157.                      )
  158.                    (set p var)
  159.                    (set p nil)
  160.                  )
  161.                )
  162.               pl
  163.       )
  164.       (setq ssl (sslength ss))
  165.       (while (> ssl 0)
  166.         (setq
  167.           obj (vlax-ename->vla-object (ssname ss (setq ssl (1- ssl))))
  168.         )
  169.         (ea:put-property obj pl)
  170.       )
  171.       (mapcar '(lambda (x) (set x nil)) pl)
  172.       (setq pl nil)
  173.     )
  174.   )
  175.   (setq *error* olderr)
  176.   (vla-endundomark eDoc)
  177.   (princ)
  178. )
  179. (princ "\nWriten By Eachy , From [url]www.xdcad.net[/url]!")
  180. (princ "\nModified  By Wkai , From [url]www.xdcad.net[/url]!")
  181. (princ "\n启动命令: ea:mat")
  182. (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-12-29 08:53:29 | 显示全部楼层
谢谢斑竹提供好东东,收下了!
谢谢!
倒!不知道是哪个启动命令才能出现如斑竹的对话框?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

发表于 2004-12-29 09:35:25 | 显示全部楼层
执行了wkai斑竹的程序,出问题了。

命令: ea:mat
选择源对象:
选择目标对象....
选择对象: 找到 1 个
选择对象:
*取消*; 错误: *error* 函数中出错参数类型错误: symbolp (COLOR "颜色")

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

使用道具 举报

发表于 2004-12-29 11:39:36 | 显示全部楼层
;;因缺函數:CONVERT_STRING_TO_LST
;;但改一下即可
(setq DCL_NAME (getvar "TEMPPREFIX"))  ;(car (CONVERT_STRING_TO_LST (getenv "ACAD") ";")))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:00 , Processed in 0.394631 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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