Тема: А как мне узнать точные размеры слайда?

Мне необходимо загрузить kame1.SLD в диалог.
Я делаю так: В dcl пишу
:image{key="s";width=XX;height=YY;color=graphics_background;}
В LSP пишу:
(start_image "s");
(slide_image 0 0 (dimx_tile "s") (dimy_tile "s") "kame1")
(end_image)
А как мне узнать точные размеры слайда? Т.е. чтобы не вводить вручную
width=XX;height=YY;

Re: А как мне узнать точные размеры слайда?

Вообще-то в help'е есть описание структуры заголовка SLD-файлов. Но если лень читать, то в двух словах:
Размер по X находится по смещению 13Hex (или 19 Dec) - длина два байта, размер по Y - 15Hex (или 21Dec) - длина 2 байта. Смотришь любым шестнадатиричным редактором - например HIEW. Только не забудь про форму записи десятичных чисел - сначала младший разряд, потом старший. Например:
По оси X: EF05 - меняем порядок байт: 05EF - в десятичном виде: 1519.
По оси Y: 8A03 - меняем порядок байт: 038A - в десятичном виде: 906.
Итого: width=1519, height=906.
Можно конечно и программку написать, которая будет получать ширину и высоту указанного слайда, но лень. smile

Re: А как мне узнать точные размеры слайда?

Спасибо за ответ. Я что-то подобное и предполагал, только не знал где искать. А из автокада это сделать никак нельзя? В смысле без hiew и.т.д

Re: А как мне узнать точные размеры слайда?

> parfen
Точно можно, если написать приложение на ObjectARX, думаю, что и на VBA можно.  AutoLisp не позволяет читать двоичные файлы.

Re: А как мне узнать точные размеры слайда?

> parfen
Пересилил свою лень. smile Возьми отсюда программку: http://www.maestrogroup.com.ua/support/slbinfo.zip
Запускаешь оттуда slbinfo.exe с именем слайда или библиотеки слайдов и получаешь ширину и высоту слайда.

Re: А как мне узнать точные размеры слайда?

> Александр
Ривилис
Спасибо огромное.

Re: А как мне узнать точные размеры слайда?

В каких единицах эта программа выдает значения ширины и высоты? И можно ли менять (например, уменьшать)width=XX;height=YY, или нужно вводить только реальные размеры?

Re: А как мне узнать точные размеры слайда?

; Функция определения габаритов слайда.
; Возврат: список из 2-х целых чисел - ширина и высота.
; Если файл слайда не найден на путях поддержки, возвращает nil.
(defun slddims (name; строка: имя слайда без расширения.
        /
        path;
        df;
        wl wh hl hh;
        )
  (cond
    ((not (setq path (findfile (strcat name ".sld")))) nil);
    ((not (setq df (open path "r"))) nil)
    (T
     (repeat 18 (read-char df))
     (setq wl (read-char df) wh (read-char df) hl (read-char df) hh (read-char df))
     (close df)
     (list (+ (* 256 wh) wl) (+ (* 256 hh) hl)); return.
    );
  ); end cond.
); end defun.