克里,
我看了一下你发布的链接,看起来它会帮助我....
我只是好奇...与它的视觉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
|