乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 64|回复: 7

[编程交流] 向activeselectionset添加项

[复制链接]

62

主题

466

帖子

404

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
310
发表于 2022-7-6 09:01:28 | 显示全部楼层 |阅读模式
我做错了什么?
 
  1. (setq test1
  2. (vlax-safearray-fill
  3.    (vlax-make-safearray vlax-VBobject (cons 0 0))
  4.    (list (vlax-ename->vla-object (car (entsel))))
  5. )
  6. )
  7. (setq test2
  8. (vlax-make-variant test1)
  9. )
  10. ;;both of these will not add an item to the activeselectionset
  11. ;test1
  12. (vla-additems (vla-get-activeselectionset *acdoc*) test1)
  13. ;test2
  14. (vla-additems (vla-get-activeselectionset *acdoc*) test2)
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:24:37 | 显示全部楼层
这对我来说很有用:
 
  1. (defun c:test ( / acdoc acsel acutl obj )
  2.    (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
  3.          acutl (vla-get-utility acdoc)
  4.    )
  5.    (if (ssget)
  6.        (progn
  7.            (setq acsel (vla-get-activeselectionset acdoc))
  8.            (princ (strcat "\nSelSet Count: " (itoa (vla-get-count acsel))))
  9.            (while
  10.                (not
  11.                    (vl-catch-all-error-p
  12.                        (vl-catch-all-apply 'vla-getentity
  13.                            (list acutl 'obj 'pnt "\nSelect Object to Add: ")
  14.                        )
  15.                    )
  16.                )
  17.                (vla-additems acsel
  18.                    (vlax-make-variant
  19.                        (vlax-safearray-fill
  20.                            (vlax-make-safearray vlax-vbobject '(0 . 0)) (list obj)
  21.                        )
  22.                    )
  23.                )
  24.                (princ (strcat "\nSelSet Count: " (itoa (vla-get-count acsel))))
  25.            )
  26.        )
  27.    )
  28.    (princ)
  29. )

 
注意,可以使用entsel/vlax-ename->vla-object,但我想把事情搞混
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
310
发表于 2022-7-6 09:31:02 | 显示全部楼层
我碰巧注意到方法部分中的additem,当时
  1. (vlax-dump-object (vlax-get (vlax-get (vlax-get-acad-object) 'ActiveDocument) 'Activeselectionset) t)

我只是想试试。当我找不到工作的时候,我真的很烦。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:36:57 | 显示全部楼层
 
了不起的斯科特!他对我们Lisp程序!?!?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:47:29 | 显示全部楼层
 
酷李-我无法得到它(我的版本)的工作,当我把一个之前张贴的ssadd位。但我确实注意到了这些选项,并在vlax vbobject上暂停了。很高兴看到一个你正在努力解决的问题的工作示例。这确实有助于学习过程。
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
310
发表于 2022-7-6 10:00:38 | 显示全部楼层
  1. 4

只是找点乐子
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:09:36 | 显示全部楼层
 
1+乐意帮忙
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 06:32 , Processed in 0.563151 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表