也许为了其他人的利益,您可以这样在VL中完全获得相同的选择集:
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] [color=black]c:test[/color]
- [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b]
- _SafearrayVariant
- _GetUniqueKey
- SelSet
- SelSets
- [b][color=RED])[/color][/b]
-
- [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
- [i][color=#990099];; © Lee Mac 2010[/color][/i]
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] _SafearrayVariant [b][color=RED]([/color][/b] datatype data [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-variant[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b] datatype [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]1-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] data[b][color=RED]))))[/color][/b]
- data
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] _GetUniqueKey [b][color=RED]([/color][/b] collection seed [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] i [b][color=BLUE]/[/color][/b] key [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-error-p[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vla-item[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] collection
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] key
- [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] seed
- [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED]))[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- key
- [b][color=RED])[/color][/b]
- [b][color=#009900]0[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vla-SelectonScreen[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] SelSet
- [b][color=RED]([/color][/b][b][color=BLUE]vla-Add[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] SelSets
- [b][color=RED]([/color][/b][b][color=BLUE]vla-get-SelectionSets[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b]_GetUniqueKey SelSets [b][color=#a52a2a]"SelSet"[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b]_SafearrayVariant [b][color=BLUE]vlax-vbinteger[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b][b][color=RED]))[/color][/b]
- [b][color=RED]([/color][/b]_SafearrayVariant [b][color=BLUE]vlax-vbvariant[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#a52a2a]"LINE"[/color][/b][b][color=RED]))[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Count[/color][/b] SelSet[b][color=RED]))[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] o SelSet
- [b][color=RED]([/color][/b][b][color=BLUE]print[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-length[/color][/b] o[b][color=RED]))[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] SelSet[b][color=RED])[/color][/b]
- [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
- [b][color=RED])[/color][/b]
或所有AutoLISP。。。
- (defun c:Test (/ ss)
- (if (setq ss (ssget '((0 . "LINE"))))
- (progn
- (vlax-for x (setq ss (vla-get-activeselectionset
- (vla-get-activedocument (vlax-get-acad-object))
- )
- )
- (print (vla-get-length x))
- )
- (vla-delete ss)
- )
- )
- (princ)
- )
|