是否将项目添加到翻转参数?
当你(vlax-dump-object
(setq v (vlax-ename->vla-object (car (entsel)))
) t
)
得到的翻转参数
; IAcadBlockFlipActionEntity: IAcadBlockFlipActionEntity Interface
; Property values:
; ActionType (RO) = "Flip"
; etc.
; ObjectName (RO) = "AcDbBlockFlipActionEntity"
; etc.
; Methods supported:
; ArrayPolar (3)
; ArrayRectangular (6)
; Copy ()
; Delete ()
; GetBoundingBox (2)
; GetExtensionDictionary ()
; GetXData (3)
; Highlight (1)
; IntersectWith (2)
; Mirror (2)
; Mirror3D (3)
; Move (2)
; Rotate (2)
; Rotate3D (3)
; ScaleEntity (2)
; SelectionSet ()
; SetSelectionSet (1)
; SetXData (2)
; TransformBy (1)
; Update ()
但是如果你尝试使用
(vla选择集v)
或
(vlax调用v’SelectionSet)
你会得到
; 错误:无函数定义:VLA-SELECTIONSET
如何在不使用命令调用的情况下将对象添加到flip参数? 我想出来了。
注意:使用编辑动态块(在块编辑器中)。
(defun c:test ( / ss->lst action ss )
(vl-load-com)
(defun ss->lst ( ss flag / id lst )
(if (eq 'PICKSET (type ss))
(repeat (setq id (sslength ss))
(
(lambda ( name )
(setq lst
(cons
(if flag (vlax-ename->vla-object name)
name
)lst
)
)
)(ssname ss (setq id (1- id)))
)
)
)
)
(if
(and (or (eq 1 (getvar 'blockeditor))(prompt "\n**Must be in block editor to use!**"))
(setq action (car (entsel "\nSelect an Action Entity: ")))
(setq action (vlax-ename->vla-object action))
(setq ss (ss->lst (ssget) t))
)
(
(lambda ( group )
(vlax-invoke-method action 'SetSelectionSet
(vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray vlax-vbobject
(cons 0 (1- (length group)))
) group
)
)
)
)
(append
(vlax-safearray->list
(vlax-variant-value
(vlax-invoke-method action 'SelectionSet)
)
) ss
)
)
) (princ)
)
页:
[1]