zhumb 发表于 2005-4-19 20:32:00

如何取得Offset后的对象?

执行line1=line2.offset(100)后,


line1是空的,这是为什么?


如何取得偏移后的对象?

cobalt 发表于 2005-4-19 21:27:00

首先,我觉得你地这条语句就有问题,Line是对象,赋值应该用Set。另外,我觉得一个很好的方法就是使用ObjectID来取得对象:<BR>dim ObjLine as acadLine,ObjId as Long<BR>dim ObjLineOffset as acadLine<BR>objId=objLine.ObjectID<BR>.....................<BR>'执行平移动操作<BR>.....................<BR>set ObjLineOffset=thisdrawing.ObjectIdToObject(objId)<BR>

ljpnb 发表于 2005-4-19 22:20:00

可能是line1的类型定义错了,参照帮助文件中,dim line1 as Variant ,不知道1楼是不是一样的。例如:


Sub test()<BR>Dim lineobj As AcadLine<BR>Dim line1obj As Variant


ThisDrawing.Utility.GetEntity lineobj, point, "select a line:"<BR>line1obj = lineobj.Offset(100#)<BR>line1obj(0).Layer = "hatch"


End Sub

alin 发表于 2005-4-19 22:27:00

你的语法没错,返回值不是LINE,而是VARIANT,应该是<FONT face=新宋体>array of objects</FONT>

dyheng 发表于 2005-4-21 16:28:00

执行line1=line2.offset(100)后,offset返回的是数组变量,可以另设一变量


dim objLine3 as acadline


然后


set objline3=line1(0)


即可得到偏移后的对象
页: [1]
查看完整版本: 如何取得Offset后的对象?