epwt 发表于 2011-1-17 19:27:20

请高人指点如何用多段线画箭头

用leader画箭头的时候,有时候箭头大小为0,也不知道到底为什么。
于是就想用多段线画,
但是关于如何画还不太清楚。
用多段线画箭头是否3个点就可以了呢?
起点,重点,和箭头结束的那个点。
箭头的点是否还要用向量计算呢,
还是多段线本身就有blug,可以设置何时画箭头?
求高人指点。
谢谢!

wylong 发表于 2011-1-17 19:50:03

命令: _pline
指定起点:
当前线宽为 0.0000
指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]: w
指定起点宽度 <0.0000>: 2
指定端点宽度 <2.0000>: 2
指定下一个点或 [圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:
指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W)]: w
指定起点宽度 <2.0000>: 10
指定端点宽度 <10.0000>: 0
指定下一点或 [圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:

epwt 发表于 2011-1-17 20:26:25

感谢指点,画出来了。
谢谢!
                public void DrawArrow()
                {
                        Point2d startPoint = new Point2d(10,0);
                        Point2d middlePoint = new Point2d(50,0);
                        Point2d endPoint = new Point2d(60,0);

                        Polyline pLeader = new Polyline();
                        pLeader.AddVertexAt(0, startPoint, 0, 0, 0);
                        pLeader.AddVertexAt(1, middlePoint, 0, 1, 0);
                        pLeader.AddVertexAt(2, endPoint, 0, 1, 0);

                        Database db = HostApplicationServices.WorkingDatabase;
                        using (Transaction trans = db.TransactionManager.StartTransaction()) {
                                BlockTable bt = (trans.GetObject(db.BlockTableId, OpenMode.ForWrite)) as BlockTable;
                                BlockTableRecord btr = (trans.GetObject(bt, OpenMode.ForWrite)) as BlockTableRecord;
                                ObjectId objectId = btr.AppendEntity(pLeader);
                                trans.AddNewlyCreatedDBObject(pLeader, true);
                                trans.Commit();
                                trans.Dispose();
                               
                        }
                }
页: [1]
查看完整版本: 请高人指点如何用多段线画箭头