MgdDbg和SnoopC3D是开发人员工具,可以轻松地剔除图形或对象。NET属性,监视器。网络事件等。。。。如果您是LISP新手,在准备好进入之前,您可能无法从中受益。NET API。。。然而,欢迎您从一开始。NET API,在这种情况下,这个旧线程可能会用于入门。
如果是后者,您也可能有兴趣成为AUGI Professional会员,因为它附带了免费的Autodesk Developer Network(ADN)标准会员资格(为您节省1400美元)。
干杯
谢谢你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是另一种方法。 就像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)
仔细观察Z坐标的类型。
干杯
页:
1
[2]