找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5119|回复: 16

[原创] 可自由定制刷子完整源码

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-6 20:44:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
主程序,很早的一个程序,希望对Lisper爱好者有所帮助
  1. (defun ea:put-property (obj plst /)
  2.   (mapcar '(lambda (p)
  3.          (if (eval p)
  4.            (if (wcmatch (vl-princ-to-string p) "EA_*")
  5.          (eval (list (strcat "vla-put-"
  6.                      (substr (vl-princ-to-string p) 4)
  7.                  )
  8.                  obj
  9.                  (eval p)
  10.                )
  11.          )
  12.          (vl-catch-all-apply
  13.            'vlax-put-property
  14.            (list obj p (eval p))
  15.          )
  16.            )
  17.          )
  18.        )
  19.       plst
  20.   )
  21. )
  22. (if (findfile "ea_property.lsp")
  23.   (if (/=
  24.     (load (findfile "ea_property.lsp")
  25.           "Not Find ea_property.lsp!"
  26.     )
  27.     'EA_OBJECT_PROPERTY_LIST
  28.       )
  29.     (progn
  30.       (princ "\nEa_property.lst 中函数名被修改!")
  31.       (exit)
  32.     )
  33.   )
  34.   (progn
  35.     (princ "\nNot Find ea_property.lsp!")
  36.     (exit)
  37.   )
  38. )
  39. (if (not $ea_mat_globle_property)
  40.   (setq    $ea_mat_globle_property
  41.      '(LAYER COLOR LINETYPE    LINEWEIGHT LINETYPESCALE THICKNESS
  42.        PLOTSTYLENAME)
  43.   )
  44. )
  45. (defun c:Ea:Smat (/              _$acadver
  46.           do_add_remove          do_globle_property
  47.           test_object_property      do_all_object_property
  48.           do_object_property      do_init_property
  49.           do_get_object_property  globle_pro
  50.          )
  51.   (load    (findfile "ea_property.lsp")
  52.     "Not Find ea_property.lsp!"
  53.   )
  54.   (setq _$acadver (> (atof (getvar "acadver")) 16.))
  55.   ;;normal property
  56.   (defun do_add_remove (typ mode)
  57.     (if    (= mode "1")
  58.       (progn
  59.     (if (not (vl-position (read typ) gl_list))
  60.       (setq $ea_mat_globle_property (cons (read typ) gl_list))
  61.     )
  62.       )
  63.       (setq $ea_mat_globle_property (vl-remove (read typ) gl_list))
  64.     )
  65.   )
  66.   (defun do_all_globle_property    (val)
  67.     (mapcar
  68.       '(lambda (x) (set_tile x val))
  69.       '("layer"          "color"        "linetype"
  70.     "lineweight"      "linetypescale"   "thickness"
  71.     "plotstylename"
  72.        )
  73.     )
  74.     (if    (= val "1")
  75.       (setq $ea_mat_globle_property
  76.          '(LAYER          COLOR         LINETYPE
  77.            LINETYPESCALE  LINEWEIGHT     THICKNESS
  78.            PLOTSTYLENAME
  79.           )
  80.       )
  81.       (setq $ea_mat_globle_property nil)
  82.     )
  83.   )
  84.   ;;object property
  85.   (defun test_object_property (val / olditem)
  86.     (if    (not $ea_mat_object_property)
  87.       (setq $ea_mat_object_property (list (list objectname val)))
  88.       (if (setq olditem (assoc objectname $ea_mat_object_property))
  89.     (setq
  90.       $ea_mat_object_property
  91.        (subst (list objectname val)
  92.           olditem
  93.           $ea_mat_object_property
  94.        )
  95.     )
  96.     (setq $ea_mat_object_property
  97.            (append $ea_mat_object_property
  98.                (list (list objectname val))
  99.            )
  100.     )
  101.       )
  102.     )
  103.   )
  104.   (defun do_all_object_property    (val / lst)
  105.     (if    (= val "1")
  106.       (progn
  107.     (set_tile
  108.       "sel"
  109.       (setq    lst
  110.          (ybl-str-unparse
  111.            (mapcar
  112.              'vl-princ-to-string
  113.              (mapcar '(lambda (x) (vl-position x fill_property_list))
  114.                  fill_property_list
  115.              )
  116.            )
  117.            " "
  118.          )
  119.       )
  120.     )
  121.     (test_object_property lst)
  122.       )
  123.       (progn
  124.     (set_tile "sel" "")
  125.     (setq $ea_mat_object_property nil)
  126.       )
  127.     )
  128.   )
  129.   (defun do_object_property (val)
  130.     (if    (and val (/= val ""))
  131.       (test_object_property val)
  132.     )
  133.   )
  134.   ;;Dialog
  135.   (defun do_init_property (/ mat_id)
  136.     (if    (not (setq mat_id (load_dialog "mat.dcl")))
  137.       (exit)
  138.     )
  139.     (if    (not (new_dialog "ea_mat" mat_id))
  140.       (exit)
  141.     )
  142.     (mapcar '(lambda (a)
  143.            (if (vl-position a $ea_mat_globle_property)
  144.          (set_tile (strcase (vl-princ-to-string a) t) "1")
  145.            )
  146.          )
  147.         '(LAYER         COLOR        LINETYPE
  148.           LINEWEIGHT     LINETYPESCALE  THICKNESS
  149.           PLOTSTYLENAME
  150.          )
  151.     ) ;_ 公共属性|;
  152.     (set_tile "str" objectname)
  153.     (start_list "sel")
  154.     (mapcar 'add_list fill_property_list) ;_ 自有属性列表
  155.     (end_list)
  156.     (if    (assoc objectname $ea_mat_object_property)
  157.       (set_tile    "sel"
  158.         (cadr (assoc objectname $ea_mat_object_property))
  159.       )
  160.       (set_tile "sel" (last obj_list))
  161.     )
  162.     (mapcar '(lambda (a b) (set_tile a b))
  163.         '("t1" "t2" "t3" "t4" "t5" "t6" "t7")
  164.         (mapcar 'vl-princ-to-string normal_pro)
  165.     )
  166.     (if    (not (vl-position
  167.            objectname
  168.            '("AcDbArc"           "AcDbAttribute"
  169.          "AcDbAttributeReference"
  170.          "AcDbCircle"           "AcDbLightweightPolyline"
  171.          "AcDbLine"           "AcDbPoint"
  172.          "AcDbPolyline"           "AcDbShape"
  173.          "AcDbSolid"           "AcDbText"
  174.          "AcDbTrace"
  175.         )
  176.          )
  177.     )
  178.       (mode_tile "thickness" 1)
  179.       (mode_tile "thickness" 0)
  180.     )
  181.     (if    (= (length $ea_mat_globle_property) 7)
  182.       (set_tile "pa" "1")
  183.     )
  184.     (action_tile
  185.       "sel"
  186.       "(setq pro_lst $value)(do_object_property $value)"
  187.     )
  188.     (action_tile "pa" "(do_all_globle_property $value)")
  189.     (action_tile "sa" "(do_all_object_property $value)")
  190.     (action_tile "layer" "(do_add_remove \"layer\" $value)")
  191.     (action_tile "color" "(do_add_remove \"color\" $value)")
  192.     (action_tile
  193.       "linetype"
  194.       "(do_add_remove \"linetype\" $value)"
  195.     )
  196.     (action_tile
  197.       "lineweight"
  198.       "(do_add_remove \"lineweight\" $value)"
  199.     )
  200.     (action_tile
  201.       "linetypescale"
  202.       "(do_add_remove \"linetypescale\" $value)"
  203.     )
  204.     (action_tile
  205.       "plotstylename"
  206.       "(do_add_remove \"plotstylename\" $value)"
  207.     )
  208.     (action_tile "accept" "(done_dialog 0)")
  209.     (start_dialog)
  210.     (unload_dialog mat_id)
  211.   )
  212.   (defun do_get_object_property    (/ nth_list)
  213.     (setq nth_list    (mapcar
  214.               'atoi
  215.               (ybl-str-parse
  216.                 (cadr (assoc objectname $ea_mat_object_property))
  217.                 " "
  218.               )
  219.             )
  220.       property_list    (mapcar    '(lambda (a) (nth a object_property_list))
  221.                 nth_list
  222.             )
  223.     )
  224.     (mapcar
  225.       '(lambda (p / var)
  226.      (cond
  227.        ((= (type p) 'STR)
  228.         (set
  229.           (read (strcat "EA_" p))
  230.           (eval (cons (read (strcat "vla-get-" p)) obj))
  231.         )
  232.        )
  233.        ((= p 'COLOR)
  234.         (if    _$acadver
  235.           (set p (vlax-get-property obj 'truecolor))
  236.           (set p (vlax-get-property obj 'color))
  237.         )
  238.        )
  239.        (t
  240.         (if    (not (vl-catch-all-error-p
  241.                (setq var (vl-catch-all-apply
  242.                    'vlax-get-property
  243.                    (list obj p)
  244.                  )
  245.                )
  246.              )
  247.         )
  248.           (set p var)
  249.           (set p nil)
  250.         )
  251.        )
  252.      )
  253.        )
  254.       (append $ea_mat_globle_property property_list)
  255.     )
  256.   )
  257.   (defun test_property_list ()
  258.     (or $ea_mat_globle_property $ea_mat_object_property)
  259.   )
  260.   (setq    globle_pro
  261.             '((layer          color         linetype
  262.                lineweight     linetypeScale  thickness
  263.                plotstyleName
  264.               )
  265.               ("图层" "颜色" "线型" "线宽" "线型比例" "厚度" "打印样式")
  266.              )
  267.     thisdrawing (vla-get-activedocument (vlax-get-acad-object))
  268.   )
  269.   (ybvl-clearcset)
  270.   (vla-startundomark thisdrawing)
  271.   (vl-catch-all-apply
  272.     (function
  273.       (lambda (lst obj          objectname     obj_list
  274.            fill_property_list         e
  275.            normal_pro      nth_pro_list     key
  276.            loop          object_property_list
  277.            tf          ss tmp_lst
  278.           )
  279.     (if (setq e (entsel "\n源实体: "))
  280.       (progn
  281.         (setq lst (ea_object_property_list))
  282.         (setq obj         (vlax-ename->vla-object (car e))
  283.           objectname (vlax-get-property obj 'ObjectName)
  284.         )
  285.         (if    (setq tf
  286.                (and (= objectname "AcDbBlockReference")
  287.                 (= (vlax-get-property obj 'hasattributes) :vlax-true)
  288.                )
  289.         )
  290.           (progn
  291.         (setq obj
  292.                (vlax-ename->vla-object (car (nentselp (last e))))
  293.         )
  294.         (setq objectname (vlax-get-property obj 'objectname))
  295.           )
  296.         )
  297.         (setq obj_list (assoc objectname lst)
  298.           object_property_list
  299.            (mapcar 'car (cadr obj_list))
  300.           fill_property_list
  301.            (mapcar 'cadr (cadr obj_list))
  302.           normal_pro
  303.            (mapcar
  304.              '(lambda (x)
  305.             (vl-catch-all-apply 'vlax-get-property (list obj x))
  306.               )
  307.              (car globle_pro)
  308.            )
  309.         )
  310.         (if
  311.           (and (or (not $ea_mat_object_property)
  312.                (not (assoc objectname $ea_mat_object_property))
  313.            )
  314.            (/= "" (last obj_list))
  315.           )
  316.            (setq $ea_mat_object_property
  317.               (append (list (list objectname (last obj_list)))
  318.                   $ea_mat_object_property
  319.               )
  320.            )
  321.         )
  322.         (if    (not (test_property_list))
  323.           (do_init_property)
  324.         )
  325.         (if    (test_property_list)
  326.           (progn
  327.         (princ (strcat "\n拾取了 " objectname " 实体!"))
  328.         (princ "\n设置匹配选项[S]<任意键选择目标>: ")
  329.         (setq loop t)
  330.         (while loop
  331.           (setq key (grread nil 2 2))
  332.           (cond
  333.             ((and (= (car key) 2)
  334.               (= (strcase (chr (cadr key))) "S")
  335.              )
  336.              (do_init_property)
  337.             )
  338.             ((test_property_list)
  339.              (do_get_object_property)
  340.              (setq loop    nil
  341.                tmp_lst
  342.                 (append $ea_mat_globle_property property_list)
  343.              )
  344.              (princ "\n选择目标实体...")
  345.              (if (ssget)
  346.                (vlax-map-collection
  347.              (vla-get-activeselectionset thisdrawing)
  348.              '(lambda (x)
  349.                 (cond
  350.                   ((and
  351.                  tf
  352.                  (= (vlax-get-property x 'objectname)
  353.                     "AcDbBlockReference"
  354.                  )
  355.                  (= (vlax-get-property x 'hasattributes)
  356.                     :vlax-true
  357.                  )
  358.                    )
  359.                    (mapcar
  360.                  '(lambda (a)
  361.                     (ea:put-property a tmp_lst)
  362.                   )
  363.                  (vlax-invoke x 'getattributes)
  364.                    )
  365.                   )
  366.                   ((and (vl-position 'PATTERNNAME tmp_lst)
  367.                     (= (vlax-get-property x 'objectname)
  368.                        "AcDbHatch"
  369.                     )
  370.                    )
  371.                    (entmod
  372.                  (subst
  373.                    (cons 2 (eval 'patternname))
  374.                    (cons
  375.                      2
  376.                      (vlax-get-property x 'patternname)
  377.                    )
  378.                    (entget (vlax-vla-object->ename x))
  379.                  )
  380.                    )
  381.                   )
  382.                   (t
  383.                    (ea:put-property x tmp_lst)
  384.                   )
  385.                 )
  386.               )
  387.                )
  388.              )
  389.             )
  390.             (t (setq loop nil))
  391.           )
  392.         )
  393.           )
  394.         )
  395.       )
  396.     )
  397.       )
  398.     )
  399.   )
  400.   (vla-endundomark thisdrawing)
  401.   (if property_list
  402.     (mapcar '(lambda (x) (set x nil)) property_list)
  403.   )
  404.   (setq property_list nil)  
  405.   (princ)
  406. )


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

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-7-6 20:46:06 | 显示全部楼层
配套的DCL,wkai版主写过自动生成DCL的,那个更全
  1. ea_mat : dialog {
  2. label = "超级刷子";
  3. : text {
  4.   label = "当前实体: ";
  5.   key = "str";
  6.   }
  7. : row {
  8.   : column {
  9.     : boxed_row {
  10.       label = "基本属性";
  11.       : column {
  12.         : toggle {
  13.           label = "图层";
  14.           key = "layer";
  15.           }
  16.         : toggle {
  17.           label = "颜色";
  18.           key = "color";
  19.           }
  20.         : toggle {
  21.           label = "线形";
  22.           key = "linetype";
  23.           }
  24.         : toggle {
  25.           label = "线宽";
  26.           key = "lineweight";
  27.           }
  28.         : toggle {
  29.           label = "线型比例";
  30.           key = "linetypescale";
  31.           }
  32.         : toggle {
  33.           label = "厚度";
  34.           key = "thickness";
  35.           }
  36.         : toggle {
  37.           label = "打印样式";
  38.           key = "plotstylename";
  39.           }
  40.         }
  41.       : column {
  42.         width = 12;
  43.         : text {
  44.           value = ":";
  45.           key = "t1";
  46.           }
  47.         : text {
  48.           value = ":";
  49.           key = "t2";
  50.           }
  51.         : text {
  52.           key = "t3";
  53.           value = ":";
  54.           }
  55.         : text {
  56.           key = "t4";
  57.           value = ":";
  58.           }
  59.         : text {
  60.           key = "t5";
  61.           value = ":";
  62.           }
  63.         : text {
  64.           key = "t6";
  65.           value = ":";         
  66.           }
  67.         : text {
  68.           key = "t7";
  69.           value = ":";
  70.           }
  71.         }
  72.       }
  73.     : toggle {
  74.       label = "全选";
  75.       key = "pa";
  76.       }  
  77.     }
  78.     : column {
  79.       : boxed_column {
  80.         label = "特殊属性";
  81.         : list_box {
  82.           width = 18;
  83.           key = "sel";
  84.           multiple_select = true;
  85.           }
  86.         }
  87.       : toggle {
  88.         label = "全选";
  89.         key = "sa";
  90.         }
  91.       }
  92.   }
  93.   ok_cancel;
  94. }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-7-6 20:48:09 | 显示全部楼层
自由定制部分,这个用于根据实体选择自己感兴趣的属性,包括自定义实体开放的属性
  1. ;|使用说明
  2. 添加自定义实体的属性
  3. 子表格式 (ObjectName ((Property1 Name1) ...) key)
  4. 其中: ObjectName 自定义实体的 ObjectName 用 vla-get-ObjectName 得到的字串
  5.        Property 可读写的属性,用 vlax-property-available-p 可查看是否 modified
  6.        Name   对应属性的中文名称
  7.        Key        默认的匹配选项, 为以空格分隔的索引数, 不设时为 ""
  8. 注意: 1 Property 和 Name 必须一一对应
  9.        2 当特性名称为 SYM 时加引号
  10. Writen By eachy Email: eachy@21cn.com 2005.03.09
  11. |;
  12. (defun ea_object_property_list ()
  13.   '(("AcDb3dPolyline"
  14.      ((Closed "闭合") (ConstantWidth "全局宽度"))
  15.      ""
  16.     )
  17.     ("AcDbArc"
  18.      ((Radius "半径")
  19.       (Thickness "厚度")
  20.       (Center "圆心")
  21.       (StartPoint "起点")
  22.       (Endpoint "端点")
  23.       (StartAngle "起始角")
  24.       (EndAngle "终止角")
  25.       (Normal "法向")
  26.      )
  27.      "0 1"
  28.     )
  29.     ("AcDbAttribute"
  30.      ((StyleName "字体")
  31.       (TextString "文字")
  32.       (Height "高度")
  33.       (ScaleFactor "字宽")
  34.       (Rotation "旋转角")
  35.       (ObliqueAngle "倾角")
  36.       (Backward "反向")
  37.       (UpsideDown "颠倒")
  38.       (Alignment "对齐方式")
  39.       (Mode "模式")
  40.       (Verify "校验")
  41.       (Preset "预置")
  42.       (Constand "固定属性")
  43.       (TextGenerationFlag "文字标志")
  44.       (InsertionPoint "插入点")
  45.       (TextAlignmentPoint "字对齐点")
  46.       (VerticaAlignment "垂直对齐")
  47.       (HorzontalAlignment "水平对齐")
  48.       (Thickness "厚度")
  49.       (Normal "法向")
  50.      )
  51.      "0 2 3 4 5"
  52.     )
  53.     ("AcDbAttributeReference"
  54.      ((TextString "文字")
  55.       (textstyle "字体")
  56.       (Rotation "旋转角")
  57.       (ScaleFactor "字宽")
  58.       (Height "字高")
  59.       (ObliqueAngle "倾角")
  60.       (Backward "反向")
  61.       (UpsideDown "颠倒")
  62.       (Alignment "对齐方式")
  63.       (FieldLength "字段长度")
  64.       (TextAlignmentPoint "对齐点")
  65.       (InsertionPoint "插入点")
  66.       (Invisible "不可见模式")
  67.       (TagString "标记字串")
  68.       (TextGenerationFlag "文字生成")
  69.       (VerticalAlignment "垂直对齐")
  70.       (HorizontalAlignment "水平对齐")
  71.       (Thickness "厚度")
  72.       (Normal "法向")
  73.      )
  74.      "0 1 2 3 4 5"
  75.     )
  76.     ("AcDbBlockReference"
  77.      ((Name "块名")
  78.       (Rotation "转角")
  79.       (XScaleFactor "X比例")
  80.       (YScaleFactor "Y比例")
  81.       (ZScaleFactor "Z比例")
  82.       (Normal "法向")
  83.       (InsertionPoint "插入点")
  84.      )
  85.      "1 2 3 4"
  86.     )
  87.     ("AcDbCircle"
  88.      ((Thickness "厚度")
  89.       (Radius "半径")
  90.       (Diameter "直径")
  91.       (Area "面积")
  92.       (Circumference "周长")
  93.       (Center "圆心")
  94.       (Normal "法向")
  95.      )
  96.      "0"
  97.     )
  98.     ("AcDbDim3PointAngular"
  99.      ((StyleName "标注样式") ;_0
  100.       (ScaleFactor "比例因子") ;_1
  101.       (AngleFormat "单位格式") ;_2
  102.       (DimLine1Suppress "消第一尺寸线") ;_3
  103.       (DimLine2Suppress "消第二尺寸线") ;_4
  104.       (DecimalSeparator "小数分隔符") ;_5
  105.       (DimensionLineColor "尺寸线颜色") ;_6
  106.       (ExtensionLineColor "尺寸界限颜色")
  107.       (TextColor "字颜色")
  108.       (DimensionLineWeight "尺寸线宽")
  109.       (ExtensionLineWeight "界限线宽")
  110.       (ExtensionLineExtend "超出距离")
  111.       (ExtensionLineOffset "起点偏移")
  112.       (ExtLine1EndPoint "第一尺寸界限终点")
  113.       (ExtLine2EndPoint "第二尺寸界限终点")
  114.       (ExtLine1Suppress "第一尺寸界限")
  115.       (ExtLine2Suppress "第二尺寸界限")
  116.       (Fit "适合布局")
  117.       (HorizontalTextPosition "标注文字水平对齐")
  118.       (TextInside "强制内部写字")
  119.       (TextInsideAlign "字随标注")
  120.       (TextMovement "字移动位置")
  121.       (TextOutsideAlign "字线外方向")
  122.       (Rotation "旋转角")
  123.       (TextGap "字线间距")
  124.       (TextHeight "字高")
  125.       (TextOverride "替代文字")
  126.       (TextPosition "文字位置")
  127.       (TextPrecision "文字精度")
  128.       (TextPrefix "文字前缀")
  129.       (TextRotation "文字角度")
  130.       (TextStyle "文字字体")
  131.       (TextSuffix "文字后缀")
  132.       (ArrowheadSize "箭头尺寸")
  133.       (Arrowhead1Block "第一箭头")
  134.       (Arrowhead2Block "第二箭头")
  135.       (Arrowhead1Type "第一箭头类型")
  136.       (Arrowhead2Type "第二箭头类型")
  137.       (ForceLineInside "强制绘制尺寸线")
  138.       (DimLineInside "绘制尺寸线")
  139.       (SuppressLeadingZeros "消前导零")
  140.       (SuppressTrailingZeros "消后续零")
  141.       (AngleVertex "角顶点")
  142.       (ToleranceDisplay "公差显示模式")
  143.       (ToleranceHeightScale "公差比例因子")
  144.       (ToleranceJustification "公差垂直对正")
  145.       (ToleranceLowerLimit "最小公差极限尺寸")
  146.       (TolerancePrecision "公差精度")
  147.       (ToleranceSuppressLeadingZeros "公差前导零")
  148.       (ToleranceSuppressTrailingZeros "公差后续零")
  149.       (ToleranceUpperLimit "最大公差极限尺寸")
  150.       (VerticalTextPosition "文字垂直位置")
  151.       (Normal "法向")
  152.      )
  153.      "0"
  154.     )
  155.     ("AcDbAligned"
  156.      ((StyleName "标注样式")
  157.       (LinearScaleFactor "线性比例")
  158.       (Arrowhead1Block "第一箭头")
  159.       (Arrowhead1Type "第一箭头类型")
  160.       (Arrowhead2Block "第二箭头")
  161.       (Arrowhead2Type "第二箭头类型")
  162.       (ArrowheadSize "箭头尺寸")
  163.       (DecimalSeparator "小数点分隔符")
  164.       (DimensionLineColor "尺寸线颜色")
  165.       (DimensionLineExtend "尺寸线超出界线值")
  166.       (DimensionLineWeight "尺寸线宽")
  167.       (DimLine1Suppress "第一尺寸线")
  168.       (DimLine2Suppress "第二尺寸线")
  169.       (DimLineInside "绘制尺寸线")
  170.       (ExtensionLineColor "尺寸界限颜色")
  171.       (ExtensionLineExtend "超出距离")
  172.       (ExtensionLineOffset "起点偏移")
  173.       (ExtensionLineWeight "界限线宽")
  174.      )
  175.      "0"
  176.     )
  177.     ;|(ExtLine1Point)
  178.        ExtLine2Point        ExtLine1Suppress
  179.       ExtLine2Suppress        Fit
  180.       ForceLineInside        FractionFormat
  181.       HorizontalTextPosition    Measurement
  182.       Normal            PrimaryUnitsPrecision
  183.       Rotation            RoundDistance
  184.       ScaleFactor        SuppressLeadingZeros
  185.       SuppressTrailingZeros    SuppressZeroFeet
  186.       SuppressZeroInches    TextColor
  187.       TextGap            TextHeight
  188.       TextInside        TextInsideAlign
  189.       TextMovement        TextOutsideAlign
  190.       TextOverride        TextPosition
  191.       TextPrefix        TextRotation
  192.       TextStyle            TextSuffix
  193.       ToleranceDisplay        ToleranceHeightScale
  194.       ToleranceJustification    ToleranceLowerLimit
  195.       TolerancePrecision    ToleranceSuppressLeadingZeros
  196.       ToleranceSuppressTrailingZeros
  197.       ToleranceSuppressZeroInches
  198.       ToleranceSuppressZeroFeet    ToleranceUpperLimit
  199.       UnitsFormat        VerticalTextPosition
  200.       AltRoundDistance        AltSuppressLeadingZeros
  201.       AltSuppressTrailingZeros    AltSuppressZeroInches
  202.       AltSuppressZeroFeet    AltTextPrefix
  203.       AltTextSuffix        AltTolerancePrecision
  204.       AltToleranceSuppressLeadingZeros
  205.       AltToleranceSuppressTrailingZeros
  206.       AltToleranceSuppressZeroFeet
  207.       AltToleranceSuppressZeroInches
  208.       AltUnitsFormat        AltUnits
  209.       AltUnitsPrecision        AltUnitsScale               
  210.       "第一尺寸界限点"        "第二尺寸界限点"      "第一尺寸界限"
  211.       "第二尺寸界限"        "适合布局"          "强制绘制尺寸线"
  212.       "分数类型"        "标注文字水平对齐"      "测量单位"
  213.       "法向"            "文字精度"          "转角"
  214.       "舍入值"            "比例因子"          "消前导零"
  215.       "消后续零"        "消去标注的零英尺"      "消去标注的零英寸"
  216.       "字颜色"            "字线间距"          "字高"
  217.       "强制内部写字"        "字随标注"          "字移动位置"
  218.       "字线外方向"        "手动文字"          "文字位置"
  219.       "文字前缀"        "文字角度"          "文字字体"
  220.       "文字后缀"        "公差显示模式"      "公差比例因子"
  221.       "公差垂直对正"        "最小公差极限尺寸"      "公差精度"
  222.       "公差前导零"        "公差后续零"      "消单位公差值的零英寸"
  223.       "消单位公差值的零英尺"              "最大公差极限尺寸"
  224.       "单位格式"        "文字垂直位置"      "换算单位距离舍入值"
  225.       "换算消前导零"        "换算消后续零"      "消换算零英寸"
  226.       "换算消零英尺"        "换算文字前缀"      "换算文字后缀"
  227.       "换算公差精度"        "换算单位公差值的前导零"
  228.       "换算单位公差值的后续零"
  229.       "换算单位公差值的零英尺"
  230.       "换算单位公差值的零英寸"
  231.       "换算单位标注的单位格式"              "显示换算单位标注"
  232.       "换算单位中小数精度"  "换算单位的比例因子"|;
  233.     ("AcDbAngular" ((StyleName "标注样式")) "0")
  234.     ;|AngleFormat
  235.       Arrowhead1Block          Arrowhead1Type
  236.       Arrowhead2Block          Arrowhead2Type
  237.       ArrowheadSize          DecimalSeparator
  238.       DimensionLineColor      DimensionLineWeight
  239.       DimLine1Suppress          DimLine2Suppress
  240.       DimLineInside          ExtensionLineColor
  241.       ExtensionLineExtend     ExtensionLineOffset
  242.       ExtensionLineWeight     ExtLine1EndPoint
  243.       ExtLine1StartPoint      ExtLine1Suppress
  244.       ExtLine2EndPoint          ExtLine2StartPoint
  245.       ExtLine2Suppress          Fit
  246.       ForceLineInside          HorizontalTextPosition
  247.       Measurement          Normal
  248.       Rotation              ScaleFactor
  249.       SuppressLeadingZeros    SuppressTrailingZeros
  250.       TextColor              TextGap
  251.       TextHeight          TextInside
  252.       TextInsideAlign          TextMovement
  253.       TextOutsideAlign          TextOverride
  254.       TextPosition          TextPrecision
  255.       TextPrefix          TextRotation
  256.       TextStyle              TextSuffix
  257.       ToleranceDisplay          ToleranceHeightScale
  258.       ToleranceJustification  ToleranceLowerLimit
  259.       TolerancePrecision      ToleranceSuppressLeadingZeros
  260.       ToleranceSuppressTrailingZeros
  261.       ToleranceUpperLimit     VerticalTextPosition
  262.      )
  263.      |;
  264.     ("AcDbDimDiametric" ((StyleName "标注样式")) "0")
  265.     ;|(Arrowhead1Block
  266.       Arrowhead1Type        Arrowhead2Block
  267.       Arrowhead2Type        ArrowheadSize
  268.       CenterMarkSize        CenterType
  269.       DecimalSeparator        DimensionLineColor
  270.       DimensionLineWeight    DimLine1Suppress
  271.       DimLine2Suppress        ExtensionLineOffset
  272.       Fit            ForceLineInside
  273.       FractionFormat        HorizontalTextPosition
  274.       LeaderLength        LinearScaleFactor
  275.       LinetypeScale        Measurement
  276.       Normal            PrimaryUnitsPrecision
  277.       Rotation            RoundDistance
  278.       ScaleFactor        SuppressLeadingZeros
  279.       SuppressTrailingZeros    SuppressZeroFeet
  280.       SuppressZeroInches    TextColor
  281.       TextGap            TextHeight
  282.       TextInside        TextInsideAlign
  283.       TextMovement        TextOutsideAlign
  284.       TextOverride        TextPosition
  285.       TextPrefix        TextRotation
  286.       TextStyle            TextSuffix
  287.       ToleranceDisplay        ToleranceHeightScale
  288.       ToleranceJustification    ToleranceLowerLimit
  289.       TolerancePrecision    ToleranceSuppressLeadingZeros
  290.       ToleranceSuppressTrailingZeros
  291.       ToleranceSuppressZeroInches
  292.       ToleranceSuppressZeroFeet    ToleranceUpperLimit
  293.       UnitsFormat        VerticalTextPosition
  294.       AltRoundDistance        AltSuppressLeadingZeros
  295.       AltSuppressTrailingZeros    AltSuppressZeroInches
  296.       AltSuppressZeroFeet    AltTextPrefix
  297.       AltTextSuffix        AltTolerancePrecision
  298.       AltToleranceSuppressLeadingZeros
  299.       AltToleranceSuppressTrailingZeros
  300.       AltToleranceSuppressZeroInches
  301.       AltToleranceSuppressZeroFeet
  302.       AltUnitsFormat        AltUnits
  303.       AltUnitsPrecision        AltUnitsScale
  304.      )
  305.      ("Arrowhead1Block"           "Arrowhead1Type"
  306.       "Arrowhead2Block"           "Arrowhead2Type"
  307.       "ArrowheadSize"           "CenterMarkSize"
  308.       "CenterType"           "DecimalSeparator"
  309.       "DimensionLineColor"     "DimensionLineWeight"
  310.       "DimLine1Suppress"       "DimLine2Suppress"
  311.       "ExtensionLineOffset"    "Fit"
  312.       "ForceLineInside"           "FractionFormat"
  313.       "HasExtensionDictionary" "HorizontalTextPosition"
  314.       "LeaderLength"           "线形比例"
  315.       "测量单位"           "法向"
  316.       "PrimaryUnitsPrecision"  "转角"
  317.       "RoundDistance"           "比例因子"
  318.       "标注样式"           "消前导零"
  319.       "消后续零"           "SuppressZeroFeet"
  320.       "SuppressZeroInches"     "字颜色"
  321.       "字线间距"           "字高"
  322.       "强制内部写字"           "字随标注"
  323.       "字移动位置"           "字线外方向"
  324.       "手动文字"           "文字位置"
  325.       "文字精度"           "文字前缀"
  326.       "文字角度"           "文字字体"
  327.       "文字后缀"           "公差显示模式"
  328.       "公差比例因子"           "公差垂直对正"
  329.       "最小公差极限尺寸"       "公差精度"
  330.       "公差前导零"           "公差后续零"
  331.       "差值的零英寸"           "差值的零英尺"
  332.       "最大公差极限尺寸"       "单位格式"
  333.       "文字垂直位置"           "AltRoundDistance"
  334.       "AltSuppressLeadingZeros"
  335.       "AltSuppressTrailingZeros"
  336.       "AltSuppressZeroInches"  "AltSuppressZeroFeet"
  337.       "AltTextPrefix"           "AltTextSuffix"
  338.       "AltTolerancePrecision"  "AltToleranceSuppressLeadingZeros"
  339.       "AltToleranceSuppressTrailingZeros"
  340.       "AltToleranceSuppressZeroInches"
  341.       "AltToleranceSuppressZeroFeet"
  342.       "AltUnitsFormat"           "AltUnits"
  343.       "AltUnitsPrecision"      "AltUnitsScale"
  344.      )|;
  345.     ("AcDbDimOrdinate" ((StyleName "标注样式")) "0")
  346.     ;|( ArrowheadSize
  347.       DecimalSeparator         DimensionLineWeight
  348.       ExtensionLineColor     ExtensionLineOffset
  349.       FractionFormat         LinearScaleFactor
  350.       Measurement         Normal
  351.       PrimaryUnitsPrecision     Rotation
  352.       RoundDistance         ScaleFactor
  353.       SuppressLeadingZeros     SuppressTrailingZeros
  354.       SuppressZeroFeet         SuppressZeroInches
  355.       TextColor             TextGap
  356.       TextHeight         TextMovement
  357.       TextOverride         TextPosition
  358.       TextPrefix         TextRotation
  359.       TextStyle             TextSuffix
  360.       ToleranceDisplay         ToleranceHeightScale
  361.       ToleranceJustification     ToleranceLowerLimit
  362.       TolerancePrecision     ToleranceSuppressLeadingZeros
  363.       ToleranceSuppressTrailingZeros
  364.       ToleranceSuppressZeroInches
  365.       ToleranceSuppressZeroFeet     ToleranceUpperLimit
  366.       UnitsFormat         VerticalTextPosition
  367.       AltRoundDistance         AltSuppressLeadingZeros
  368.       AltSuppressTrailingZeros     AltSuppressZeroInches
  369.       AltSuppressZeroFeet     AltTextPrefix
  370.       AltTextSuffix         AltTolerancePrecision
  371.       AltToleranceSuppressLeadingZeros
  372.       AltToleranceSuppressTrailingZeros
  373.       AltToleranceSuppressZeroInches
  374.       AltToleranceSuppressZeroFeet
  375.       AltUnitsFormat         AltUnits
  376.       AltUnitsPrecision         AltUnitsScale
  377.      )|;
  378.     ("AcDbDimRadial" ((StyleName "标注样式")) "0")
  379.     ;|(            ArrowheadBlock
  380.       ArrowheadType        ArrowheadSize
  381.       CenterMarkSize        CenterType
  382.       DecimalSeparator        DimensionLineColor
  383.       DimensionLineWeight    DimLineSuppress
  384.                   ExtensionLineOffset
  385.       Fit            ForceLineInside
  386.       FractionFormat        HorizontalTextPosition
  387.       LeaderLength        LinearScaleFactor
  388.       Measurement        Normal
  389.       PrimaryUnitsPrecision    Rotation
  390.       RoundDistance        ScaleFactor
  391.       SuppressLeadingZeros    SuppressTrailingZeros
  392.       SuppressZeroFeet        SuppressZeroInches
  393.       TextColor            TextGap
  394.       TextHeight        TextInside
  395.       TextInsideAlign        TextMovement
  396.       TextOutsideAlign        TextOverride
  397.       TextPosition        TextPrefix
  398.       TextRotation        TextStyle
  399.       TextSuffix        ToleranceDisplay
  400.       ToleranceHeightScale    ToleranceJustification
  401.       ToleranceLowerLimit    TolerancePrecision
  402.       ToleranceSuppressLeadingZeros
  403.       ToleranceSuppressTrailingZeros
  404.       ToleranceSuppressZeroInches
  405.       ToleranceSuppressZeroFeet    ToleranceUpperLimit
  406.       UnitsFormat        VerticalTextPosition
  407.       AltRoundDistance        AltSuppressLeadingZeros
  408.       AltSuppressTrailingZeros    AltSuppressZeroInches
  409.       AltSuppressZeroFeet    AltTextPrefix
  410.       AltTextSuffix        AltTolerancePrecision
  411.       AltToleranceSuppressLeadingZeros
  412.       AltToleranceSuppressTrailingZeros
  413.       AltToleranceSuppressZeroInches
  414.       AltToleranceSuppressZeroFeet
  415.       AltUnitsFormat        AltUnits
  416.       AltUnitsPrecision        AltUnitsScale
  417.      )|;
  418.     ("AcDbDimRotated" ((StyleName "标注样式")) "0")
  419.     ;|Arrowhead1Block
  420.       Arrowhead1Type        Arrowhead2Block
  421.       Arrowhead2Type        ArrowheadSize
  422.       DecimalSeparator        DimensionLineColor
  423.       DimensionLineExtend    DimensionLineWeight
  424.       DimLine1Suppress        DimLine2Suppress
  425.       DimLineInside        ExtensionLineColor
  426.       ExtensionLineExtend    ExtensionLineOffset
  427.       ExtensionLineWeight    ExtLine1Suppress
  428.       ExtLine2Suppress        Fit
  429.       ForceLineInside        FractionFormat
  430.       HorizontalTextPosition    LinearScaleFactor
  431.       Measurement        Normal
  432.       PrimaryUnitsPrecision    Rotation
  433.       RoundDistance        ScaleFactor
  434.       SuppressLeadingZeros    SuppressTrailingZeros
  435.       SuppressZeroFeet        SuppressZeroInches
  436.       TextColor            TextGap
  437.       TextHeight        TextInside
  438.       TextInsideAlign        TextMovement
  439.       TextOutsideAlign        TextOverride
  440.       TextPosition        TextPrefix
  441.       TextRotation        TextStyle
  442.       TextSuffix        ToleranceDisplay
  443.       ToleranceHeightScale    ToleranceJustification
  444.       ToleranceLowerLimit    TolerancePrecision
  445.       ToleranceSuppressLeadingZeros
  446.       ToleranceSuppressTrailingZeros
  447.       ToleranceSuppressZeroInches
  448.       ToleranceSuppressZeroFeet    ToleranceUpperLimit
  449.       UnitsFormat        VerticalTextPosition
  450.       AltRoundDistance        AltSuppressLeadingZeros
  451.       AltSuppressTrailingZeros    AltSuppressZeroInches
  452.       AltSuppressZeroFeet    AltTextPrefix
  453.       AltTextSuffix        AltTolerancePrecision
  454.       AltToleranceSuppressLeadingZeros
  455.       AltToleranceSuppressTrailingZeros
  456.       AltToleranceSuppressZeroInches
  457.       AltToleranceSuppressZeroFeet
  458.       AltUnitsFormat        AltUnits
  459.       AltUnitsPrecision        AltUnitsScale
  460.      )|;
  461.     ("AcDbEllipse"
  462.      ((StartAngle "起始角")
  463.       (EndAngle "终止角")
  464.       (StartParameter "起始参数")
  465.       (EndParameter "终止参数")
  466.       (Center "中心")
  467.       (StartPoint "起点")
  468.       (EndPoint "终点")
  469.       (MajorAxis "长轴方向")
  470.       (MinorAxis "短轴方向")
  471.       (MajorRadius "长轴半径")
  472.       (MinorRadius "短轴半径")
  473.       (Normal "法向")
  474.       (RadiusRatio "半径比")
  475.      )
  476.      "0 1 2"
  477.     )
  478.     ("AcDbExternalReference"
  479.      ((Name "名称")
  480.       (Rotation "转角")
  481.       (XScaleFactor "X比例")
  482.       (YScaleFactor "Y比例")
  483.       (ZScaleFactor "Z比例")
  484.       (InsertionPoint "插入点")
  485.       (Normal "法向")
  486.      )
  487.      "1 2 3 4"
  488.     )
  489.     ("AcDbHatch"
  490.      ((PatternName "图案名称")
  491.       (HatchStyle "填充方式")
  492.       (HatchObjectType "填充类型")
  493.       (PatternScale "图案比例")
  494.       (PatternAngle "图案角度")
  495.       (ISOPenWidth "ISO笔宽")
  496.       (Normal "法向")
  497.       (Elevation "标高")
  498.       (PatternDouble "是否双向")
  499.       (PatternSpace "图案间距")
  500.       (GradientName "渐变图案名称")
  501.       (GradientAngle "渐变填充角度")
  502.       (GradientCentered "渐变填充方式")
  503.       (GradientColor1 "起始颜色")
  504.       (GradientColor2 "结束颜色")
  505.      )
  506.      "0 1 2 3 4"
  507.     )
  508.     ("AcDbLeader"
  509.      ((StyleName "样式")
  510.       (ArrowheadBlock "自定义箭头块")
  511.       (ArrowheadSize "箭头大小")
  512.       (ArrowheadType "箭头类型")
  513.       (DimensionLineColor "尺寸线颜色")
  514.       (ScaleFactor "比例因子")
  515.       (TextGap "字线间距")
  516.       (Normal "法向")
  517.       ("Type" "类型")
  518.       (Coordinates "顶点集")
  519.       (Annotation "注释对象")
  520.       (VerticalTextPosition "文字垂直位置")
  521.      )
  522.      "0"
  523.     )
  524.     ("AcDbLightweightPolyline"
  525.      ((Closed "闭合")
  526.       (ConstantWidth "全局宽度")
  527.       (Thickness "厚度")
  528.       (Elevation "标高")
  529.       (LinetypeGeneration "生成方式")
  530.       (Normal "法向")
  531.       (Coordinates "顶点集")
  532.      )
  533.      "0 1 2 3 4"
  534.     )
  535.     ("AcDbLine"
  536.      ((Thickness "厚度")
  537.       (StartPoint "起点")
  538.       (EndPoint "终点")
  539.       (Normal "法向")
  540.      )
  541.      "0"
  542.     )
  543.     ("AcDbMInsertBlock"
  544.      ((Rows "行数")
  545.       (Columns "列数")
  546.       (RowSpacing "行间距")
  547.       (ColumnSpacing "列间距")
  548.       (Rotation "转角")
  549.       (Name "块名")
  550.       (InsertionPoint "插入点")
  551.       (Normal "法向")
  552.       (XScaleFactor "X比例")
  553.       (YScaleFactor "Y比例")
  554.       (ZScaleFactor "Z比例")
  555.      )
  556.      "0 1 2 3"
  557.     )
  558.     ("AcDbMLine"
  559.      ((StyleName "样式") (Coordinates "顶点集"))
  560.      "0"
  561.     )
  562.     ("AcDbMText"
  563.      ((Textstyle "字体")
  564.       (Height "字高")
  565.       (Rotation "旋转角")
  566.       (LineSpacingDistance "行间距")
  567.       (LineSpacingFactor "行间距比例")
  568.       (LineSpacingStyle "行间距样式")
  569.       (AttachmentPoint "附着点")
  570.       (BackgroundFill "背景填充")
  571.       (TextString "文字")
  572.       (Width "宽度")
  573.       (DrawingDirection "阅读方向")
  574.       (InsertionPoint "插入点")
  575.       (Normal "法向")
  576.      )
  577.      "0 1 2 3 4"
  578.     )
  579.     ("AcDbPoint"
  580.      ((Coordinates "顶点") (Normal "法向") (Thickness "厚度"))
  581.      "0 2"
  582.     )
  583.     ("AcDbPolyfaceMesh" (Coordinates) ("顶点集") "")
  584.     ("AcDbPolygonMesh"
  585.      ((MClose "M向闭合")
  586.       (NClose "N向闭合")
  587.       (MDensity "M向密度")
  588.       (NDensity "N向密度")
  589.       ("Type" "类型")
  590.       (Coordinate "顶点")
  591.      )
  592.      "0 1 2"
  593.     )
  594.     ("AcDbPolyline"
  595.      ((Closed "闭合")
  596.       (Elevation "标高")
  597.       (ConstandWidth "全局宽度")
  598.       (LinetypeGeneration "线形生成")
  599.       (Thickness "厚度")
  600.       ("Type" "类型")
  601.       (Coordinates "顶点")
  602.       (Normal "法向")
  603.      )
  604.      "0 1 2 3"
  605.     )
  606.     ("AcDbRaster"
  607.      ((Brightness "亮度")
  608.       (Transparency "透明度")
  609.       (Fade "褪色度")
  610.       (Contrast "对比度")
  611.       (ClippingEnabled "裁剪边界")
  612.       (ImageVisibility "可见性")
  613.       (ShowRotation "旋转显示")
  614.       (ImageFile "文件")
  615.       (Name "名称")
  616.       (Origin "原点")
  617.       (Rotation "旋转角")
  618.       (ScaleFactor "比例因子")
  619.       (ImageHeight "图像高度")
  620.       (ImageWidth "图像宽度")
  621.       (Width "像素宽度")
  622.       (Height "像素高度")
  623.      )
  624.      "0 1 2 3"
  625.     )
  626.     ("AcDbRay"
  627.      ((BasePoint "基点")
  628.       (DirectionVector "方向")
  629.       (SecondPoint "第二点")
  630.      )
  631.      "1"
  632.     )
  633.     ("AcDbRegion" ((Normal "法向")) "0")
  634.     ("AcDbShape"
  635.      ((Name "名称")
  636.       (Height "高度")
  637.       (ObliqueAngle "倾角")
  638.       (Rotation "旋转角")
  639.       (ScaleFactor "宽度因子")
  640.       (Thickness "厚度")
  641.       (InsertionPoint "插入点")
  642.       (Normal "法向")
  643.      )
  644.      "0"
  645.     )
  646.     ("AcDbSolid"
  647.      ((Thickness "厚度") (Normal "法向") (Coordinates "顶点"))
  648.      "0"
  649.     )
  650.     ("AcDbSpline"
  651.      ((Closed "闭合")
  652.       (ControlPoints "控制点")
  653.       (FitPoints "拟合点")
  654.       (EndTangent "终点切向")
  655.       (StartTangent "起点切向")
  656.       (FitTolerance "公差值")
  657.       (Knots "节点矢量")
  658.       (Weights "权值矢量")
  659.      )
  660.      "0"
  661.     )
  662.     ("AcDbTable"
  663.      ((StyleName "表样式")
  664.       (RowHeight "行高")
  665.       (ColumnWidth "列宽")
  666.       (Rows "行数")
  667.       (Columns "列数")
  668.       (FlowDirection "表流向")
  669.       (TitleSuppressed "标题")
  670.       (HeaderSuppressed "页眉")
  671.       (Width "表格宽度")
  672.       (Height "表格高度")
  673.       (HorzCellMargin "水平合并")
  674.       (VertCellMargin "竖向合并")
  675.      )
  676.      "0 1 2"
  677.     )
  678.     ("AcDbText"
  679.      ((StyleName "字体")
  680.       (Height "字高")
  681.       (Rotation "旋转角")
  682.       (TextString "文字")
  683.       (ObliqueAngle "倾角")
  684.       (ScaleFactor "字宽")
  685.       (Backward "反向")
  686.       (UpsideDown "颠倒")
  687.       (Thickness "厚度")
  688.       (Alignment "对齐方式")
  689.       (InsertionPoint "插入点")
  690.       (TextAlignmentPoint "对齐点")
  691.       (TextGenerationFlag "生成标志")
  692.       (HorizontalAlignment "水平对齐")
  693.       (VerticalAlignment "垂直对齐")
  694.       (Normal "法线")
  695.      )
  696.      "0 2 3"
  697.     )
  698.     ("AcDbTolerance"
  699.      ((StyleName "样式")
  700.       (TextStyle "字体")
  701.       (TextHeight "字高")
  702.       (PrimaryUnitsPrecision "小数位数")
  703.       (ScaleFactor "比例因子")
  704.       (TextColor "字颜色")
  705.       (TextString "文字")
  706.       (DecimalSeparator "小数点分隔符")
  707.       (DimensionLineColor "尺寸线颜色")
  708.       (Arrowhead1Type "第一箭头类型")
  709.       (DirectionVector "构造线方向")
  710.       (FractionFormat "分数类型")
  711.       (InsertionPoint "插入点")
  712.       (Normal "法线")
  713.      )
  714.      "0"
  715.     )
  716.     ("AcDbXLine"
  717.      ((BasePoint "基点")
  718.       (DirectionVector "方向")
  719.       (SecondPoint "第二点")
  720.      )
  721.      "0 1"
  722.     )
  723.     ("TDbWall"
  724.       ((Material "材料")
  725.     (Height "墙高")
  726.     (RightWidth "右厚度")
  727.     (LeftWidth "左厚度")
  728.     (Scale "出图比例")
  729.     (EndClose "墙端开口")
  730.     (EnUsage "内外特征")
  731.     (Style "材料")
  732.     (Usage "用途")
  733.       )
  734.       ""
  735.     )
  736.     ("TDbOpening"
  737.      ((Label "编号")
  738.       (Scale "出图比例")
  739.       (TextHeight "字体高度")
  740.       (Height "门高")
  741.       (Width "门宽")
  742.      )
  743.      ""
  744.     )
  745.     ("TDbColumn"
  746.      ((Height "柱高")
  747.       (Material "材料") ;_钢砼 40 砖 50 石材 70 金属
  748.       (Rotation "旋转")
  749.       (Scale "出图比例")
  750.       (SectionShape "柱子类型")
  751.       (SizeU "柱宽")
  752.       (SizeV "柱高")
  753.      )
  754.      ""
  755.     )
  756.     ("TDbAxisLabelSet"
  757.      ((CirRadius "轴圈半径")
  758.       (LeaderLen1 "引线长度一")
  759.       (LeaderLen2 "引线长度二")
  760.       (Scale "出图比例")
  761.       (TextStyle "字体")
  762.      )
  763.      ""
  764.     )               
  765.     ("TDbLineStair"
  766.      (("SegHeight" "梯段高度")
  767.       ;(StepWidth "踏步宽度")
  768.       ;(StepNum "踏步数")
  769.       ;(StepHeight "踏步高度")
  770.       ;("SegLength" "梯段长度")
  771.       (LeftBeam "左扶手")
  772.       (RightBeam "右扶手")
  773.       (SectionStyle "剖断类型")
  774.       ("SegWidth" "梯段宽度")
  775.      )
  776.      ""
  777.     )
  778.     ("TDbBlockInsert"
  779.       ((XEffectiveScaleFactor "X比例")
  780.     (YEffectiveScaleFactor "Y比例")
  781.     (ZEffectiveScaleFactor "Z比例")
  782.         (Rotation "转角")
  783.       )
  784.       ""
  785.     )
  786.    )
  787.   
  788. )


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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-7-6 20:53:07 | 显示全部楼层
使用说明:
1 可以将1楼和2楼帖子编译,3楼帖子保持lisp源码方便用户自己添加属性,编译版就不传了
2 编译的vlx 和3楼的lisp要放在 support 路径下

一直不习惯在Lisp中临时生成DCL,有兴趣的可以把 1 2 楼和在一起,如果这样做了,别忘了在这留一份{:soso_e100:}

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

使用道具 举报

发表于 2013-7-6 21:00:51 | 显示全部楼层
这么好的贴怎么没人顶勒

点评

这个要求用户对ActiveX有深入了解才能定制出适合自己的刷子,比Matchprop更实用更便捷工具  详情 回复 发表于 2013-7-6 21:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-7-6 21:06:02 | 显示全部楼层
今天刚好看到你同wkai版的合奏,震撼了!!!
  1. ;;----------------------------------------------------强劲的刷子
  2. ;;     Writen By Eachy Email: eachy@21cn.com   2004.12.23      
  3. ;;  http://discussion.autodesk.com/thread.jspa?messageID=3941641

  4. ;;1 获取某一个实体所有可用属性(en为Vla对象)
  5. (defun f:vl-property-available (en)
  6.   (defun f:vla-getlist ()
  7.     (cond
  8.       (*vla-getlist*)
  9.       ((setq *vla-getlist*
  10.              (mapcar
  11.                 (function (lambda (x) (substr x 9)));去VLA-GET-
  12.                 (vl-remove-if-not
  13.                   (function (lambda (x) (wcmatch (strcase x) "VLA-GET-*")))
  14.                   (atoms-family 1)
  15.                 )
  16.               )
  17.        )
  18.       )
  19.     )
  20.   )
  21.   (vl-remove-if-not
  22.     (function
  23.       (lambda (x)
  24.         (vlax-property-available-p en x t)
  25.       )
  26.     )
  27.     (f:vla-getlist)
  28.   )
  29. )

  30. ;;2 获取某一个实体所有可用方法(en为Vla对象)
  31. (defun f:vl-method-applicable (en)
  32.   (defun f:vla-methodlist ()
  33.     (cond
  34.       (*vla-methodlist*)
  35.       ((setq *vla-methodlist*
  36.               (mapcar (function (lambda (x) (substr x 5)))
  37.                       (vl-remove-if-not
  38.                         (function
  39.                           (lambda (x)
  40.                             (and
  41.                               (wcmatch (strcase x) "VLA-*")
  42.                               (not (wcmatch (strcase x) "VLA-GET-*,VLA-PUT-*"))
  43.                             )
  44.                           )
  45.                         )
  46.                         (atoms-family 1)
  47.                       )
  48.               )
  49.        )
  50.       )
  51.     )
  52.   )
  53.   (vl-remove-if-not
  54.     (function
  55.       (lambda (x)
  56.         (vlax-method-applicable-p en x)
  57.       )
  58.     )
  59.     (f:vla-methodlist)
  60.   )
  61. )

  62. ;;3 产生动态对话框,用户供选择  wkai
  63. (defun zf:get_properties
  64.        (e pl / DCL_NAME E F FLAG INDEX_VALUE PL1 VAR pl2 pl0)
  65.   ;;3.1 格式化字符串
  66.   ;;(ZF:FORMAT_STR "ABCD" 10),"ABCD      "
  67.   (defun zf:format_str (a b)
  68.     (print a)
  69.     (princ " ")
  70.     (princ (type a))
  71.     (setq a (vl-princ-to-string a))
  72.     (if        (> (strlen a) b)
  73.       (setq a (strcat (substr a 1 (- b 1)) "."))
  74.       (repeat (- b (strlen a)) (setq a (strcat a " ")))
  75.     )
  76.     a
  77.   )

  78.   (defun zf:check_toggles ()
  79.     (foreach n pl0
  80.       (if (= "1"
  81.              (get_tile (vl-princ-to-string
  82.                          (if (listp n)
  83.                            (car n)
  84.                            n
  85.                          )
  86.                        )
  87.              )
  88.           )
  89.         (setq pl2 (cons        (if (listp n)
  90.                           (car n)
  91.                           n
  92.                         )
  93.                         pl2
  94.                   )
  95.         )
  96.       )
  97.     )
  98.     (done_dialog 1)
  99.   )

  100.   (defun zf:selectall (str pl1 / mode)
  101.     (setq mode (get_tile str))
  102.     (foreach n pl1
  103.       (set_tile        (vl-princ-to-string
  104.                   (if (listp n)
  105.                     (car n)
  106.                     n
  107.                   )
  108.                 )
  109.                 mode
  110.       )
  111.     )
  112.   )

  113.   (defun zf:get_rows (n / lst)
  114.     (cond
  115.       ((< n 6) (setq b 1))
  116.       ((< n 18) (setq b 2))
  117.       (t (setq b 3))
  118.     )
  119.     (setq c (1+ (fix (/ n b 1.0)))
  120.           m 1
  121.     )
  122.     (while (<= m c)
  123.       (setq r (rem n m))
  124.       (if (or (= r 0) (> r (* 0.7 m)))
  125.         (setq lst (cons m lst))
  126.       )
  127.       (setq m (1+ m))
  128.     )
  129.     (car lst)
  130.   )
  131.   (if (= 'ENAME (type e))
  132.     (setq e (vlax-ename->vla-object e))
  133.   )
  134.   (setq pl (f:vl-property-available e))
  135.   (foreach n pl
  136.     (if        (not (vl-catch-all-error-p
  137.                (setq var (vl-catch-all-apply
  138.                            'vlax-get-property
  139.                            (list e
  140.                                  (if (listp n)
  141.                                    (car n)
  142.                                    n
  143.                                  )
  144.                            )
  145.                          )
  146.                )
  147.              )
  148.         )
  149.       (setq pl0 (cons n pl0))
  150.     )
  151.   )
  152.   (setq pl0 (mapcar 'read (vl-sort pl0 '<)))
  153.   (setq pl1 pl0)
  154.   (setq        pl '((color "Color")
  155.              (layer "Layer")
  156.              (linetype "线型")
  157.              (lineweight "线宽")
  158.              (LinetypeScale "线型比例")
  159.              (PlotStyleName "打印样式")
  160.             )

  161.   ) ;_ 此处可根据需要增减


  162.   (foreach n pl
  163.     (setq pl1 (vl-remove (car n) pl1))
  164.   )
  165.   (setq        m 0
  166.         o (zf:get_rows (length pl1))
  167.   )
  168.   (or o (setq o 20))
  169.   (setq oo (fix (/ (length pl1) o 1.0)))
  170.   (if (> (rem (length pl1) o) 0)
  171.     (setq oo (1+ oo))
  172.   )
  173.   (setq oo (cadr (assoc oo '((1 6) (2 3) (3 2) (4 2) (5 2) (6 1)))))
  174.   (or oo (setq oo 1))
  175.   (setq DCL_NAME (getvar "TEMPPREFIX"))
  176.   (setq dcl_name (strcat dcl_name "easy_matchprop" ".dcl"))
  177.   (SETQ f (OPEN dcl_name "w"))
  178.   (write-line
  179.     (strcat "ss:dialog{label=\""
  180.             (vlax-get-property e 'ObjectName)
  181.             "\";"
  182.     )
  183.     f
  184.   )
  185.   (write-line
  186.     ":boxed_row{label=\"Public Props\";\n:column{"
  187.     f
  188.   )
  189.   (foreach n pl
  190.     (setq m (1+ m))
  191.     (if        (> m oo)
  192.       (progn (setq m 1) (write-line "}\n:column{" f))
  193.     )
  194.     (write-line
  195.       (strcat ":toggle{label=\""
  196.               (zf:format_str
  197.                 (if (listp n)
  198.                   (cadr n)
  199.                   n
  200.                 )
  201.                 15
  202.               )
  203.               ":"
  204.               (zf:format_str
  205.                 (vlax-get-property
  206.                   e
  207.                   (if (listp n)
  208.                     (car n)
  209.                     n
  210.                   )
  211.                 )
  212.                 15
  213.               )
  214.               "\";key=\""
  215.               (vl-princ-to-string
  216.                 (if (listp n)
  217.                   (car n)
  218.                   n
  219.                 )
  220.               )
  221.               "\";}"
  222.       )
  223.       f
  224.     )
  225.   )
  226.   (repeat (- oo m) (write-line ":spacer{}" f))
  227.   (write-line
  228.     "}}:boxed_row{label=\"Private Props\";\n:column{"
  229.     f
  230.   )
  231.   (setq m 0)
  232.   (foreach n pl1
  233.     (setq m (1+ m))
  234.     (if        (> m o)
  235.       (progn (setq m 1) (write-line "}\n:column{" f))
  236.     )
  237.     (write-line
  238.       (strcat ":toggle{label=\""
  239.               (zf:format_str
  240.                 (if (listp n)
  241.                   (cadr n)
  242.                   n
  243.                 )
  244.                 15
  245.               )
  246.               ":"
  247.               (zf:format_str
  248.                 (vlax-get-property
  249.                   e
  250.                   (if (listp n)
  251.                     (car n)
  252.                     n
  253.                   )
  254.                 )
  255.                 15
  256.               )
  257.               "\";key=\""
  258.               (vl-princ-to-string
  259.                 (if (listp n)
  260.                   (car n)
  261.                   n
  262.                 )
  263.               )
  264.               "\";}"
  265.       )
  266.       f
  267.     )
  268.   )
  269.   (repeat (- o m) (write-line ":spacer{}" f))
  270.   (write-line
  271.     "}}:row{:toggle{label=\"Public Props\";key=\"selectall\";}:toggle{label=\"Private Props\";key=\"selectall1\";}ok_only;}}"
  272.     f
  273.   )
  274.   (close f)
  275.   (setq index_value (load_dialog dcl_name))
  276.   (new_dialog "ss" index_value)
  277.   (action_tile "selectall" "(zf:selectall \"selectall\" pl)")
  278.   (action_tile
  279.     "selectall1"
  280.     "(zf:selectall \"selectall1\" pl1)"
  281.   )
  282.   (action_tile "accept" "(zf:check_toggles)")
  283.   (setq flag (start_dialog))
  284.   (unload_dialog index_value)
  285.   (print pl2)
  286.   pl2
  287. )

  288. ;;4 改特性的一种通用编程方法,变量名称使用特性名,用 eval 求值
  289. (defun ea:put-property (obj plst /)
  290.   (mapcar '(lambda (p)
  291.              (if (eval p)
  292.                (vl-catch-all-apply
  293.                  'vlax-put-property
  294.                  (list obj p (eval p))
  295.                )
  296.              )
  297.            )
  298.           plst
  299.   )
  300. )

  301. ;;5 用上面的函数可以做出比CAD更最强劲的并可以自由定制的刷子      
  302. (defun c:mat (/ *ERROR* E EDOC MYERR OBJ OLDERR P PL SS SSL VAR X)
  303.   
  304.   (vl-load-com)

  305.   (defun myerr (msg)
  306.     (if        (/= msg "取消")
  307.       (princ "\n*取消*")
  308.     )
  309.     (if        pl
  310.       (progn
  311.         (mapcar '(lambda (x) (set x nil)) pl)
  312.         (setq pl nil)
  313.       )
  314.     )
  315.     (vla-endundomark eDoc)
  316.     (setq *error* olderr)
  317.     (princ)
  318.   )
  319.   
  320.   (setq eDoc (vlax-get-property (vlax-get-acad-object) 'activedocument))
  321.   (vla-startundomark eDoc)
  322.   (setq        olderr        *error*
  323.         *error*        myerr
  324.   )
  325.   (if (and (setq e (car (entsel "\n选择源对象: ")))
  326.            (setq pl (zf:get_properties e pl)) ;对话框
  327.            (progn
  328.              (princ "\n选择目标对象....")
  329.              (setq ss (ssget))
  330.            )
  331.       )
  332.     (progn
  333.       (setq obj (vlax-ename->vla-object e))
  334.       (mapcar '(lambda (p / var)
  335.                  (if (not (vl-catch-all-error-p
  336.                             (setq var (vl-catch-all-apply
  337.                                         'vlax-get-property
  338.                                         (list obj p)
  339.                                       )
  340.                             )
  341.                           )
  342.                      )
  343.                    (set p var)
  344.                    (set p nil)
  345.                  )
  346.                )
  347.               pl
  348.       )
  349.       (setq ssl (sslength ss))
  350.       (while (> ssl 0)
  351.         (setq
  352.           obj (vlax-ename->vla-object (ssname ss (setq ssl (1- ssl))))
  353.         )
  354.         (ea:put-property obj pl)
  355.       )
  356.       (mapcar '(lambda (x) (set x nil)) pl)
  357.       (setq pl nil)
  358.     )
  359.   )
  360.   (setq *error* olderr)
  361.   (vla-endundomark eDoc)
  362.   (princ)
  363. )
  364. ;;----------------------------------------------------强劲的刷子

点评

他那个所有属性太吓人,我不敢用  详情 回复 发表于 2013-7-6 21:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-6 21:07:01 | 显示全部楼层
xiaoyuzj503 发表于 2013-7-6 21:00
这么好的贴怎么没人顶勒

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-7-6 21:09:54 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2013-7-6 21:06
今天刚好看到你同wkai版的合奏,震撼了!!!

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

使用道具 举报

已领礼包: 2221个

财富等级: 金玉满堂

发表于 2013-7-6 21:42:26 | 显示全部楼层

Command: EA:SMAT
; error: no function definition: YBVL-CLEARCSET

点评

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-7-6 21:54:48 | 显示全部楼层
sachindkini 发表于 2013-7-6 21:42
Command: EA:SMAT
; error: no function definition: YBVL-CLEARCSET

在论坛搜索,这个是解决ActiveX中Acitveselection的bug而写的

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

使用道具 举报

发表于 2013-7-7 08:06:35 来自手机 | 显示全部楼层
LZ程序中还用到了字符拆分合并函数来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-7 08:09:14 来自手机 | 显示全部楼层
还有TRACE属性和内置函数同名,不适用这个方法来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 184个

财富等级: 日进斗金

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 05:11 , Processed in 0.301452 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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