johnm1011 发表于 2022-7-5 22:55:54

谢谢,我去看看!

BlackBox 发表于 2022-7-5 23:01:36

 
MgdDbg和SnoopC3D是开发人员工具,可以轻松地剔除图形或对象。NET属性,监视器。网络事件等。。。。如果您是LISP新手,在准备好进入之前,您可能无法从中受益。NET API。。。然而,欢迎您从一开始。NET API,在这种情况下,这个旧线程可能会用于入门。
 
如果是后者,您也可能有兴趣成为AUGI Professional会员,因为它附带了免费的Autodesk Developer Network(ADN)标准会员资格(为您节省1400美元)。
 
干杯

hanhphuc 发表于 2022-7-5 23:06:48

 
谢谢你BlackBox先生,
由于im不使用C3D,在正常的acad中,aecc\u坐标几何点只是一个proxy\u实体。因此,属性标高不可用。此外,我得到了这个AcDbZombieEntity
 
; IAcadEntity: AutoCAD Entity Interface
; Property values:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 00d077b4>
;   Document (RO) = #<VLA-OBJECT IAcadDocument 0912da68>
;   Handle (RO) = "19E21"
;   HasExtensionDictionary (RO) = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0d5a34f4>
;   Layer = "LEVEL"
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Material = "ByLayer"
;   ObjectID (RO) = 2112328456
;   ObjectName (RO) = "AcDbZombieEntity"
;   OwnerID (RO) = 2113953040
;   PlotStyleName = "ByLayer"
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 0d5a3040>
;   Visible = -1

 
 
只需参考vla,因为COGO是另一种方法。

BIGAL 发表于 2022-7-5 23:11:37

就像Blockbox一样,当我看到AEcc点时,我只是把高程放在不移动的地方,因为这会产生错误。这里也不确定,但除以3 v的3.0?始终确保真实计算。
 
这里是操纵几何空间点的另一个示例。
 
; rotate civ3d point example
; Rotate civ 3d points
; By BIG AL NOV 2014
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun CIV3DPTROT ( / obj oldtext oldlay xyz pt1 ht pt)
(alert "Pick CIV3D points press ESC or pick nothing to exit")
(setq ang (dtr (getreal "\nEnter Angle")))
(while (setq obj (vlax-ename->vla-object(car (entsel))))
(vlax-put-property obj "Rotation" ang )
)
) ; end defun

(CIV3DPTROT)
.5707) ;approx 90deg 45 is 0.7854
)


; Lable individual Cogo point hts as text
; By BIGAL
;
(defun CIV3DPTHT ( / obj oldtext oldlay xyz pt1 ht pt)
(alert "Pick CIV3D points press ESC or pick nothing to exit")
(while (setq obj (vlax-ename->vla-object(car (entsel))))
; vl 3d point convert to plain lisp
(setq pt1 (vlax-safearray->list (vlax-variant-value (vlax-get-property obj "Location"))))
(setq ht (rtos (nth 2 pt1) 2 3)) ; Z val
(setq pt (list (nth 0 pt1)(nth 1 pt1))) ; XY
(setq oldtext (getvar "textstyle"))
(setq oldlay (getvar "clayer"))
(command "Layer" "n" "Pointhts" "c" 1 "Pointhts" "s" "pointhts" "") ; put text on new layer
; 2.5 annotative text
(if (setvar "textstyle" "ISO2.5")
   (command "TEXT" pt 0 ht)
   (alert (strcat "The style ISO2.5 annotative does not exists" "\nplease create and run again"))
)
(setvar "textstyle" oldtext)
(setvar "clayer" oldlay)
) ; end while
(princ)
) ; end defun

(CIV3DPTHT)

BlackBox 发表于 2022-7-5 23:14:29

 
仔细观察Z坐标的类型。
 
干杯
页: 1 [2]
查看完整版本: Autolisp移动函数