明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1785|回复: 4

[求助]关于给多位线附加属性和读取属性

[复制链接]
发表于 2007-6-7 10:34:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-6-7 10:37:55 编辑

各位高手:

小弟想用VBA代码实现如下过程:

有3条多位线pline1,pline2,pline3代表3根电缆

给其附加属性:pline1    名称:电力电缆 ;截面:200;型号:XY

                         pline2    名称:信号电缆 ;截面:100;型号:XZ

                         pline3    名称:通信电缆 ;截面:500;型号:YZ

然后 有一根line的直线,判断如果line与以上的三条多位线有交点,则画出以交点为圆心半径为电缆截面的圆。

PS:属性中的名称、截面和型号都是从TextBox控件中输入的。

十分感谢!!!

发表于 2007-6-8 09:14:00 | 显示全部楼层

1)添加属性可通过 pline1.SetXData(XDataType, XData)来实现

2)求交点

  首先,你可通过line直线做为选择集的选择方式,组成与line相交的电缆的选择集

  其次,遍历选择集.用Line.IntersectWith(IntersectObject, ExtendOption) 来分别求取每个交点,并用GetXData来读取每条电缆相应的属性信息,并在指定位置画出截面图

具体的可以参照帮助文件

 楼主| 发表于 2007-6-8 11:51:00 | 显示全部楼层

十分感谢zhuxuhong兄的指点

另请问一下附加和获取XDATA是不是这样(以pline1为例)

附加属性

Dim pline1 As AcadLWPolyline
Dim DataType(0 To 3) As Integer
Dim Data(0 To 3) As Variant
TextBox1.text = "电力电缆"
TextBox2.text = "200"
TextBox3.text = "XY"
Set pline1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(arr)
DataType(0) = 1001: Data(0) = TextBox1.text
DataType(1) = 1040: Data(1) = TextBox2.Value
DataType(2) = 1000: Data(2) = TextBox3.text
pline1.SetXData DataType, Data

获取属性

(以下代码:遍历图层“电缆”中所有多位线,如果它与pt1、pt2所围成的矩形有交点,则获取它的截面属性。)

Dim plln As AcadLWPolyline

Dim asss As AcadSelectionSet
Dim ftype1(0) As Integer, fdata1(0) As Variant
Set asss = ThisDrawing.SelectionSets.Add("asss")
If Err Then Set asss = ThisDrawing.SelectionSets.Add("asss")
asss.Clear

ftype1(0) = 8: fdata1(0) = "电缆"
asss.Select acSelectionSetCrossing, pt1, fpt2, ftype1, fdata1

For Each plln In asss
With plln
plln.GetXData "", DataType(1), Data(1)
Dim cc1 As AcadCircle
Set cc1 = ThisDrawing.ModelSpace.AddCircle(point, Data(1))

End With
Next plln
asss.Delete

小弟刚入手VBA,不知道以上代码有什么问题,望各位高手多多指教。感谢!

 楼主| 发表于 2007-6-26 20:31:00 | 显示全部楼层

各位老大帮帮忙啊

发表于 2007-6-27 08:22:00 | 显示全部楼层
生成后,用CAD的扩展命令查询下不就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 01:40 , Processed in 0.173442 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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