Тема: Масштаб документа
Добрый день!
Скажите, а как программно узнать текущий масштаб документа?
Заранее спасибо.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Масштаб документа
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый день!
Скажите, а как программно узнать текущий масштаб документа?
Заранее спасибо.
Что вы имеете в виду под текущим масштабом документа?
В AutoCAD такого понятия нет, есть прием используемый некоторыми САПР - вычерчивание в определенном назначаемом масштабе. В "чистом" ACAD'е можно получить масштаб только как свойство видового окна, и то косвенным образом(Autodesk'и то ли по пьянке, то ли по лени не включили важнейшее свойство в состав интерфейса).Кроме того, "масштаб" немасштабируемых размерных элементов
можно получить как значение системной переменной DIMSCALE.
Предлагаю небольшой примерчик на VBA, т.к. в ObjectARX, к сожалению, не силен:
Dim DimensionScale As Single DimensionScale = ThisDrawing.GetVariable("DIMSCALE") Dim Viewport As AcadViewport Dim View As AcadView Set Viewport = ThisDrawing.ActiveViewport ThisDrawing.Views.Add ("MyView") Set View = ThisDrawing.Views.Item(0) Dim ViewportScale As Single ViewportScale = Viewport.Height / View.Height MsgBox "DimensionScale = " & DimensionScale & vbCrLf & _ "ViewportScale = " & ViewportScale
Leonid: Я имел в виду тот масштаб, который ставится командой scale. Вот это значение мне нужно узнать/изменить.
Не знаю...возможно, надо бы повозиться, но извини, руки не доходят. М\б кто-то решал подобную задачу?
> Starter
Слово "Масштаб" - неоднозначно, точнее, многозначно. В частности, не стоит говорить, что команда scale меняет масштаб объекта. Если у объекта есть "масштаб", то эта команда может его изменить (например, масштабные коэффициенты Блока). А у линии, например, команда scale меняет только длину и никто Вам не скажет, какой она была в момент творенья.
...и то косвенным образом(Autodesk'и то ли по пьянке, то ли по лени не включили важнейшее свойство в состав интерфейса)
Спасибо, Leonid, давно ищу эту информацию. А не могли бы Вы уточнить про "косвенные" способы, или хотя бы направление поиска дать.
> ttt
Масштаб видового экрана можно получить в ЛИСП'е с помощью ф-ции entget от примитива VIEWPORT. Для этого надо высоту экрана (dxf 41) разделить на высоту вида (dxf 45). Интересно, что попытки подобных манипуляций в VBA дают неправильный результат ... А может просто я где-то не догоняю.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Масштаб документа
Форум работает на PunBB, при поддержке Informer Technologies, Inc