重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
因为您的E??xcel文件中没有安排的顺序图。
成都地区优秀IDC服务器托管提供商(成都创新互联公司).为客户提供专业的成都多线机房,四川各地服务器托管,成都多线机房、多线服务器托管.托管咨询专线:13518219792
正确的顺序是:
D1
D2
D4
D5
D3
您可以更改Excel的内容,或在程序中里加期间订购点顺序的功能。
手动更改Excel是最好的方式。
如果你想添加一个排序功能,仅仅是凸多边形写。
============================================ /补充道:订购功能点的连接顺序的想法(仅适用于凸多边形)
已知的点的数量的点的坐标(X,Y)
要求:这些点作为连接序列的凸多边形的顶点的顶点。
思路:
选定的一个点(点(1));
寻求成的角度的大小之间的任何两个点与其余点(指向找出的顶角之间的最大角度的);
,点与连接点的多边形的最大角度的两侧上是请求;
这一点上的两个点来确定顺序,并因此上,以确定的顺序,在其中所有的连接点。
你去查查书吧,书上挺详细的,在这说不好说,你先在项目里引用。然后 Dim acadapp As AcadApplication Dim acaddoc As AcadDocument On Error Resume Next AcadApp = GetObject(, "AutoCAD.Application") If Err.Number Then Err.Clear() AcadApp = CreateObject("AutoCAD.Application") If Err.Number Then MsgBox("不能运行AutoCAD,请检查是否安装了AutoCAD") Exit Sub End If End If AcadApp.Visible = True '界面可视
Dim ppr As PromptPointResult = ed.GetPoint("请选择插入点:")
Dim pt As Point3d = ppr.Value
utility.WriteToEditor(pt.ToString())
Dim pidBlock As New PIDBlock()
'自己定义的图块类,保存图块的路径和名称
pidBlock.Name = "sample"
pidBlock.Path = blockPath "b_sample.dwg"
Using blkDb As New Database(False, True)
'read drawing
blkDb.ReadDwgFile(pidBlock.Path, System.IO.FileShare.Read, True, Nothing)
blkDb.CloseInput(True)
Using docLock As DocumentLock = doc.LockDocument()
'多文档要先这样,否则报至命错误
Using t As Transaction = doc.TransactionManager.StartTransaction()
'insert it as a new block
Dim idBTR As ObjectId = doc.Database.Insert(pidBlock.Name, blkDb, False)
'create a ref to the block
Dim bt As BlockTable = DirectCast(t.GetObject(doc.Database.BlockTableId, OpenMode.ForRead), BlockTable)
Dim btr As BlockTableRecord = DirectCast(t.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
Using bref As New BlockReference(pt, idBTR)
btr.AppendEntity(bref)
t.AddNewlyCreatedDBObject(bref, True)
End Using
t.Commit()
End Using
End Using
End Using