awei 发表于 2005-3-2 15:18:00

为什么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方法,如何把一个对象插入到一个指定的块中。

mccad 发表于 2005-3-3 22:44:00

程序不完整,看不懂。

awei 发表于 2005-3-8 10:45:00

结贴
页: [1]
查看完整版本: 为什么cad对象的objectid会不一样