CAD计算两曲线间最短路径(com接口)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
                 axMxDrawX1.StopAllTwinkeEnt();
                MxDrawEntity ent1 = (MxDrawEntity)(axMxDrawX1.GetEntity("选择开始曲线:") );
                if (ent1 == null)
                    return;
 
                MxDrawEntity ent2 = (MxDrawEntity)(axMxDrawX1.GetEntity("选择结束曲线:"));
                if (ent2 == null)
                    return;
 
                MxDrawDatabase database = (MxDrawDatabase)(axMxDrawX1.GetDatabase());
 
                MxDrawResbuf param = new MxDrawResbuf();
                param.AddObjectId(ent1.ObjectID);
                param.AddObjectId(ent2.ObjectID);
 
                MxDrawResbuf ret = (MxDrawResbuf)(axMxDrawX1.CallEx("ExApp_ShortestPath",param));
                if (ret.AtString(0) != "Ok")
                {
                    MessageBox.Show("曲线不连通!");
                }
                else
                {
                    for (int i = 1; i < ret.Count; i++)
                    {
                        Int64 lId = ret.AtObjectId(i);
                        axMxDrawX1.TwinkeEnt(lId);
 
                        // 由lId得到对象,并得到对象的坐标
                        MxDrawMcDbObject obj = database.ObjectIdToObject(lId);
                        if (obj == null)
                            continue;
 
                        if (obj is MxDrawLine)
                        {
                            MxDrawLine line = (MxDrawLine)obj;
                            MxDrawPoint sPt = (MxDrawPoint)(line.StartPoint);
                            MxDrawPoint ePt = (MxDrawPoint)(line.EndPoint);
 
                            //MessageBox.Show(sPt.x.ToString() + "," + sPt.y.ToString() + ","
                             //   + ePt.x.ToString() + "," + ePt.y.ToString()
                             //   );
                        }
                        else if (obj is MxDrawText)
                        {
                            MxDrawText text = (MxDrawText)obj;
                            // 是这文字对象
 
                        }
                    }
                }

posted on 2019-06-06 14:13  梦想CAD控件  阅读(342)  评论(0)    收藏  举报

导航