Тема: Где сохраняются положение и размер видимой части чертежа?

Где сохраняются положение и размер видимой части чертежа?
Можно ли открыть файл так, чтобы увидеть на экране часть чертежа с координатами, которые задаются при открытии в качестве параметров?
Или открыть файл, как придется, а потом из другого приложения сдвинуть чертеж в нужную сторону?

Re: Где сохраняются положение и размер видимой части чертежа?

Например:
Есть "именованые виды"...
Кажись при задании в качестве параметра командной строки : имени файла и имени вида - можно открыть чертеж "где надо"... (надо уточнить параметры командной строки, вроде раньше, после имени файла указывалось имя скрипта. Кстати можно и скриптом управлять...)

Re: Где сохраняются положение и размер видимой части чертежа?

format/drawing limits ?

Re: Где сохраняются положение и размер видимой части чертежа?

Спасибо за подсказку.
Чтобы из-под DOS запустить AutoCAD, загрузить файл MyFile.dwg и выбрать именованный вид PlotView, необходимо ввести в командной строке:
c:\progra~1\acad2000\acad.exe c:\myfile.dwg /v plotview

Re: Где сохраняются положение и размер видимой части чертежа?

А меня интересует только первая часть вопроса.

Где сохраняются положение и размер видимой части чертежа?

Ребята, помогите. Это наверное так просто, что стыдно задавать Вам этот вопрос. Но сегодня у меня наверное тяжелый день.

Re: Где сохраняются положение и размер видимой части чертежа?

> Alan
EXTMIN - координаты левого нижнего угла
EXTMAX - координаты правого вехнего угла

Re: Где сохраняются положение и размер видимой части чертежа?

Иван
Инетресующее Вас хранится в системных переменных AutoCAD'а. Правда, не в явном виде. Но, вытащив значения этих системных переменных, путём нехитрых вычислений Вы сможете рассчитать координаты углов видимой части чертежа. Итак, системные переменные:
VIEWCTR  - (Read-only)
Type: 3D point
Saved in: Drawing
Stores the center of view in the current viewport. Expressed as a UCS coordinate.
VIEWSIZE - (Read-only)
Type: Real
Saved in: Drawing
Stores the height of the view in the current viewport. Expressed in drawing units.
И последняя системная переменная, с помощью которой, высчитав пропорцию, можно узнать ширину текуущего видового экрана:
SCREENSIZE - (Read-only)
Type: 2D point
Not saved
Stores current viewport size in pixels (X and Y).
*** Обратите внимание, что SCREENSIZE хоанит значение текущего видового экрана именно в пикселах. А две предыщущие переменные: 1-я в координата Автокада, а 2-я - хранит _расстояние_ (высоту текущего видового экрана) в текущих единицах чертежа.
P.S. Надеюсь, это поможет. Правда, придётся вспомнить школьную арифметику.

Re: Где сохраняются положение и размер видимой части чертежа?

P.S. Извиняюсь, но EXTMIN и EXTMAX - это трошкти не из той оперы...  smile
Они задают координаты виртуального прямоугольника "охватывающего" все графические примитивы чертежа.

Re: Где сохраняются положение и размер видимой части чертежа?

> Mosspower
Вы правы, это я на автомате выдал. И оказался в дураках...

Re: Где сохраняются положение и размер видимой части чертежа?

2 Fantomas
Да, ладно.  smile Мы ж тут не на корову играем.  wink  :beer:

Re: Где сохраняются положение и размер видимой части чертежа?

Вот кстати, если прописать это в автозагрузке, то при команде сохранения, чертеж всегда будет сохранятся как после команды _zoom _extents

(defun save_zoom_extents (/ saveReact)
  (setq saveReact
     (vlr-dwg-reactor nil '((:vlr-beginSave . beginReaction)
                (:vlr-saveComplete . endReaction)
                )))
  (princ)
  ); end of save_zoom_extents
(vl-load-com)
(save_zoom_extents)
(defun beginReaction (Reactor Arg)
  (vla-ZoomExtents(vlax-get-acad-object))
  (princ)
  ); end of SaveReaction
(defun endReaction (Reactor Arg)
  (vla-ZoomPrevious(vlax-get-acad-object))
  (princ)
  ); end of SaveReaction

Проверку на наличие одинаковых реакторов не делал в расчете на то что оно грузится только при открытии чертежа.

Re: Где сохраняются положение и размер видимой части чертежа?

> Mosspower
Спасибо Вам! Напомнили о изучении матчасти.

Re: Где сохраняются положение и размер видимой части чертежа?

2 Alan
Пожалуйста.   smile

Re: Где сохраняются положение и размер видимой части чертежа?

> Mosspower
Сдается мне, что Вы сами-то не сможете выполнить эти нехитрые вычисления. Чем, например, поможет SREENSIZE, которая никакого отношения не имеет к размерам видимой части чертежа?

Re: Где сохраняются положение и размер видимой части чертежа?

Да всего навсего поможет найти соотношение сторон, т.е. аспект. С помощью аспекта можно найти ширину изображения на текущем видовом экране в условных единицах, для которой в AutoCAD специально нет системной переменной.

Re: Где сохраняются положение и размер видимой части чертежа?

> >Profan
После подсказки Mosspower (2005-04-02 22:43:54) я воспользовался учебником Малинин А., Буренин "Руководство алгебры и собрание алгебраических задач для гимназий. Изд. 2-е.-М.: типогр. И.И.Грачева, 1880.-406 с." и решил свою задачку.

Re: Где сохраняются положение и размер видимой части чертежа?

> Profan
Все прекрасно решается. Я догадываюсь, ты специально везде "профанишь", и прикалываешся когда "умники" начинают тебе объяснять на полном серьезе :))

(defun active_viewport_coners
       (/ vCen vHei vPix vWid lBot rTop)
  (setq vCen(getvar "VIEWCTR")
    vHei(getvar "VIEWSIZE")
    vPix(getvar "SCREENSIZE")
    vWid(* vHei(/(car vPix)(cadr vPix)))
    lBot(list(-(car vCen)(/ vWid 2))
         (-(cadr vCen)(/ vHei 2))
         ); end list
    rTop(list(+(car vCen)(/ vWid 2))
         (+(cadr vCen)(/ vHei 2))
         ); end list
    ); end setq
  (list lBot rTop)
  ); end active_viewport_coners