Nellie 发表于 2022-7-6 17:14:50

二维Lisp到三维。。。

有人能解释一下我如何将附加的lisp从给出X和Y平原的值改为只给出Z平原的值吗?
 
提前谢谢。
勒马尔。lsp

ASMI 发表于 2022-7-6 18:08:57

 
查找蓝色lisp函数。新名字是LEMAZ。
 
(defun c:lemaz(/ sCol bCol nStl nBlk
                     cBlk nAtr ln1 ln2 cAtr)

(vl-load-com)

(setq aDoc(vla-get-ActiveDocument
      (vlax-get-acad-object))
   sCol(vla-get-TextStyles aDoc)
   bCol(vla-get-Blocks aDoc)
   ); end setq
(if(vl-catch-all-error-p(vl-catch-all-apply 'vla-Item
(list sCol "Simplex")))
    (progn
      (setq nStl(vla-Add sCol "Simplex"))
      (vla-put-FontFile nStl "simplex.shx")
   ); end progn
   ); end if
(if(vl-catch-all-error-p(vl-catch-all-apply 'vla-Item
(list bCol "Level Marker")))
   (progn
   (setq nBlk(vla-Add bCol
             (vlax-3D-point '(0 0 0))
             "Level Marker"))
   (setq nAtr(vla-AddAttribute nBlk 0.18 acAttributeModePreset
                     "" (vlax-3D-point '(0 0 0)) "LEVEL" "X"))
   (vla-put-Alignment nAtr acAlignmentBottomCenter)
   (vla-put-StyleName nAtr "Simplex")
   (vla-put-TextAlignmentPoint nAtr
   (vlax-3D-point '(0.0 0.1 0.0)))
   (setq ln1(vla-AddLine nBlk(vlax-3D-Point '(-0.09 0.0 0.0))
                  (vlax-3D-Point '(0.09 0.0 0.0)))
         ln2(vla-AddLine nBlk(vlax-3D-Point '(0.0 -0.09 0.0))
                  (vlax-3D-Point '(0.0 0.09 0.0))))
   (mapcar 'vla-put-Layer '(nAtr ln1 ln2) '("0" "0" "0"))
    ); end progn
   ); end if
(princ "\nPlace level marker or Right Click to Quit> ")
(while(setq cPt(getpoint))
   (setq cBlk(vla-InsertBlock(vla-get-ModelSpace aDoc)
        (vlax-3D-Point cPt)"Level Marker"
       1.0 1.0 1.0 0.0)
cAtr(car(vlax-safearray->list
       (vlax-variant-value(vla-GetAttributes cBlk)))))
   (vla-put-TextString cAtr(rtos(last cPt)2 2))
   ); end while
(princ)
); end of c:lemaz

Nellie 发表于 2022-7-6 18:32:02

非常感谢ASMI,这将为我节省大量时间。
 
抱歉耽搁了。
页: [1]
查看完整版本: 二维Lisp到三维。。。