Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: OlegSysa от 12-01-2018, 21:00:42
-
Здравствуйте! Помогите программно начертить размеры.
Есть чертеж:
(https://s9.postimg.org/6p16t3yij/Autodesk_Auto_CAD_2018_-_Drawing1.dwg.jpg) (https://postimg.org/image/6p16t3yij/)
Необходимо сделать линейный размер как на картинке.
В документации нашел что можно использовать RotatedDimension.
Написал метод. При создании этого объекта надо указать угол поворота.
Не могу понять как правильно его вычислить.
В примере в доке там задается вот так: acRotDim.Rotation = 0.707;
В каких единицах задается это значение? Явно не в градусах.
Как правильно его вычислить что бы этот размер стал ровно как на картинке?
Может такой размер как то строиться по другому? Не через RotatedDimension?
Спасибо.
-
В каких единицах задается это значение? Явно не в градусах.
В радианах.
-
Необходимо сделать линейный размер как на картинке.
В документации нашел что можно использовать RotatedDimension.
Пойдёт:
(https://farm5.staticflickr.com/4629/39652563751_f036b72331_o.png)
В примере в доке там задается вот так: acRotDim.Rotation = 0.707;
В каких единицах задается это значение? Явно не в градусах.
В радианах. В AutoCAD все углы в радианах в внутреннем представлении.
Как правильно его вычислить что бы этот размер стал ровно как на картинке?
Нужно установить XLine1Point и Xline2Point (смотри на моей картинке).
-
День добрый! XLine1Point и XLine2Point я изначально и так задаю. Это ж получается основные точки, расстояние между которыми мне и надо измерять. Просто я изначально в вопросе не упомянул о них.
Просто я не могу понять как задать ровный угол поворота для того что бы размер был правильный.
Посмотрел только что информацию о переводе градусов в радианы.
В итоге для того, что бы повернуть размер на 90 градусов я вычислил такую формулу 90/1=П/180
Итого получается 90 градусов = П/2
В коде я задал так - Math.PI/2
После этого все получилось.
Такой подход правильный?
Либо надо делать как то иначе?
Спасибо!
-
XLine1Point и XLine2Point я изначально и так задаю. Это ж получается основные точки, расстояние между которыми мне и надо измерять.
Нет. Это опорные точки. Расстояние меряется не между ними, а по проекции, которая зависит от угла поворота.
Итого получается 90 градусов = П/2
В коде я задал так - Math.PI/2
После этого все получилось.
Такой подход правильный?
Да, если ты меряешь расстояние по вертикали. Если по горизонтали, то угол 0.
-
Ок, спасибо огромное! Буду делать дальше!