找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 999|回复: 5

[VBA程序]:用什么方法把一个图层中的各个图元分离开来

[复制链接]
发表于 2003-9-18 09:55:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我在用VBA进行cad的二次开发,我想对一个有特殊意义的图层中的各个图元分别处理,有什么方法把这些图元分离开吗。我是新手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 70个

财富等级: 招财进宝

发表于 2003-9-18 13:11:28 | 显示全部楼层
什么意思?是放到不同图层吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-9-18 13:59:36 | 显示全部楼层
问题本身有些绕
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-9-18 14:41:17 | 显示全部楼层
我的问题是这样的:我在一个叫“曲线”的图层里绘制了许多曲线,另外有一条直线在0层里,现在我想求出这条直线和那些曲线的交点,并把交点坐标放在一个数组里。由于求交点的函数intersectWith每次只能求两个物体的交点,所以我想用循环语句分别求每条曲线和直线的交点,这样就涉及到了把曲线从图层中读出来的问题。就像做了一个选择集,然后用item属性对选择集里的对象分别进行处理一样。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-9-19 08:58:10 | 显示全部楼层
用过滤器的方法构造一个选择集,就可以达到你的目的(用VL比较方便)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-9-21 14:05:57 | 显示全部楼层
使用过滤机制,构造层的选择集。

  1.   [FONT=courier new]
  2. Sub Example_Select()
  3.    
  4.     ' 创建选择集
  5.     Dim ssetObj As AcadSelectionSet
  6.    
  7.     On Error Resume Next
  8.     Set ssetObj = ThisDrawing.SelectionSets("SSET")
  9.     If Err Then
  10.         Err.Clear
  11.         Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
  12.     End If
  13.     ssetObj.Clear
  14.    
  15.     '构造过滤机制
  16.     Dim groupCode(0) As Integer
  17.     Dim dataCode(0) As Variant
  18.     groupCode(0) = 8 '层组码
  19.     dataCode(0) = "曲线" '层名

  20.     ssetObj.Select acSelectionSetAll, , , groupCode, dataCode
  21.    
  22.     '更好的方法是只选中与直线外框相交或者位于其中的对象
  23.    
  24.     '获取直线的外框
  25.     Dim corner1 As Variant
  26.     Dim corner2 As Variant
  27.     'Dim lineObj As AcadLine
  28.     lineObj.GetBoundingBox corner1, corner2 'lineObj为位于0层的直线
  29.    
  30.     ssetObj.Select acSelectionSetCrossing, corner1, corner2, groupCode, dataCode
  31.    
  32. End Sub
  33.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-29 13:21 , Processed in 0.286759 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表