Тема: Масштаб документа

Добрый день!
Скажите, а как программно узнать текущий масштаб документа?
Заранее спасибо.

Re: Масштаб документа

Что вы имеете в виду под текущим масштабом документа?
В 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

Re: Масштаб документа

Leonid: Я имел в виду тот масштаб, который ставится командой scale. Вот это значение мне нужно узнать/изменить.

Re: Масштаб документа

> Starter
В динамике?

Re: Масштаб документа

Leonid: Да.

Re: Масштаб документа

Не знаю...возможно, надо бы повозиться, но извини, руки не доходят. М\б кто-то решал подобную задачу?

Re: Масштаб документа

> Starter
Слово "Масштаб" - неоднозначно, точнее, многозначно. В частности, не стоит говорить, что команда scale меняет масштаб объекта. Если у объекта есть "масштаб", то эта команда может его изменить (например, масштабные коэффициенты Блока). А у линии, например, команда scale меняет только длину и никто Вам не скажет, какой она была в момент творенья.

Leonid пишет:

...и то косвенным образом(Autodesk'и то ли по пьянке, то ли по лени не включили важнейшее свойство в состав интерфейса)

   Спасибо, Leonid, давно ищу эту информацию. А не могли бы Вы уточнить про "косвенные" способы, или хотя бы направление поиска дать.

Re: Масштаб документа

> ttt
Масштаб видового экрана можно получить в ЛИСП'е с помощью ф-ции entget от примитива VIEWPORT. Для этого надо высоту экрана (dxf 41) разделить на высоту вида (dxf  45). Интересно, что попытки подобных манипуляций в VBA дают неправильный результат ... А может просто я где-то не догоняю.