DXF代码
我想从图形中的一个对象获取DXF代码..我知道使用LISP (entget (car (entsel))可以做到这一点,但是在VBA能做到吗?
如果可能的话,您能发布一些示例代码吗?
**** Hidden Message ***** 嗨,埃迪,
我找到了这个。 其 VLAX 接口是必需的。
没有亲自尝试过,所以在这里发布作为任何有..
http://www.acadx.com/
GetAssociationList 在 Visual Basic 部分。
我认为这可能是你需要的..
克里 克里,
我看了一下你发布的链接,看起来它会帮助我....
我只是好奇...与它的视觉lisp部分...如何修改它以使用外部参照?
使用 getubentity ?
修改:
[代码0
]原文代码:
Public Function GetAssociationList(ent As AcadEntity)
Dim obj As VLAX, ent As AcadEntity, retVal
ThisDrawing.Utility.GetEntity ent, pt, "Select object: "
Set obj = New VLAX
obj.EvalLispExpression "(defun getEDD (handle / lst) (vlax-safearray-fill (vlax-make-safearray " & _
"vlax-vbvariant (cons 0 (1- (length (setq lst (entget (handent handle))))))" & _
") (mapcar '(lambda (x) (vlax-make-variant (vlax-safearray-fill" & _
"(vlax-make-safearray vlax-vbvariant '(0 . 1))(list (vlax-make-variant (car x))" & _
"(vlax-make-variant(cond ((= (type (cdr x)) 'ENAME) (vla-get-objectid" & _
"(vlax-ename->vla-object (cdr x)))) ((= (type (cdr x)) 'LIST) (vlax-safearray-fill" & _
"(vlax-make-safearray vlax-vbVariant (cons 0 (1- (length (cdr x))))) (cdr x)" & _
")) (t (cdr x)))))))) lst)))"
obj.SetLispSymbol "handle", ent.Handle
retVal = obj.EvalLispExpression("(getedd handle)")
obj.NullifySymbol "geteed", "handle"
GetAssociationList = retVal
End Function
嗨,埃迪,你实际上是想确定哪些属性。
在我看来,直接使用VBA可能更经济。..如果信息可用,我从VBA回来
我不怎么和VBA一起做复杂的工作。如果你能说得更清楚一点,这里的一个勇气可能会有所帮助。我知道Glenn对外部参照做了特别的研究 克里,
物体已经脱离了AutoPLANT管道...对象本身被称为AT_CYLINDER
我已经成功地在其中一个对象上使用了代码,但我真的需要通过外部参照访问对象。 除非我误解了,这幅画。utility . GetSubEntity object selected,pt,TransMatrix,ContextData," Select object: "
应该可以。
只要小心输入正确选择的对象..
getubentity 可以正常工作,但此部分代码无法从该对象获取信息。
[代码 2]
retval ended empty...
我有一种感觉,它可能与运行它的类模块有关。(从acadx下载)
供您参考:这来自acadx网站
注意:vlax.cls包含在附加的ZIP中 如果我没记错的话(不是一个好的记录),我记得几年前弗兰克报告说vlax在不同的AutoCAD版本中运行时没有正确运行。
您需要在vlax类构造函数中查找类似以下内容的语句:
ThisDrawing.Application.GetInterfaceObject("VL.Application.1")
并将其更改为正确的版本号,例如:
ThisDrawing.Application.GetInterfaceObject("VL.Application.15")
或
ThisDrawing.Application.GetInterfaceObject("VL.Application.16")
建议:重写构造函数,使其在任何版本的AutoCAD中运行。
/所有猜测。
编辑:修复拼写错误。 谢谢你..我会调查的.. 谢谢你澄清了格伦...我在想怎么做,为什么....非常感谢..:kewl:
页:
[1]
2