重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你只是把点读到一个点的数组里了,根本就没保存到你创建的shapefile中
目前创新互联已为近千家的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、泾川网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
在endwhile后边加一段:
for(int i =0;ipPointCol.Count;i++)
{
pFeaClass1.CreateFeature(newFeature);
newFeature._Set_Shape(pPointCol[i]);
rowSubtypes := newFeature as IRowSubtypes;
rowSubtypes.Set_SubtypeCode(1);
rowSubtypes.InitDefaultValues;
newFeature.Store;
}
这段代码不伦不类的 你转一下
按照常理说一句哈: 找CAD的API。然后在你的程序里写语句,调用这个API。关键是找到可以操作CAD的图层的API。欧特克提供了这个吗?
你看到的调用DLL的应该是用的objectARX做的开发。你可以用ActiveX外部调用CAD啊~我是用的C#做的二次开发:
System.Diagnostics.Process.Start("CAD文件路径");//运行CAD
AcadApplication _application= (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.16");//获取正在运行的CAD程序实例
AcadDocument aDocument=_application.Application.ActiveDocument
AcadLayer newLayer = aDocument.Layers.Add("CircleLine");//添加图层
aDocument.ActiveLayer = newLayer;//把CircleLine层设置为当前层
AcadCircle circle = aDocument.ModelSpace.AddCircle(center, radius);//加入圆
AcadLine line = aDocument.ModelSpace.AddLine(startPoint, endPoint);//加入直线
circle.color = ACAD_COLOR.acRed;//把圆变为红色
line.color = ACAD_COLOR.acGreen;//把直线变为绿色
connector.Application.Update();//更新显示
当然是全部重画。
层只不过是制图软件弄出来的一个方便的东西而已。
就像你画画,画上去如果你要擦掉当然是擦到底色咯。(当然GDI+也可以像你画画一样只擦一部分)
GDI+时钟我写过一个VB6的。代码详见我博客。地址显然百度不让贴上= =。所以你可以看下我的资料。
你可以模拟层,就是把所有绘制信息都保存起来。你的流程应当是:
如果要绘制了,更新绘制信息(可以是数组啥的。),交给一个Draw过程
Draw过程:根据绘制信息,全部绘制。
By vIstaswx ,before junior school graduation exam.
VB.net与VB不同。
VB.net已经有专门绘图的类。
可以定义笔刷然后用Drawing类中的方法绘制。
Private Sub DrawEllipse()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawEllipse(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
Private Sub DrawRectangle()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawRectangle(myPen, New Rectangle(0,0,200,300))
myPen.Dispose()
formGraphics.Dispose()
End Sub
需要解析CAD文件的构成 然后根据规则绘制 说白点CAD文件是人家公司定义的一个文件格式 里面保存的不是图形 而是图形的绘制规则 程序AutoCad打开文件的时候是读取文件里面描写的绘制规则绘制图案的 你了解了CAD文件的构成后就可以自己写代码绘制图形了(具体CAD图形构成没研究过 你可以用记事本打开一个CAD的图形交换文件.Dxf 可以看到 这个文件是由图层说明和很多点坐标组成的)