乐筑天下

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

如何在AcDbDatabase中使用类似acedSSGet的方法选择对象?

[复制链接]

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2002-11-20 18:09:00 | 显示全部楼层 |阅读模式
各位前辈,我想打开一个指定文件名的DWG文件,将其中的部分对象作为外部块插入到当前图形。可以无法找到一种方法可以不在当前图形中选择对象。请问该怎么实现?
回复

使用道具 举报

7

主题

13

帖子

1

银币

初来乍到

Rank: 1

铜币
41
发表于 2002-11-20 18:45:00 | 显示全部楼层
先定义选择集
   ads_name  SS;
   acedSSGet(NULL,NULL,NULL,NULL,ss);
此时,你所选择的对象已经被ss标记
若是想改变选择方式(比如窗选、Crossing选等,可以通过改变前面几个参数)
回复

使用道具 举报

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2002-11-20 19:03:00 | 显示全部楼层
怎么在没有显示的图形中创建选择集并选择?
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

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

铜币
286
发表于 2002-11-21 08:31:00 | 显示全部楼层
首先,对你的需求我作这样的假设:你需要将非活动文档显示给用户,并由用户完成选择,然后切换回原来的活动文档。是不是这样?
如此,程序将牵涉ACAD多文档处理,只能在ACAD 2000以上版本及相应的ARX中实现,在此给你一个基本思路,实现的具体细节你须参考ARX帮助中的AcAp类库。
先给当前文档解除锁定,然后打开新文档。在这要注意,打开文档不是acedReadDwgFile(),这样只是打开AcDbDatebase数据库,不能完成用户交互的aced命令。要使用AcApDocManager->openDocument()。
然后,将新文档置为活动文档并锁定。此后你可以使用acedSSGet()获得选择集,完成之后,再切换回原来的文档。
估计大致如此,你先试试。
回复

使用道具 举报

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2002-11-21 12:11:00 | 显示全部楼层
谢谢你的建议,这基本能满足我的需求,其实我的程序不需要用户交互。
你提的方法我没有用过,我昨天利用浏览器对块表进行遍历,我的想法是判断对象是否在制定的区域内,如果是,将它加入到ArrayID中,最后由wblock方法创建为外部块,在插入到当前图形中。所有的过程都可以实现,就是不知道该怎么判断对象是否在制定的区域内。请问该怎么实现?
回复

使用道具 举报

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2002-11-21 19:52:00 | 显示全部楼层
不管怎么着,程序总是停在acDocManager->openDocument();的位置除非使用Ctrl+Tab切换到原来的图形,不然无法继续执行。老大,请务必说明这个思路的关键所在啦。最好是写一些代码来。太感谢了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 06:31 , Processed in 0.168917 second(s), 64 queries .

© 2020-2024 乐筑天下

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