明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xiaxiang

[资源] 动态阵列(强烈推荐)

  [复制链接]
发表于 2022-1-31 17:37:24 | 显示全部楼层
11年前的 程序,现在看  还是那么优秀的!
发表于 2022-3-19 21:09:40 | 显示全部楼层
感谢感谢感谢感谢感谢感谢感谢感谢
发表于 2022-5-23 10:38:12 | 显示全部楼层
NB,谢谢分享
发表于 2022-5-23 11:45:20 | 显示全部楼层
太优秀了,谢谢分享。
发表于 2022-5-23 14:26:15 | 显示全部楼层
  1. ;|                                                        ;;
  2.         DARRAY FUNCTION                                        ;;
  3.         By: andrea Andreetti 2009-01-03                        ;;
  4.                                                         ;;
  5.         Update 1.1 By A.A. 2009-01-03                        ;;
  6.         OrthoMode Added                                        ;;
  7.                                                         ;;
  8.         Update 1.2 By A.A. 2009-01-04                        ;;
  9.         Allow User to enter an Angle Value                ;;
  10.                                                         ;;
  11.         Update 1.3 By A.A. 2009-01-04                        ;;
  12.         Allow Polar array                                ;;
  13.         not abort anymore when anykey is pressed        ;;
  14.                                                         ;;
  15.         Update 1.4 By A.A. 2009-01-23                        ;;
  16.         New Features:                                        ;;
  17.          - Rectangular Polar Arc                        ;;
  18.          - Allow to change Qty Dinamicly                ;;
  19.          - Allow to change Angle Dynamicly                ;;
  20.          - Allow to align Object By pressing Shift        ;;
  21.          - New Darray Menu                                ;;
  22.                                                         |;
  23. (defun c:Drr        (/ sent        Dbasepoint DtoPoint #Copy SSlist P0 ang        dist
  24.                  entcopy input Operation orthm Dmess1 Dmess2 Dmess3)

  25. (if (vl-string-search "FR" (strcase (ver)))
  26. (setq Dmess1 "\n拷贝数目: "      
  27.       Dmess2 "\n点阵列专项..."
  28.       Dmess3 "\nApp u 叶形 (A)角度/(Q)动态数量: "
  29.       Dmess4 "\n(L)线性的/(R)长方形的/(P)极向坐标的/(A)曲线的: "
  30.       Dmess5 "\n点取基点..."
  31.       Dmess6 "\n直曲判断方向..."
  32.       Dmess7 "\n在X方向动态阵列数 : "
  33.       Dmess8 "\n在Y方向动态阵列数: "

  34.       MTmess1 "指针确定角度: "
  35.       MTmess2 "指针确定点: "
  36.       MTmess3 "指针确定基础点: "
  37.       MTmess4 "X方向动态数量"
  38.       MTmess5 "Y方向动态数量: "
  39.       MTmess6 "物体方向: "
  40.       MTmess7 "多个项目确定角度: "
  41.       MTmess8 "角度数目: "
  42. )
  43. (setq Dmess1 "\n拷贝阵列数: "      
  44.       Dmess2 "\n贴附点"
  45.       Dmess3 "\n按下 (A)角度/(Q)数量 : "
  46.       Dmess4 "\n(L)线性/(R)矩形/(P)极坐标/(A)曲线: "
  47.       Dmess5 "\n基点..."
  48.       Dmess6 "\n曲线方向..."
  49.       Dmess7 "\n在 X方向动态阵列数 : "
  50.       Dmess8 "\n在 Y方向动态阵列数 : "

  51.       MTmess1 "指针角度: "
  52.       MTmess2 "指针点集: "
  53.       MTmess3 "基点: "
  54.       MTmess4 "X方向数量: "
  55.       MTmess5 "Y方向数量: "
  56.       MTmess6 "物体方向: "
  57.       MTmess7 "角度项目: "
  58.       MTmess8 "角度数目: "
  59. )        
  60. )


  61. (vl-load-com)
  62. (setvar "CMDECHO" 0)
  63. (setq cecolor (getvar "CECOLOR"))  
  64.   
  65.   (defun *error* (msg)
  66. (DarrayFinishMode T)
  67. (princ (strcat "\n" msg))
  68.   )


  69. (initget "L R P A")
  70. (setq RorP (getKword Dmess4))

  71.   
  72.   (vl-cmdf "._-purge" "_B" "_{DarrayBlock}_" "_N")
  73.   (setq sent (ssget))

  74. (if (eq RorP "R")
  75.   (progn
  76.     (setq #Copy_X (getint Dmess7))
  77.     (setq #Copy_Y (getint Dmess8))
  78.    )
  79.     (setq #Copy (getint Dmess1))
  80. )
  81.   
  82.   (setq Dbasepoint (getpoint Dmess2))
  83.   

  84. (setvar "PDMODE" 34)  
  85. (setq PDitem1
  86.        (entmakex (list
  87.             '(0 . "POINT")
  88.             '(62 . 1)
  89.              (cons 10 Dbasepoint))
  90.           )
  91. )

  92.   
  93. (setq DbasePolar (getpoint Dmess5))
  94. (setq PDitem2
  95.        (entmakex (list
  96.             '(0 . "POINT")
  97.             '(62 . 114)
  98.              (cons 10 DbasePolar))
  99.           )
  100. )

  101. (if (eq RorP "A")
  102.   (progn   
  103.   (setq DbaseArcPoint (getpoint Dmess6))
  104. (setq PDitem3
  105.        (entmakex (list
  106.             '(0 . "POINT")
  107.             '(62 . 8)
  108.              (cons 10 DbaseArcPoint))
  109.           )
  110. )
  111. )
  112. )
  113.   
  114.   
  115.   (vla-StartUndoMark
  116.     (vla-get-ActiveDocument (vlax-get-ACAD-Object))
  117.   )
  118.   (vl-cmdf "._-block" "_{DarrayBlock}_" Dbasepoint sent "")
  119.   (vl-cmdf "._-insert" "_{DarrayBlock}_" Dbasepoint "" "" "")
  120.   (setq item (entlast))
  121.   (setq Bdatax (entget item))
  122.   (setq Ang50 (assoc 50 Bdatax))

  123. (setq snapA (getvar "snapang"))
  124. (setq orthm (getvar "ORTHOMODE"))

  125. (princ Dmess3)  
  126.   
  127. (DarrayWhile);_while
  128. (while
  129.   (and
  130.      (not (= (car input) 25));RIGHT CLICK
  131.      (not (= (car input) 3));LEFT CLICK
  132.      (not (and (= (car input) 2) (= (cadr input) 32)));ESCAPE
  133.      (not (and (= (car input) 2) (= (cadr input) 13)));ENTER
  134.    )
  135. (DarrayWhile)
  136. )
  137.   
  138. (redraw)
  139. (DarrayFinishMode Nil)  
  140.   
  141.   (vla-EndUndoMark
  142.     (vla-get-ActiveDocument (vlax-get-ACAD-Object))
  143.   )
  144.   (princ)
  145. )
  146.                                                 ;;
  147. ;|                                                ;;
  148.         DYNARRAY FUNCTION                        ;;
  149.                                                 |;






  150. ;|                                                ;;
  151.         WHILE FUNCTION                                ;;
  152.                                                 |;
  153.                                                 ;;
  154. (defun DarrayWhile ()
  155.   (while (or
  156.            (and (setq input (grread t 4 4))(= (car input) 5))
  157.            (and (= (car input) 2) (= (cadr input) 15))        ; F8 Orthomode
  158.            (and (= (car input) 2) (= (cadr input) 97))        ;a
  159.            (and (= (car input) 2) (= (cadr input) 65))        ;A
  160.            (and (= (car input) 2) (= (cadr input) 113))        ;q
  161.            (and (= (car input) 2) (= (cadr input) 81))        ;Q
  162.            
  163.          )

  164. (if (= (car input) 5) (setq DtoPoint (cadr input)))


  165.    
  166. (if (and (= (car input) 2)(= (cadr input) 15))
  167.   (setq Operation "ORTHO")
  168. )

  169. (if (or
  170.       (and (= (car input) 2) (= (cadr input) 97))        ;a
  171.       (and (= (car input) 2) (= (cadr input) 65))        ;A
  172.     )  
  173. (setq Operation "ANGLE")
  174. )


  175. (if (or
  176.       (and (= (car input) 2) (= (cadr input) 113))        ;q
  177.       (and (= (car input) 2) (= (cadr input) 81))        ;Q
  178.     )  
  179. (setq Operation "QTY")
  180. )

  181. (if (eq Operation "ANGLE")
  182.   (progn
  183.     (setq snapA (dtr (getint "\n特定角度 :")))
  184.     (setq orthm 1)
  185.     (setq Operation nil)
  186.     (princ Dmess3)
  187.   )
  188. )
  189.    
  190. (if (eq Operation "QTY")
  191.   (progn
  192.     (setq #Copy (getint "\n数量数组. :"))
  193.     (if (= #Copy 0)(setq #Copy 1))   
  194.     (setq Operation nil)
  195.     (princ Dmess3)
  196.   )
  197. )
  198.    
  199.    
  200. ;;SWITCH ORTHOMODE                ;;
  201.                                 ;;
  202. (if (eq Operation "ORTHO")
  203.   (progn
  204.     (if (eq orthm 1)
  205.       (progn (setvar "ORTHOMODE" 0) (setq orthm 0))
  206.       (progn (setvar "ORTHOMODE" 1) (setq orthm 1))
  207.          )
  208.     (setq Operation nil)
  209.   )
  210. )
  211. (if (eq orthM 1)
  212.   (DarrayOrthoMode1)
  213. )      
  214.                                 ;;
  215. ;;SWITCH ORTHOMODE                ;;

  216.    
  217. ;;RECTANGULAR
  218. (if (eq RorP "L")
  219.    (progn   
  220.     (setq ang (angle DbasePolar DtoPoint))
  221.     (setq dist (/ (distance DbasePolar DtoPoint) (1- #Copy)))
  222.     (redraw)   
  223.     (if        SSlist
  224.       (progn
  225.         (foreach n SSlist
  226.           (vl-cmdf "._erase" n "")
  227.           (princ)
  228.         )
  229.         (setq SSlist nil)
  230.       )
  231.     )
  232.     (setq P0 DbasePoint)
  233.     (setq FC DbasePolar)
  234.     (DAMTEXT 254 DtoPoint (rtd ang) angP DbasePolar #Copy (acet-sys-shift-down))
  235.     (repeat (1- #Copy)
  236.       (setq P0 (polar P0 ang dist))
  237.       (setq FC (polar FC ang dist))
  238.       (DynArray_go P0)
  239.       (princ)
  240.     )
  241.     )
  242. )


  243.    
  244. ;;Polar
  245. (if (eq RorP "P")
  246.    (progn
  247.     (setq ang  (angle DbasePolar DtoPoint))
  248.     (setq dist (distance DbasePolar DtoPoint))
  249.     (redraw)
  250. (if        SSlist
  251.       (progn
  252.         (foreach n SSlist
  253.           (vl-cmdf "._erase" n "")
  254.           (princ)

  255.         )
  256.         (setq SSlist nil)
  257.       )
  258.     )
  259.    
  260. (setq angP (/ 360 #Copy))
  261. (setq PC DtoPoint)

  262. (DAMTEXT 254 DtoPoint (rtd ang) angP DbasePolar #Copy (acet-sys-shift-down))   
  263.    
  264. (repeat #Copy
  265.       (DynArray_go PC)
  266.       (setq ang (dtr (+ (rtd ang) angP)))
  267.       (setq PC (polar DbasePolar ang dist))  
  268.       (princ)
  269. )   
  270.    
  271. )
  272. )

  273. ;;ARC
  274. (if (eq RorP "A")
  275.    (progn
  276.      (if arcitem
  277.        (progn
  278.          (vl-cmdf "._erase" arcitem "")
  279.          (setq arcitem nil)
  280.        )
  281.      )
  282. (if (and
  283.       (/= (car DbaseArcPoint)(car DtoPoint))
  284.       (/= (cadr DbaseArcPoint)(cadr DtoPoint))
  285.     )
  286.   (progn
  287.      (setvar "CECOLOR" "4")
  288.      (vl-cmdf "._arc" DbasePolar DbaseArcPoint DtoPoint)     
  289.      (setq arcitem (entlast))
  290.      (setq arc10 (cdr (assoc 10 (entget arcitem))))
  291.      (setq arc40 (cdr (assoc 40 (entget arcitem))))
  292.      (setq arc50 (rtd (cdr (assoc 50 (entget arcitem)))))
  293.      (setq arc51 (rtd (cdr (assoc 51 (entget arcitem)))))   

  294.     (setq ang (dtr arc50))
  295.     (setq dist (distance arc10 DtoPoint))
  296.     (redraw)
  297.    
  298. (if SSlist
  299.       (progn
  300.         (foreach n SSlist
  301.           (vl-cmdf "._erase" n "")
  302.           (princ)
  303.         )
  304.         (setq SSlist nil)
  305.       )
  306. )


  307. (setq Tang (- arc50 arc51))
  308. (setq angP (/ Tang #Copy))
  309. (setq PC DtoPoint)
  310.    
  311. ;;;(princ (strcat "\n" (vl-princ-to-string angP)))
  312.    
  313. (if (> angP 0)
  314.   (progn
  315.    (setq Tang (- (- arc50 arc51) 360))
  316.    (setq angP (/ Tang #Copy))   
  317.   )
  318. )

  319. (DAMTEXT 254 DtoPoint (rtd ang) angP DbasePolar #Copy (acet-sys-shift-down))   
  320.    
  321. (repeat #Copy
  322.       (DynArray_go PC)
  323.       (setq ang (dtr (- (rtd ang) angP)))
  324.       (setq PC (polar arc10 ang dist))  
  325.       (princ)
  326. )   
  327.    
  328. )
  329. )
  330. )   
  331. )


  332. (if (eq RorP "R")
  333.    (progn   
  334.     (setq Xbase (list (car DtoPoint) (cadr DbasePolar) (getvar "ELEVATION")))
  335.     (setq Xang (angle DbasePolar Xbase))
  336.     (setq dist_X (/ (distance DbasePolar Xbase) (1- #Copy_X)))

  337.     (setq Ybase (list (car DbasePolar) (cadr DtoPoint) (getvar "ELEVATION")))
  338.     (setq Yang (angle DbasePolar Ybase))
  339.     (setq dist_Y (/ (distance DbasePolar Ybase) (1- #Copy_Y)))

  340.     (setq ang (angle DbasePolar DtoPoint))
  341.    
  342.     (redraw)   
  343.     (if        SSlist
  344.       (progn
  345.         (foreach n SSlist
  346.           (vl-cmdf "._erase" n "")
  347.           (princ)
  348.         )
  349.         (setq SSlist nil)
  350.       )
  351.     )
  352.     (setq P0 DbasePolar)
  353.     (setq FC (polar DbasePolar (angle DbasePolar DtoPoint)(/ (distance DbasePolar DtoPoint) 2.0)))
  354.     (setq PQ DbasePolar)
  355.     (DAMTEXT 254 DtoPoint (rtd ang) #Copy_X DbasePolar #Copy_Y (acet-sys-shift-down))
  356.    (repeat #Copy_Y
  357.     (repeat #Copy_X
  358.       (DynArray_go P0)
  359.       (setq P0 (polar P0 Xang dist_X))
  360.       (princ)
  361.     )  
  362.    (setq P0 (polar PQ Yang dist_Y))
  363.    (setq PQ P0)
  364.      )
  365.    
  366.     )
  367. )
  368. )
  369. )
  370.                                                 ;;
  371. ;|                                                ;;
  372.         WHILE FUNCTION                                ;;
  373.                                                 |;






  374. ;;;;|                                                ;;
  375. ;;;        DYNARRAY COPY                                ;;
  376. ;;;                                                |;
  377. ;;;                                                ;;
  378. (defun DynArray_go ( NP / entcopy Bent)


  379. (setq Bdatax (subst (cons 10 NP) (assoc 10 Bdatax) Bdatax))
  380.   
  381. (if (acet-sys-shift-down)
  382.   (progn
  383.     (if (eq RorP "R")
  384.       (progn
  385.         (setq DBC FC)
  386.         (grdraw NP FC 4 1)
  387.       )
  388.     )
  389.     (if (eq RorP "L")
  390.       (progn
  391.         (setq DBC DbasePolar)
  392.         (grdraw DbasePolar FC 4 1)
  393.       )
  394.     )
  395.     (if (eq RorP "P")
  396.       (progn
  397.         (setq DBC DbasePolar)
  398.         (grdraw Dbasepolar NP 4 1)
  399.       )
  400.     )
  401.     (if (eq RorP "A")
  402.       (progn
  403.         (setq DBC arc10)
  404.         (grdraw arc10 NP 4 1)
  405.       )
  406.     )   

  407.     (setq Bdatax (subst (cons 50 (angle NP DBC)) (assoc 50 Bdatax) Bdatax))
  408.    )
  409.   (progn
  410.   (if (eq RorP "R")
  411.         (grdraw DbasePolar NP 4 1)
  412.     )
  413.   (if (eq RorP "L")
  414.       (progn
  415.         (grdraw FC NP 4 1)
  416.         (grdraw Dbasepolar DbasePoint 4 1)
  417.         (grdraw DbasePolar FC 4 1)
  418.       )
  419.     )
  420.   (if (eq RorP "P")
  421.       (grdraw Dbasepolar NP 4 1)
  422.   )
  423.   
  424.   (if (eq RorP "A")      
  425.       (grdraw Dbasepolar NP 4 1)
  426.   )   
  427.     (setq Bdatax (subst Ang50 (assoc 50 Bdatax) Bdatax))
  428.   )
  429. )
  430.   
  431. (entmake Bdatax)
  432. (setq Bent (entlast))

  433. (setq SSlist (append SSlist (list Bent)))
  434. )
  435. ;;;                                                ;;
  436. ;;;;|                                                ;;
  437. ;;;        DYNARRAY COPY                                ;;
  438. ;;;                                                |;






  439. ;|                                                ;;
  440.         DYNARRAY ORTHOMODE                        ;;
  441.                                                 |;
  442.                                                 ;;
  443. (defun DarrayOrthoMode1 (/ distP NorthP WestP EastP SouthP)
  444.   
  445.     (setq distP (distance Dbasepolar DtoPoint))
  446.     (setq NorthP (polar Dbasepolar (+ snapA (dtr 90)) distP))
  447.     (setq WestP  (polar Dbasepolar (+ snapA (dtr 180)) distP))
  448.     (setq EastP  (polar Dbasepolar snapA distP))
  449.     (setq SouthP (polar Dbasepolar (- snapA (dtr 90)) distP))
  450.   
  451. (if (and
  452.       (< (distance DtoPoint NorthP) (distance DtoPoint WestP))
  453.       (< (distance DtoPoint NorthP) (distance DtoPoint EastP))
  454.       (< (distance DtoPoint NorthP) (distance DtoPoint SouthP))
  455.     )
  456. (setq DtoPoint NorthP)
  457. )

  458. (if (and
  459.       (< (distance DtoPoint WestP) (distance DtoPoint NorthP))
  460.       (< (distance DtoPoint WestP) (distance DtoPoint EastP))
  461.       (< (distance DtoPoint WestP) (distance DtoPoint SouthP))
  462.     )
  463. (setq DtoPoint WestP)
  464. )  

  465. (if (and
  466.       (< (distance DtoPoint EastP) (distance DtoPoint WestP))
  467.       (< (distance DtoPoint EastP) (distance DtoPoint NorthP))
  468.       (< (distance DtoPoint EastP) (distance DtoPoint SouthP))
  469.     )
  470. (setq DtoPoint EastP)
  471. )

  472. (if (and
  473.       (< (distance DtoPoint SouthP) (distance DtoPoint WestP))
  474.       (< (distance DtoPoint SouthP) (distance DtoPoint EastP))
  475.       (< (distance DtoPoint SouthP) (distance DtoPoint NorthP))
  476.     )
  477. (setq DtoPoint SouthP)
  478. )  
  479. )
  480.                                                 ;;
  481. ;|                                                ;;
  482.         DYNARRAY ORTHOMODE                        ;;
  483.                                                 |;




  484. ;;                                ;;
  485. ;;        Degree Conversion        ;;
  486. ;;                                ;;
  487.                                 ;;
  488. (defun dtr (a)
  489. (* pi (/ a 180.0))
  490. )

  491. (defun rtd (a)
  492. (/ (* a 180) pi)
  493. )
  494.                                 ;;
  495. ;;                                ;;
  496. ;;        Degree Conversion        ;;
  497. ;;                                ;;




  498. ;;(DAMTEXT 254 DtoPoint (rtd Xang) angP DbasePolar #Copy_X (acet-sys-shift-down))
  499. (defun DAMTEXT (bakgr ;background color
  500.                 coord ;cursor point
  501.                 CA ;CursorAngle
  502.                 IA ;Item Angle
  503.                 BP ;Base Ppoint
  504.                 QT ;Qty
  505.                 RV ;Reverse
  506.                 )

  507. (if RV
  508.   (setq RVT "Polar")
  509.   (setq RVT "Fix")
  510. )

  511. (if DAMTdata
  512.   (progn (vl-cmdf "._erase" DAMTdata "")
  513.          (setq DAMTdata nil)
  514.   )
  515. )



  516. ;;;      MTmess1 "Cursor Angle: "
  517.   
  518. ;;;      MTmess2 "Cursor Points: "
  519. ;;;      MTmess3 "Base Point: "
  520. ;;;      MTmess4 "Qty. X: "
  521. ;;;      MTmess5 "Qty. Y: "
  522. ;;;      MTmess6 "Object Orientation: "
  523. ;;;  
  524. ;;;      MTmess7 "Items Angle: "

  525.   
  526. (if (eq RorP "R")
  527. (setq DAMTSTRING (strcat "\\pxsm1.5,ql;{\\fArial|b0|i0|c0|p34;\\L\\O - DARRAY 菜单 -\\P\\ps*,q*;\\l\\o}"
  528.                           "{\\fArial|b0|i0|c0|p34;\\C250;"
  529.                           MTmess1 "\\C5;" (vl-princ-to-string CA) "To\C250\\P"
  530.                           MTmess2 "\\C5;" (vl-princ-to-string coord) "\\C250\\P"
  531.                           MTmess3 "\\C5;" (vl-princ-to-string BP) "\\C250\\P"
  532.                           MTmess4 "\\C5;" (vl-princ-to-string IA) "\\C250\\P"
  533.                           MTmess5 "\\C5;" (vl-princ-to-string QT) "\\C250\\P"
  534.                           MTmess6 "\\C5;" RVT "\\C250\\P}"
  535.                   )
  536. )
  537. (setq DAMTSTRING (strcat "\\pxsm1.5,ql;{\\fArial|b0|i0|c0|p34;\\L\\O - DARRAY 菜单 -\\P\\ps*,q*;\\l\\o}"
  538.                           "{\\fArial|b0|i0|c0|p34;\\C250;"
  539.                           MTmess1 "\\C5;" (vl-princ-to-string CA) "To\C250\\P"
  540.                           MTmess7 "\\C5;" (vl-princ-to-string IA) "To\C250\\P"
  541.                           MTmess2 "\\C5;" (vl-princ-to-string coord) "To\C250\\P"
  542.                           MTmess3 "\\C5;" (vl-princ-to-string BP) "\\C250\\P"
  543.                           MTmess8 "\\C5;" (vl-princ-to-string QT) "\\C250\\P"
  544.                           MTmess6 "\\C5;" RVT "\\C250\\P}"
  545.                   )
  546. )   
  547. )

  548.   
  549.   

  550.              (setq ViewSize (getvar "VIEWSIZE"))
  551.              (setq DAMTdata
  552.                     (entmakex
  553.                       (list
  554.                         (cons 0 "MTEXT")
  555.                         (cons 100 "AcDbEntity")
  556.                         (cons 100 "AcDbMText")
  557.                         (cons 1 DAMTSTRING)
  558.                         (cons 10
  559.                               (polar coord 0 (/ ViewSize 90.0))
  560.                         )
  561.                         (cons 40 (/ ViewSize 70.0))
  562.                         (cons 50 0.0)
  563.                         (cons 62 250)
  564.                         (cons 71 1)
  565.                         (cons 72 5)
  566.                         (cons 90 1)
  567.                         (cons 63 bakgr)
  568.                         (cons 45 1.2)
  569.                       )
  570.                     )
  571.              )
  572. )













  573. ;;                                ;;
  574. ;;        FinishMode                ;;
  575. ;;                                ;;
  576.                                 ;;
  577. (defun DarrayFinishMode (val)

  578. (setvar "CECOLOR" cecolor)
  579.   

  580. (if DAMTdata
  581.   (progn (vl-cmdf "._erase" DAMTdata "")
  582.          (setq DAMTdata nil)
  583.   )
  584. )


  585.   
  586. (if val
  587.   (progn
  588. (if SSlist
  589.     (progn
  590.       (foreach n SSlist
  591.         (vl-cmdf "._erase" n "")

  592.       )
  593.       (setq SSlist nil)
  594.     )
  595.   )
  596. (if item
  597.   (progn
  598. (vl-cmdf "._explode" item)
  599. (setq item nil)
  600. )
  601. )
  602. (vl-cmdf "._-purge" "_B" "_{DarrayBlock}_" "_N")
  603. )

  604. (progn  
  605.   (if SSlist
  606.     (progn
  607.       (foreach n SSlist
  608.         (vl-cmdf "._explode" n)

  609.       )
  610.       (setq SSlist nil)
  611.     )
  612.   )
  613. (if item
  614.   (progn
  615. (vl-cmdf "._explode" item)
  616. (setq item nil)
  617. )
  618. )
  619.   (vl-cmdf "._-purge" "_B" "_{DarrayBlock}_" "_N")
  620. )

  621. )


  622. (if arcitem
  623.    (progn
  624.      (vl-cmdf "._erase" arcitem "")
  625.      (setq arcitem nil)
  626.    )
  627. )
  628.   
  629.   
  630. (if PDitem1
  631.   (progn
  632.   (vl-cmdf "._erase" PDitem1 "")
  633.   (setq PDitem1 nil)
  634.   )
  635. )

  636. (if PDitem2
  637.   (progn
  638.   (vl-cmdf "._erase" PDitem2 "")  
  639.   (setq PDitem2 nil)
  640.   )
  641. )

  642. (if PDitem3
  643.   (progn
  644.   (vl-cmdf "._erase" PDitem3 "")
  645.   (setq PDitem3 nil)
  646.   )
  647. )
  648.   (redraw)
  649. )
  650.                                 ;;
  651. ;;                                ;;
  652. ;;        FinishMode                ;;
  653. ;;                                ;;
回复 支持 2 反对 0

使用道具 举报

发表于 2023-2-5 18:41:15 | 显示全部楼层
看的我眼花,好像有时不能用了
发表于 2024-2-15 22:59:49 | 显示全部楼层
有趣的阵列,赞
发表于 2024-2-18 21:37:52 | 显示全部楼层
好东西,学习学习
发表于 2024-8-21 16:56:09 | 显示全部楼层
厉害,有钱了买。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 14:38 , Processed in 0.180059 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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