Lt Dan's l 发表于 2022-7-6 09:01:28

向activeselectionset添加项

我做错了什么?
 

(setq test1
(vlax-safearray-fill
   (vlax-make-safearray vlax-VBobject (cons 0 0))
   (list (vlax-ename->vla-object (car (entsel))))
)
)
(setq test2
(vlax-make-variant test1)
)

;;both of these will not add an item to the activeselectionset

;test1
(vla-additems (vla-get-activeselectionset *acdoc*) test1)

;test2
(vla-additems (vla-get-activeselectionset *acdoc*) test2)

BlackBox 发表于 2022-7-6 09:14:27

除了个人挑战之外,我可以问一下为什么要做这些额外的工作吗?
 
诚然,我在安全阵列、变体等方面不是很好——这就是为什么我喜欢使用vlax-3d-point!英雄联盟
 
无论如何,我这样问是因为只使用SSADD似乎更简单,例如:
 
使用最后一行创建初始选择集(本例中为全局变量“ss”),然后多次运行E2SS。
 
编辑:FOO只需将(当前)选择集中的项目变成红色,撤消以再次运行E2SS,然后查看更改。

Lee Mac 发表于 2022-7-6 09:24:37

这对我来说很有用:
 
(defun c:test ( / acdoc acsel acutl obj )

   (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
         acutl (vla-get-utility acdoc)
   )
   (if (ssget)
       (progn
         (setq acsel (vla-get-activeselectionset acdoc))
         (princ (strcat "\nSelSet Count: " (itoa (vla-get-count acsel))))

         (while
               (not
                   (vl-catch-all-error-p
                     (vl-catch-all-apply 'vla-getentity
                           (list acutl 'obj 'pnt "\nSelect Object to Add: ")
                     )
                   )
               )
               (vla-additems acsel
                   (vlax-make-variant
                     (vlax-safearray-fill
                           (vlax-make-safearray vlax-vbobject '(0 . 0)) (list obj)
                     )
                   )
               )
               (princ (strcat "\nSelSet Count: " (itoa (vla-get-count acsel))))
         )
       )
   )
   (princ)
)
 
注意,可以使用entsel/vlax-ename->vla-object,但我想把事情搞混

Lt Dan's l 发表于 2022-7-6 09:31:02

我碰巧注意到方法部分中的additem,当时
(vlax-dump-object (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Activeselectionset) t)
我只是想试试。当我找不到工作的时候,我真的很烦。

BlackBox 发表于 2022-7-6 09:36:57

 
了不起的斯科特!他对我们Lisp程序!?!?

BlackBox 发表于 2022-7-6 09:47:29

 
酷李-我无法得到它(我的版本)的工作,当我把一个之前张贴的ssadd位。但我确实注意到了这些选项,并在vlax vbobject上暂停了。很高兴看到一个你正在努力解决的问题的工作示例。这确实有助于学习过程。

Lt Dan's l 发表于 2022-7-6 10:00:38

4
只是找点乐子

Lee Mac 发表于 2022-7-6 10:09:36

 
1+乐意帮忙
页: [1]
查看完整版本: 向activeselectionset添加项