Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: avc от 05-09-2017, 15:40:45

Название: Получить LineWeight в миллиметрах или дюймах
Отправлено: avc от 05-09-2017, 15:40:45
При оформлении Автокадовских таблиц столкнулся с тем что толщина (т.н."вес") линий это оказывается не double, а перечисление LineWeight. Значения вроде совпадают с сотыми долями миллиметров. Причем в дюймовых чертежах тоже.  Получилось такое преобразование в единицы чертежа:
Код - C# [Выбрать]
  1. if (border.LineWeight != null && (border.LineWeight.Value) > 0) // в моем случае border это CellBorder, но это не суть важно
  2.    margin = (double)border.LineWeight.Value / 100d / ((Int16)AcadApp.GetSystemVariable("INSUNITS") == 1 ? 25.4 : 1d);
Но это не вся проблема. Вес может быть дефолтным, по слою и по блоку. Значит надо еще кучу кода писать :(
Вопрос: нет ли более короткого пути для получения действующего веса линий объектов и преобразования его в единицы текущего чертежа.
Название: Re: Получить LineWeight в миллиметрах или дюймах
Отправлено: Александр Ривилис от 05-09-2017, 15:42:41
Вопрос: нет ли более короткого пути для получения действующего веса линий объектов и преобразования его в единицы текущего чертежа.
Нет. Кстати, что-то мне твоя формула сильно не нравится. INSUNITS можно легко поменять.
Название: Re: Получить LineWeight в миллиметрах или дюймах
Отправлено: avc от 05-09-2017, 15:53:22
Жаль...
Спасибо
Название: Re: Получить LineWeight в миллиметрах или дюймах
Отправлено: Александр Ривилис от 05-09-2017, 16:01:58
Жаль...
Спасибо
А в чем смысл твоих вычислений? Чего ты добиваешься?
Название: Re: Получить LineWeight в миллиметрах или дюймах
Отправлено: avc от 05-09-2017, 16:07:21
Вычисляю подходящую ширину ячеек таблицы. Толщина линий конечно не особо текст перекроет. Проще проигнорировать. Но мне подумалось, что вопрос с вычислением толщины линий может еще где-нибудь пригодится.
Название: Re: Получить LineWeight в миллиметрах или дюймах
Отправлено: Александр Ривилис от 05-09-2017, 16:10:11
Ну вообще-то вес линий проявлется при печати/публикации. Т.е. фактически идёт пересчет в единицы пространства листа. Поэтому если таблица в модели, то расчет будет совсем неправильный.