乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 60|回复: 19

[编程交流] 帮助更改层Lisp

[复制链接]

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:40:44 | 显示全部楼层 |阅读模式
你好
 
我有一个lisp例程,它将特定直径的圆放在不同的层上。
我想在这个例程中包括一条带有凸起的LW多段线。
 
我可以将lwpolyline放入选择集中,但我可以在例程进入圆的条件语句之前更改其图层吗?
 
或者如何将lwployline包含到条件语句中。
 
这条多段线有一个非常特定的面积,这将是更准确的方法,但这是否更有意义按面积过滤?
 
我可能没说清楚。。。
 
  1. ...snip
  2. (setq cecho (getvar "cmdecho"))
  3. (prompt "\nSelect Entities to be Changed : ")
  4. (command "setvar" "cmdecho" "0")
  5. (setq ss-circle
  6.     (ssget
  7.       '(
  8.    (-4 . "<OR")
  9.      (-4 . "<AND") (0 . "CIRCLE")                (-4 . "AND>")
  10.      (-4 . "<AND") (0 . "LWPOLYLINE") (42 . 1.0) (-4 . "AND>")
  11.    (-4 .  "OR>")                  
  12. )
  13.     )
  14. )
  15.                   
  16. (setq index 0)                        ;(repeat n
  17. (setq i -1)
  18. (while (setq ent (ssname ss-circle (setq i (1+ i))))
  19.    (setq lst (cons ent lst))
  20. )
  21. (reverse lst)
  22. (foreach ent lst
  23.    (setq enlist (entget ent))
  24.    (setq cr (cdr (assoc 40 enlist)))
  25.    
  26.    (cond
  27.      ((equal cr 0.0625 0.00001)        ;1/8" PILOT  DRILL
  28.       (command        "change" ent ""        "property" "layer" "cnc_drill-pilot"
  29.         ""
  30.        )
  31.      )     snip...
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 19:44:10 | 显示全部楼层
既然要将LWDOLYLINE更改为同一图层,为什么要在圆之前更改其图层?
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:49:33 | 显示全部楼层
谢谢
 
对不起,我没说清楚。
 
该例程指定直径范围为的圆。125至5.0,以分离特定层。
我想把这条特殊的多段线连接到它自己的特定层。
 
希望这现在有意义。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 19:50:21 | 显示全部楼层
目前只需进行简单修改,我们就可以根据您的要求扩展这些代码(如果适用)。
 
  1. (if (setq ss-circle (ssget '((-4 . "<OR") (0 . "CIRCLE") (-4 . "<AND") (0 . "LWPOLYLINE") (42 . 1.0) (-4 . "AND>") (-4 . "OR>"))))
  2. (progn
  3.    (setq i -1)
  4.    (while (setq ent (ssname ss-circle (setq i (1+ i))))
  5.      (setq enlist (entget ent))
  6.      (if (and (eq (cdr (assoc 0 enlist)) "CIRCLE")(equal cr 0.0625 0.00001))
  7.        (command "change" ent "" "property" "layer" "cnc_drill-pilot" "")
  8.        )
  9.      (   ;; Add your stuff here for the LWpolyline
  10.       )
  11.      )
  12.    )
  13. )
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 19:56:10 | 显示全部楼层
谢谢你的回复。
 
我会发布整个代码,也许它会更有意义。
 
创建的最后一个层“CNC\U PLY-SLOT”是我试图获得指定的lwpolyline的层。
 
 
  1. (defun C:C2L (/        a1 a2 n        index b1 b2 b3 d1 d2 cecho ss-circle ss-pline ent lst
  2.       enlist cr        i cl
  3.      )
  4.                                 ;(command "undo" "be")
  5. (setq *old_error* *error*)
  6. (setq *error* trap)
  7.                                 ;(command "undo" "be")
  8. (setq cl (getvar "clayer"))
  9.                                 ; -----------------------------------------------------------------------------
  10.                                 ; |                               CREATE LAYERS                               |
  11.                                 ; |                                                                           |
  12.                                 ; -----------------------------------------------------------------------------
  13. (if                                        ; if layer CNC_DRILL-PILOT does not exist
  14.    (not
  15.      (tblsearch "LAYER" "CNC_DRILL-PILOT")
  16.    )
  17.     (command "-layer" "make" "CNC_DRILL-PILOT" "color" "9" "" ""
  18.      )                                ;create layer CNC_DRILL-PILOT
  19.     (command "-layer" "thaw" "CNC_DRILL-PILOT" "on"
  20.       "CNC_DRILL-PILOT" "set" "CNC_DRILL-PILOT" ""
  21.      )
  22. )
  23. (if                                        ; if layer CNC_DRILL-.1875 does not exist
  24.    (not
  25.      (tblsearch "LAYER" "CNC_DRILL-.1875-THRU")
  26.    )
  27.     (command "-layer" "make" "CNC_DRILL-.1875-THRU"        "color"        "CYAN"
  28.       "" ""
  29.      )
  30.                                 ;  create layer CNC_DRILL-.1875-THRU
  31.     (command "-layer" "thaw" "CNC_DRILL-.1875-THRU"        "on"
  32.       "CNC_DRILL-.1875-THRU"        "set" "CNC_DRILL-.1875-THRU"
  33.       ""
  34.      )
  35. )
  36. (if                                        ; if layer CNC_DRILL-.250 does not exist
  37.    (not
  38.      (tblsearch "LAYER" "CNC_DRILL-.250-PEG")
  39.    )
  40.     (command "-layer" "make" "CNC_DRILL-.250-PEG" "color" "RED" ""
  41.       ""
  42.      )
  43.                                 ;  create layer CNC_DRILL-.250-PEG
  44.     (command "-layer" "thaw" "CNC_DRILL-.250-PEG" "on"
  45.       "CNC_DRILL-.250-PEG" "set" "CNC_DRILL-.250-PEG" ""
  46.      )
  47. )
  48. (if                                        ; if layer CNC_DRILL-.3125 does not exist
  49.    (not
  50.      (tblsearch "LAYER" "CNC_DRILL-.3125-THRU")
  51.    )
  52.     (command "-layer" "make" "CNC_DRILL-.3125-THRU"        "color"        "GREEN"
  53.       "" ""
  54.      )
  55.                                 ;  create layer CNC_DRILL-.3125-THRU
  56.     (command "-layer" "thaw" "CNC_DRILL-.3125-THRU"        "on"
  57.       "CNC_DRILL-.3125-THRU"        "set" "CNC_DRILL-.3125-THRU"
  58.       ""
  59.      )
  60. )
  61. (if                                        ; if layer CNC_DRILL-.375 does not exist
  62.    (not
  63.      (tblsearch "LAYER" "CNC_DRILL-.375-THRU")
  64.    )
  65.     (command "-layer" "make" "CNC_DRILL-.375-THRU" "color" "MAGENTA"
  66.       "" ""
  67.      )
  68.                                 ;  create layer CNC_DRILL-.375-THRU
  69.     (command "-layer" "thaw" "CNC_DRILL-.375-THRU" "on"
  70.       "CNC_DRILL-.375-THRU" "set" "CNC_DRILL-.375-THRU" ""
  71.      )
  72. )
  73. (if                                        ; if layer CNC_DRILL-.500 does not exist
  74.    (not
  75.      (tblsearch "LAYER" "CNC_DRILL-.500-THRU")
  76.    )
  77.     (command "-layer" "make" "CNC_DRILL-.500-THRU" "color" "9" "" ""
  78.      )
  79.                                 ;  create layer CNC_DRILL-.375-THRU
  80.     (command "-layer" "thaw" "CNC_DRILL-.500-THRU" "on"
  81.       "CNC_DRILL-.375-THRU" "set" "CNC_DRILL-.500-THRU" ""
  82.      )
  83. )
  84. (if                                        ; if layer CNC_PLY-DOWEL does not exist
  85.    (not
  86.      (tblsearch "LAYER" "CNC_PLY-DOWEL")
  87.    )
  88.     (command "-layer" "make" "CNC_PLY-DOWEL" "color" "211" "" ""
  89.      )
  90.                                 ;  create layer CNC_DRILL-DOWEL
  91.     (command "-layer" "thaw" "CNC_PLY-DOWEL" "on" "CNC_PLY-DOWEL"
  92.       "set" "CNC_PLY-DOWEL" ""
  93.      )                               
  94. )
  95. (if                                        ; if layer CNC_PLY-T-NUT-RECESS does not exist
  96.    (not
  97.      (tblsearch "LAYER" "CNC_PLY-T-NUT-RECESS")
  98.    )
  99.     (command "-layer" "make" "CNC_PLY-T-NUT-RECESS"        "color"        "YELLOW" "" ""
  100.                    )
  101.                                 ;  create layer CNC_PLY-T-NUT-RECESS
  102.     (command "-layer" "thaw" "CNC_PLY-T-NUT-RECESS"        "on"
  103.       "CNC_PLY-T-NUT-RECESS"        "set" "CNC_PLY-T-NUT-RECESS"
  104.       ""
  105.      )                        
  106. )                                       
  107. (if                                        ; if layer CNC_PLY-GROMMET does not exist
  108.    (not
  109.      (tblsearch "LAYER" "CNC_PLY-GROMMET")
  110.    )
  111.     (command "-layer" "make" "CNC_PLY-GROMMET"        "color"        "40" "" ""
  112.                    )
  113.                                 ;  create layer CNC_PLY-GROMMET
  114.     (command "-layer" "thaw" "CNC_PLY-GROMMET"        "on"
  115.       "CNC_PLY-GROMMET"        "set" "CNC_PLY-GROMMET"
  116.       ""
  117.      )
  118. )
  119. (if                                        ; if layer CNC_PLY-SLOT does not exist
  120.    (not
  121.      (tblsearch "LAYER" "CNC_PLY-SLOT")
  122.    )
  123.     (command "-layer" "make" "CNC_PLY-SLOT"        "color"        "RED" "" ""
  124.                    )
  125.                                 ;  create layer CNC_PLY-SLOT
  126.     (command "-layer" "thaw" "CNC_PLY-SLOT"        "on"
  127.       "CNC_PLY-SLOT"        "set" "CNC_PLY-SLOT"
  128.       ""
  129.      )
  130. )
  131.                                 ; -----------------------------------------------------------------------------
  132.                                 ; |                               MAIN PROGRAM                                |
  133.                                 ; |                                                                           |
  134.                                 ; -----------------------------------------------------------------------------
  135. (setq cecho (getvar "cmdecho"))
  136. (prompt "\nSelect Entities to be Changed : ")
  137. (command "setvar" "cmdecho" "0")
  138. (setq ss-circle
  139.     (ssget
  140.       '(
  141.    (-4 . "<OR")
  142.      (-4 . "<AND") (0 . "CIRCLE")                (-4 . "AND>")
  143.      (-4 . "<AND") (0 . "LWPOLYLINE") (42 . 1.0) (-4 . "AND>")
  144.    (-4 .  "OR>")                  
  145. )
  146.     )
  147. )
  148.                   
  149. (setq index 0)                        ;(repeat n
  150. (setq i -1)
  151. (while (setq ent (ssname ss-circle (setq i (1+ i))))
  152.    (setq lst (cons ent lst))
  153. )
  154. (reverse lst)
  155. (foreach ent lst
  156.    (setq enlist (entget ent))
  157.    (setq cr (cdr (assoc 40 enlist)))
  158.    
  159.    (cond
  160.      ((equal cr 0.0625 0.00001)        ;1/8" PILOT  DRILL
  161.       (command        "change" ent ""        "property" "layer" "cnc_drill-pilot"
  162.         ""
  163.        )
  164.      )
  165.      ((equal cr 0.09375 0.00001)        ;3/16" DRILL
  166.       (command        "change" ent ""        "property" "layer"
  167.         "cnc_drill-.1875-thru" ""
  168.        )
  169.      )
  170.      ((equal cr 0.125 0.00001)                ;1/4" DRILL BLIND
  171.       (command        "change" ent ""        "property" "layer"
  172.         "CNc_DRILL-.250-PEG"        ""
  173.        )
  174.      )
  175.      ((equal cr 0.15625 0.00001)
  176.                                 ;((= cr 0.15625) ;5/16" DRILL
  177.       (command        "change" ent ""        "property" "layer"
  178.         "cnc_drill-.3125-thru" ""
  179.        )
  180.      )
  181.      ((equal cr 0.1875 0.00001)        ;3/8" DRILL
  182.       (command        "change" ent ""        "property" "layer"
  183.         "cnc_drill-.375-thru" ""
  184.        )
  185.      )
  186.      ((equal cr 0.25 0.00001)                ;1/2" DRILL
  187.       (command        "change" ent ""        "property" "layer"
  188.         "cnc_DRILL-.500-THRU" ""
  189.        )
  190.      )
  191.      ((equal cr 0.3750 0.00001)        ;3/4" DOWEL PINS
  192.       (command        "change" ent ""        "property" "layer" "CNC_PLY-DOWEL" ""
  193.        )
  194.      )
  195.      ((equal cr 0.453125 0.000001)        ;29/32" HOLE LOCK IN DOOR
  196.       (command        "change" ent ""        "property" "layer" "CNC_PLY-DOWEL" ""
  197.        )
  198.      )
  199.      ((equal cr 0.4375 0.00001)        ;7/8" RECESS FOR T-NUT
  200.       (command        "change" ent ""        "property" "layer"
  201.         "CNC_PLY-T-NUT-RECESS" ""
  202.        )
  203.      )
  204.      ((equal cr 0.500 0.00001)                ;1.0" RECESS FOR T-NUT
  205.       (command        "change" ent ""        "property" "layer"
  206.         "CNC_PLY-T-NUT-RECESS" "color" "YELLOW" ""
  207.        )
  208.      )
  209.      ((equal cr 0.52343750 0.00001)        ; 1 3/64" HOLE PUSH LOCK IN DOOR
  210.       (command        "change" ent ""        "property" "layer" "CNC_PLY-DOWEL" ""
  211.        )
  212.      )
  213.      ((and (>= cr 0.5625) (<= cr 2.5))        ;GROMMETS
  214.       (command        "change" ent ""        "property" "layer"
  215.         "CNC_PLY-GROMMET" ""
  216.        )      
  217.      )
  218.    )                                        ;foreach
  219. )
  220. (command "setvar" "cmdecho" cecho)
  221. (setvar "clayer" cl)
  222.                                 ;(command "undo" "end")
  223. (setq *error* *old_error*)
  224. (princ)
  225. )
  226. (princ "\nType C2L to put circles on standard CNC layers.")
  227. (princ)

 
 
 
  1. (defun C:C2L  (/ *error* cm a1 a2 n index b1 b2 b3 d1 d2 cecho ss-circle
  2.               ss-pline ent lst enlist cr i cl)
  3. (defun *error*  (x)
  4.    (if cl
  5.      (setvar "clayer" cl))
  6.    (if cm
  7.      (setvar "cmdecho" cm))
  8.    (princ x)
  9.    )
  10. (setq cl (getvar "clayer")
  11.        cm (getvar "cmdecho")
  12.        )
  13. (setvar "cmdecho" 0)
  14. ;; -----------------------------------------------------------------------------
  15. ;; |                               CREATE LAYERS                               |
  16. ;; |                                                                           |
  17. ;; -----------------------------------------------------------------------------
  18. (if                                   ; if layer CNC_DRILL-PILOT does not exist
  19.    (not
  20.      (tblsearch "LAYER" "CNC_DRILL-PILOT")
  21.      )
  22.     (command "-layer" "make" "CNC_DRILL-PILOT" "color" "9" "" "")
  23.                                        ;create layer CNC_DRILL-PILOT
  24.     (command "-layer" "thaw" "CNC_DRILL-PILOT" "on" "CNC_DRILL-PILOT"
  25.              "set" "CNC_DRILL-PILOT" "")
  26.     )
  27. (if                                   ; if layer CNC_DRILL-.1875 does not exist
  28.    (not
  29.      (tblsearch "LAYER" "CNC_DRILL-.1875-THRU")
  30.      )
  31.     (command "-layer" "make" "CNC_DRILL-.1875-THRU" "color" "CYAN" ""
  32.              "")
  33.                                        ;  create layer CNC_DRILL-.1875-THRU
  34.     (command "-layer" "thaw" "CNC_DRILL-.1875-THRU" "on"
  35.              "CNC_DRILL-.1875-THRU" "set" "CNC_DRILL-.1875-THRU" "")
  36.     )
  37. (if                                   ; if layer CNC_DRILL-.250 does not exist
  38.    (not
  39.      (tblsearch "LAYER" "CNC_DRILL-.250-PEG")
  40.      )
  41.     (command "-layer" "make" "CNC_DRILL-.250-PEG" "color" "RED" "" "")
  42.                                        ;  create layer CNC_DRILL-.250-PEG
  43.     (command "-layer" "thaw" "CNC_DRILL-.250-PEG" "on"
  44.              "CNC_DRILL-.250-PEG" "set" "CNC_DRILL-.250-PEG" "")
  45.     )
  46. (if                                   ; if layer CNC_DRILL-.3125 does not exist
  47.    (not
  48.      (tblsearch "LAYER" "CNC_DRILL-.3125-THRU")
  49.      )
  50.     (command "-layer" "make" "CNC_DRILL-.3125-THRU" "color" "GREEN" ""
  51.              "")
  52.                                        ;  create layer CNC_DRILL-.3125-THRU
  53.     (command "-layer" "thaw" "CNC_DRILL-.3125-THRU" "on"
  54.              "CNC_DRILL-.3125-THRU" "set" "CNC_DRILL-.3125-THRU" "")
  55.     )
  56. (if                                   ; if layer CNC_DRILL-.375 does not exist
  57.    (not
  58.      (tblsearch "LAYER" "CNC_DRILL-.375-THRU")
  59.      )
  60.     (command "-layer" "make" "CNC_DRILL-.375-THRU" "color" "MAGENTA" ""
  61.              "")
  62.                                        ;  create layer CNC_DRILL-.375-THRU
  63.     (command "-layer" "thaw" "CNC_DRILL-.375-THRU" "on"
  64.              "CNC_DRILL-.375-THRU" "set" "CNC_DRILL-.375-THRU" "")
  65.     )
  66. (if                                   ; if layer CNC_DRILL-.500 does not exist
  67.    (not
  68.      (tblsearch "LAYER" "CNC_DRILL-.500-THRU")
  69.      )
  70.     (command "-layer" "make" "CNC_DRILL-.500-THRU" "color" "9" "" "")
  71.                                        ;  create layer CNC_DRILL-.375-THRU
  72.     (command "-layer" "thaw" "CNC_DRILL-.500-THRU" "on"
  73.              "CNC_DRILL-.375-THRU" "set" "CNC_DRILL-.500-THRU" "")
  74.     )
  75. (if                                   ; if layer CNC_PLY-DOWEL does not exist
  76.    (not
  77.      (tblsearch "LAYER" "CNC_PLY-DOWEL")
  78.      )
  79.     (command "-layer" "make" "CNC_PLY-DOWEL" "color" "211" "" "")
  80.                                        ;  create layer CNC_DRILL-DOWEL
  81.     (command "-layer" "thaw" "CNC_PLY-DOWEL" "on" "CNC_PLY-DOWEL" "set"
  82.              "CNC_PLY-DOWEL" "")
  83.     )
  84. (if                                   ; if layer CNC_PLY-T-NUT-RECESS does not exist
  85.    (not
  86.      (tblsearch "LAYER" "CNC_PLY-T-NUT-RECESS")
  87.      )
  88.     (command "-layer" "make" "CNC_PLY-T-NUT-RECESS" "color" "YELLOW" ""
  89.              "")
  90.                                        ;  create layer CNC_PLY-T-NUT-RECESS
  91.     (command "-layer" "thaw" "CNC_PLY-T-NUT-RECESS" "on"
  92.              "CNC_PLY-T-NUT-RECESS" "set" "CNC_PLY-T-NUT-RECESS" "")
  93.     )
  94. (if                                   ; if layer CNC_PLY-GROMMET does not exist
  95.    (not
  96.      (tblsearch "LAYER" "CNC_PLY-GROMMET")
  97.      )
  98.     (command "-layer" "make" "CNC_PLY-GROMMET" "color" "40" "" "")
  99.                                        ;  create layer CNC_PLY-GROMMET
  100.     (command "-layer" "thaw" "CNC_PLY-GROMMET" "on" "CNC_PLY-GROMMET"
  101.              "set" "CNC_PLY-GROMMET" "")
  102.     )
  103. (if                                   ; if layer CNC_PLY-SLOT does not exist
  104.    (not
  105.      (tblsearch "LAYER" "CNC_PLY-SLOT")
  106.      )
  107.     (command "-layer" "make" "CNC_PLY-SLOT" "color" "RED" "" "")
  108.                                        ;  create layer CNC_PLY-SLOT
  109.     (command "-layer" "thaw" "CNC_PLY-SLOT" "on" "CNC_PLY-SLOT" "set"
  110.              "CNC_PLY-SLOT" "")
  111.     )
  112. ;; -----------------------------------------------------------------------------
  113. ;; |                               MAIN PROGRAM                                |
  114. ;; |                                                                           |
  115. ;; -----------------------------------------------------------------------------
  116. (prompt "\nSelect Entities to be Changed : ")
  117. (if (setq ss-circle
  118.             (ssget
  119.               '(
  120.                 (-4 . "<OR")
  121.                 (0 . "CIRCLE")
  122.                 (-4 . "<AND")
  123.                 (0 . "LWPOLYLINE")
  124.                 (42 . 1.0)
  125.                 (-4 . "AND>")
  126.                 (-4 . "OR>")
  127.                 )
  128.               )
  129.            )
  130.    (progn
  131.      (setq i -1)
  132.      (while (setq ent (ssname ss-circle (setq i (1+ i))))
  133.        (setq enlist (entget ent))
  134.        (if (eq (cdr (assoc 0 enlist)) "LWPOLYLINE")
  135.          (command "change" ent "" "property" "layer" "CNC_PLY-SLOT" "")
  136.          (cond
  137.            ((equal (setq cr (cdr (assoc 40 enlist)))
  138.                    0.0625
  139.                    0.00001)            ;1/8" PILOT  DRILL
  140.             (command "change" ent "" "property" "layer"
  141.                      "cnc_drill-pilot" "")
  142.             )
  143.            ((equal cr 0.09375 0.00001) ;3/16" DRILL
  144.             (command "change" ent "" "property" "layer"
  145.                      "cnc_drill-.1875-thru" "")
  146.             )
  147.            ((equal cr 0.125 0.00001)   ;1/4" DRILL BLIND
  148.             (command "change" ent "" "property" "layer"
  149.                      "CNc_DRILL-.250-PEG" "")
  150.             )
  151.            ((equal cr 0.15625 0.00001)
  152.                                        ;((= cr 0.15625) ;5/16" DRILL
  153.             (command "change" ent "" "property" "layer"
  154.                      "cnc_drill-.3125-thru" "")
  155.             )
  156.            ((equal cr 0.1875 0.00001)  ;3/8" DRILL
  157.             (command "change" ent "" "property" "layer"
  158.                      "cnc_drill-.375-thru" "")
  159.             )
  160.            ((equal cr 0.25 0.00001)    ;1/2" DRILL
  161.             (command "change" ent "" "property" "layer"
  162.                      "cnc_DRILL-.500-THRU" "")
  163.             )
  164.            ((equal cr 0.3750 0.00001)  ;3/4" DOWEL PINS
  165.             (command "change" ent "" "property" "layer" "CNC_PLY-DOWEL"
  166.                      "")
  167.             )
  168.            ((equal cr 0.453125 0.000001) ;29/32" HOLE LOCK IN DOOR
  169.             (command "change" ent "" "property" "layer" "CNC_PLY-DOWEL"
  170.                      "")
  171.             )
  172.            ((equal cr 0.4375 0.00001)  ;7/8" RECESS FOR T-NUT
  173.             (command "change" ent "" "property" "layer"
  174.                      "CNC_PLY-T-NUT-RECESS" "")
  175.             )
  176.            ((equal cr 0.500 0.00001)   ;1.0" RECESS FOR T-NUT
  177.             (command "change" ent "" "property" "layer"
  178.                      "CNC_PLY-T-NUT-RECESS" "color" "YELLOW" "")
  179.             )
  180.            ((equal cr 0.52343750 0.00001)
  181.                                        ; 1 3/64" HOLE PUSH LOCK IN DOOR
  182.             (command "change" ent "" "property" "layer" "CNC_PLY-DOWEL"
  183.                      "")
  184.             )
  185.            ((and (>= cr 0.5625) (<= cr 2.5)) ;GROMMETS
  186.             (command "change" ent "" "property" "layer"
  187.                      "CNC_PLY-GROMMET" "")
  188.             )
  189.            )                           ;foreach
  190.          )
  191.        (setvar "cmdecho" cm)
  192.        (setvar "clayer" cl)
  193.        (princ)
  194.        )
  195.      )
  196.    )
  197. (princ)
  198. )
  199. (princ "\nType C2L to put circles on standard CNC layers.")
  200. (princ)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 19:59:46 | 显示全部楼层
塔瓦,先生,你太棒了。
 
你让它看起来很简单。。。
 
非常感谢你。
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 20:00:43 | 显示全部楼层
 
很好,不客气。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:03:08 | 显示全部楼层
回复

使用道具 举报

16

主题

99

帖子

83

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 20:07:38 | 显示全部楼层
Sorry Tharwat, there is a bit of error handling at the beginning I didn't include.
 
 

[code]; -----------------------------------------------------------------------------                                ; |                               ERROR HANDLING                              |                                ; |                                                                           |                                ; -----------------------------------------------------------------------------(defun trap (errmsg) (if   (and errmsg (null   (member errmsg '("Function cancelled" "quit / exit abort")) )   )    (princ (strcat "\nError: " errmsg)) ) (setq errmsg " ") (princ)                                ;(command "undo" "end") (setvar "clayer" cl) (setvar "cmdecho" cecho) (setq *error* *old_error*) (prompt "\nResetting system settings..."))(defun C:C2L (/        a1 a2 n        index b1 b2 b3 d1 d2 cecho ss-circle ss-pline ent lst      enlist cr        i cl     )                                ;(command "undo" "be") (setq *old_error* *error*) (setq *error* trap)                                ;(command "undo" "be") (setq cl (getvar "clayer"))                                ; -----------------------------------------------------------------------------                                ; |                               CREATE LAYERS                               |                                ; |                                                                           |                                ; ----------------------------------------------------------------------------- (if                                        ; if layer CNC_DRILL-PILOT does not exist   (not     (tblsearch "LAYER" "CNC_DRILL-PILOT")   )    (command "-layer" "make" "CNC_DRILL-PILOT" "color" "9" "" ""     )                                ;create layer CNC_DRILL-PILOT    (command "-layer" "thaw" "CNC_DRILL-PILOT" "on"      "CNC_DRILL-PILOT" "set" "CNC_DRILL-PILOT" ""     ) ) (if                                        ; if layer CNC_DRILL-.1875 does not exist   (not     (tblsearch "LAYER" "CNC_DRILL-.1875-THRU")   )    (command "-layer" "make" "CNC_DRILL-.1875-THRU"        "color"        "CYAN"      "" ""     )                                ;  create layer CNC_DRILL-.1875-THRU    (command "-layer" "thaw" "CNC_DRILL-.1875-THRU"        "on"      "CNC_DRILL-.1875-THRU"        "set" "CNC_DRILL-.1875-THRU"      ""     ) ) (if                                        ; if layer CNC_DRILL-.250 does not exist   (not     (tblsearch "LAYER" "CNC_DRILL-.250-PEG")   )    (command "-layer" "make" "CNC_DRILL-.250-PEG" "color" "RED" ""      ""     )                                ;  create layer CNC_DRILL-.250-PEG    (command "-layer" "thaw" "CNC_DRILL-.250-PEG" "on"      "CNC_DRILL-.250-PEG" "set" "CNC_DRILL-.250-PEG" ""     ) ) (if                                        ; if layer CNC_DRILL-.3125 does not exist   (not     (tblsearch "LAYER" "CNC_DRILL-.3125-THRU")   )    (command "-layer" "make" "CNC_DRILL-.3125-THRU"        "color"        "GREEN"      "" ""     )                                ;  create layer CNC_DRILL-.3125-THRU    (command "-layer" "thaw" "CNC_DRILL-.3125-THRU"        "on"      "CNC_DRILL-.3125-THRU"        "set" "CNC_DRILL-.3125-THRU"      ""     ) ) (if                                        ; if layer CNC_DRILL-.375 does not exist   (not     (tblsearch "LAYER" "CNC_DRILL-.375-THRU")   )    (command "-layer" "make" "CNC_DRILL-.375-THRU" "color" "MAGENTA"      "" ""     )                                ;  create layer CNC_DRILL-.375-THRU    (command "-layer" "thaw" "CNC_DRILL-.375-THRU" "on"      "CNC_DRILL-.375-THRU" "set" "CNC_DRILL-.375-THRU" ""     ) ) (if                                        ; if layer CNC_DRILL-.500 does not exist   (not     (tblsearch "LAYER" "CNC_DRILL-.500-THRU")   )    (command "-layer" "make" "CNC_DRILL-.500-THRU" "color" "9" "" ""     )                                ;  create layer CNC_DRILL-.375-THRU    (command "-layer" "thaw" "CNC_DRILL-.500-THRU" "on"      "CNC_DRILL-.375-THRU" "set" "CNC_DRILL-.500-THRU" ""     ) ) (if                                        ; if layer CNC_PLY-DOWEL does not exist   (not     (tblsearch "LAYER" "CNC_PLY-DOWEL")   )    (command "-layer" "make" "CNC_PLY-DOWEL" "color" "211" "" ""     )                                ;  create layer CNC_DRILL-DOWEL    (command "-layer" "thaw" "CNC_PLY-DOWEL" "on" "CNC_PLY-DOWEL"      "set" "CNC_PLY-DOWEL" ""     )                                 ) (if                                        ; if layer CNC_PLY-T-NUT-RECESS does not exist   (not     (tblsearch "LAYER" "CNC_PLY-T-NUT-RECESS")   )    (command "-layer" "make" "CNC_PLY-T-NUT-RECESS"        "color"        "YELLOW" "" ""                   )                                ;  create layer CNC_PLY-T-NUT-RECESS    (command "-layer" "thaw" "CNC_PLY-T-NUT-RECESS"        "on"      "CNC_PLY-T-NUT-RECESS"        "set" "CNC_PLY-T-NUT-RECESS"      ""     )                         )                                         (if                                        ; if layer CNC_PLY-GROMMET does not exist   (not     (tblsearch "LAYER" "CNC_PLY-GROMMET")   )    (command "-layer" "make" "CNC_PLY-GROMMET"        "color"        "40" "" ""                   )                                ;  create layer CNC_PLY-GROMMET    (command "-layer" "thaw" "CNC_PLY-GROMMET"        "on"      "CNC_PLY-GROMMET"        "set" "CNC_PLY-GROMMET"      ""     ) )(if                                        ; if layer CNC_PLY-SLOT does not exist   (not     (tblsearch "LAYER" "CNC_PLY-SLOT")   )    (command "-layer" "make" "CNC_PLY-SLOT"        "color"        "RED" "" ""                   )                                ;  create layer CNC_PLY-SLOT    (command "-layer" "thaw" "CNC_PLY-SLOT"        "on"      "CNC_PLY-SLOT"        "set" "CNC_PLY-SLOT"      ""     ) )                                 ; -----------------------------------------------------------------------------                                ; |                               MAIN PROGRAM                                |                                ; |                                                                           |                                ; ----------------------------------------------------------------------------- (setq cecho (getvar "cmdecho")) (prompt "\nSelect Entities to be Changed : ") (command "setvar" "cmdecho" "0") (setq ss-circle     (ssget      '(   (-4 . "")                  )     )  )                    (setq index 0)                        ;(repeat n (setq i -1) (while (setq ent (ssname ss-circle (setq i (1+ i))))   (setq lst (cons ent lst)) ) (reverse lst) (foreach ent lst   (setq enlist (entget ent))   (setq cr (cdr (assoc 40 enlist)))   (setq bulge (cdr (assoc 42 enlist)))   (cond     ((equal cr 0.0625 0.00001)        ;1/8" PILOT  DRILL      (command        "change" ent ""        "property" "layer" "cnc_drill-pilot"        ""       )     )     ((equal cr 0.09375 0.00001)        ;3/16" DRILL      (command        "change" ent ""        "property" "layer"        "cnc_drill-.1875-thru" ""       )     )     ((equal cr 0.125 0.00001)                ;1/4" DRILL BLIND      (command        "change" ent ""        "property" "layer"        "CNc_DRILL-.250-PEG"        ""       )     )     ((equal cr 0.15625 0.00001)                                ;((= cr 0.15625) ;5/16" DRILL      (command        "change" ent ""        "property" "layer"        "cnc_drill-.3125-thru" ""       )     )     ((equal cr 0.1875 0.00001)        ;3/8" DRILL      (command        "change" ent ""        "property" "layer"        "cnc_drill-.375-thru" ""       )     )     ((equal cr 0.25 0.00001)                ;1/2" DRILL      (command        "change" ent ""        "property" "layer"        "cnc_DRILL-.500-THRU" ""       )     )     ((equal cr 0.3750 0.00001)        ;3/4" DOWEL PINS      (command        "change" ent ""        "property" "layer" "CNC_PLY-DOWEL" ""       )     )     ((equal cr 0.453125 0.000001)        ;29/32" HOLE LOCK IN DOOR      (command        "change" ent ""        "property" "layer" "CNC_PLY-DOWEL" ""       )     )     ((equal cr 0.4375 0.00001)        ;7/8" RECESS FOR T-NUT      (command        "change" ent ""        "property" "layer"        "CNC_PLY-T-NUT-RECESS" ""       )     )     ((equal cr 0.500 0.00001)                ;1.0" RECESS FOR T-NUT      (command        "change" ent ""        "property" "layer"        "CNC_PLY-T-NUT-RECESS" "color" "YELLOW" ""       )     )     ((equal cr 0.52343750 0.00001)        ; 1 3/64" HOLE PUSH LOCK IN DOOR      (command        "change" ent ""        "property" "layer" "CNC_PLY-DOWEL" ""       )     )     ((and (>= cr 0.5625) (
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:11:31 | 显示全部楼层
 
Forget it , I just added the simple required one .
 
Did not you try it yet ? I also modified the cmdecho system variable to the correct value.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 00:46 , Processed in 0.620466 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表