xys1995 发表于 2016-9-7 22:04:37

任何人都可以帮助我吗?AutoCAD2016 中有什么问题?

我的程序可以在ACAD2008下正常运行,是的,我升级到ACAD2016,但是有些不对劲。
当我调用折线类函数 GetDistAtPoint 时,到起点的每个顶点距离都是 1.0。




**** Hidden Message *****

xys1995 发表于 2016-9-7 22:12:43

并且此折线对象不受数据库限制,它是由另一条折线拆分的。
public static Curve ParticalCopy(thisCurve cv, Point3d pt1, Point3d pt2)
      {
            pt1 = cv.GetClosestPointTo(pt1, false);
            pt2 = cv.GetClosestPointTo(pt2, false);
            if (cv.GetDistAtPoint(pt1) > cv.GetDistAtPoint(pt2))
            {
                Point3d pt = pt1;
                pt1 = pt2;
                pt2 = pt;
            }
            DoubleCollection dbs = new DoubleCollection();
            double param1 = cv.GetParameterAtPoint(pt1);
            dbs.Add(param1);
            double param2 = cv.GetParameterAtPoint(pt2);
            dbs.Add(param2);
            DBObjectCollection DBS = cv.GetSplitCurves(dbs);
            IEnumerator enumDbOc = DBS.GetEnumerator();
            ObjectId res = ObjectId.Null;
            Tolerance t = new Tolerance(0.01, 0.01);
            Curve[] cvs = new Curve;
            int i = 0;
            while (enumDbOc.MoveNext())
            {
                Curve lineTemp = (Curve)enumDbOc.Current;
                cvs = lineTemp;
                i++;
            }
            if (param1 == 0)
                return cvs;
            else if (cvs.Length >= 2)
                return cvs;
            else
                return cvs;
      }

Gasty 发表于 2016-9-9 16:12:31

嗨,
你能发布一个示例图吗?
加斯顿·努内斯

MickD 发表于 2016-9-9 18:48:00

您是否尝试过将其添加到数据库中然后测试其方法?
AutoCAD很有趣,就像使用折线等复杂对象一样,它们需要添加到数据库中才能编辑或使用它们。这真的没有意义,Bricscad也不需要这个,但也许它与在这些后续版本中删除Fibres有关?
如果您不想保留它,只需擦除它,或者您可以使用原始几何类进行计算。

xys1995 发表于 2016-9-11 23:06:29

感谢大家,我已经找到了原因,在运行代码之前,请调用“ZOOMALL”,一切正常。
因此,我认为首先,多段线不在屏幕上。
页: [1]
查看完整版本: 任何人都可以帮助我吗?AutoCAD2016 中有什么问题?