为什么cad对象的objectid会不一样
本帖最后由 作者 于 2005-3-2 15:53:21 编辑 <br /><br /> codeprivate sub drawLineAandSaveObjid()dim CurrentNzdBlock As AcadBlock '当前块
Dim layerObj As AcadLayer<BR> <BR> Dim lineobj As AcadLine<BR> Dim pnt1(0 To 2) As Double, pnt2(0 To 2) As Double<BR> Dim intersectVarient As Variant<BR> Dim movetopnt(0 To 2) As Double<BR>
‘<FONT color=#f76809>下面代码不能在制定位置插入线,所以需要从原点移动过来,为什么?</FONT>
Set lineobj = CurrentNzdBlock.AddLine(pnt1, pnt2)<BR> <BR> intersectVarient = GetIntersectPoint(lineobj, nzdPolyLineObj)<BR> 'move to proper position<BR> movetopnt(0) = intersectVarient(0): movetopnt(1) = intersectVarient(1): movetopnt(2) = intersectVarient(2)<BR> <BR> lineobj.Move pnt1, movetopnt<BR> <BR> '保存直线的objectid 数据<BR> rstDataGTSJ.Fields("lineobjid").Value = lineobj.ObjectID
rstdatagtsj.update
end sub
事件,当对象被修改时,修改数据库中的数据
Private Sub AcadDocument_ObjectModified(ByVal Object As Object)<BR> Dim lineobj As AcadLine<BR> Dim startPnt As Variant<BR> '判断是否是杆塔线被移动,如果被移动,则把新的杆塔线数据写入数据库.<BR> If TypeName(Object) = "IAcadLine" Then<BR> Set lineobj = Object<BR> startPnt = lineobj.startPoint<BR> Call SaveNewPositionToDB(lineobj.ObjectID, CDbl(startPnt(0)))<BR> End If
End Sub
问题:
1。在图形中当我移动相应直线时,object却和数据库中的不同,而我要修改数据中重存放的相应对向的坐标,为什么这样呢,怎么办。
2。 见drawLineAandSaveObjid()中注释‘下面代码不能在制定位置插入线,所以需要从原点移动过来,为什么?
3。我试了试,不使用块,在1中不会出现问题,如果不使用copyobject方法,如何把一个对象插入到一个指定的块中。 程序不完整,看不懂。 结贴
页:
[1]