c # autocad установить ось ucs z

мой google-fu слаб в отношении настройки оси z autocad ucs. Я видел много примеров в Интернете для определения ucs, хотя ни один из них не устанавливал ось z. Я могу вручную установить ось Z, набрав в командной строке «ucs», затем «za» и выбрав 2 точки для определения оси Z.

я пробовал это: Выровняйте ПСК по объект

который не работал, как мне нужно. я также пытался изменить это, но мне явно не хватает знаний о C #, чтобы сделать это. Любая помощь приветствуется.

Спасибо


person North    schedule 29.01.2016    source источник
comment
Почему это не сработало так, как вам нужно? Поскольку вы пытались изменить, что именно вы пробовали?   -  person David Pfeffer    schedule 30.01.2016
comment
я заменил в коде следующие строки: //Line ent = Tx.GetObject(res.ObjectId, OpenMode.ForRead) as Line; Solid ent = Tx.GetObject(SelObjId, OpenMode.ForRead) as Solid; // получить ucs от сущности Matrix3d ​​ecs = new Matrix3d(); // устанавливаем направление //Vector3d xVec = (ent.EndPoint - ent.StartPoint); Vector3d xVec = (SelObjEndPt - SelObjStartPt);   -  person North    schedule 30.01.2016
comment
Вы должны указать это в своем вопросе. Вы также не объяснили, что вас не устроило.   -  person David Pfeffer    schedule 30.01.2016
comment
код не позволяет установить ось Z в определенном направлении. код в ссылке не выравнивает ось z с линией, как я и думал.   -  person North    schedule 30.01.2016
comment
Вы должны указать эти вещи в вопросе.   -  person David Pfeffer    schedule 30.01.2016


Ответы (1)


Вот метод расширения:

public static class EditorExtension
{
    public static void SetZAxisUcs (this Editor ed, Point3d basePoint, Point3d positiveZaxisPoint)
    {
        Plane plane = new Plane(basePoint, basePoint.GetVectorTo(positiveZaxisPoint));
        Matrix3d ucs = Matrix3d.PlaneToWorld(plane);
        ed.CurrentUserCoordinateSystem = ucs;
    }
}
person gileCAD    schedule 30.01.2016
comment
Спасибо gileCAD. мне не приходило в голову исследовать его настройку через базовую точку. это работает чисто. - person North; 01.02.2016