Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Filedia Возможно ли и каким именно образом обойти появление диалогового окна при работе программы на LISP?

Filedia Возможно ли и каким именно образом обойти появление диалогового окна при работе программы на LISP?

Ответ
Поиск в этой теме
Непрочитано 26.08.2011, 21:50 #1
Filedia Возможно ли и каким именно образом обойти появление диалогового окна при работе программы на LISP?
Дмитрий Асташев
 
päällikön suunnittelijat
 
Pietari, Venäjä
Регистрация: 04.12.2010
Сообщений: 63

Коллеги!

Возможно ли и каким именно образом обойти появление диалогового окна при работе программы на LISP?
Просмотров: 3363
 
Непрочитано 26.08.2011, 21:53
#2
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,327


Дмитрий Асташев, запомнить значение переменной filedia, дать ей значение ноль, затем после работы программы вернуть исходное значение.
команды autolisp
Код:
и
Код:
некоторые команды имеют возможность управления из командной строки. В этом случае перед командой следует ставить знак минуса, например или
Код:
[Выделить все]
 -scalelistedit
Хмурый вне форума  
 
Автор темы   Непрочитано 27.08.2011, 12:49
#3
Дмитрий Асташев

päällikön suunnittelijat
 
Регистрация: 04.12.2010
Pietari, Venäjä
Сообщений: 63


Цитата:
Сообщение от Хмурый Посмотреть сообщение
запомнить значение переменной filedia, дать ей значение ноль
В том то и проблема, что при работе LISP переменная FILEDIA не действует.
Собственно, текущая проблема - пакетная печать в PDF. ACAD открывает окно, предлагая ввести имя файла. И так для всех 104 чертежей. Как бы обойти диалоговое окно???
Дмитрий Асташев вне форума  
 
Непрочитано 27.08.2011, 20:59
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Использовать подшивку и выполнять печать оттуда. Безо всякого программирования
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.08.2011, 23:52
#5
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Дмитрий Асташев Посмотреть сообщение
Собственно, текущая проблема - пакетная печать в PDF
Код:
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 28.08.2011, 13:35
#6
Дмитрий Асташев

päällikön suunnittelijat
 
Регистрация: 04.12.2010
Pietari, Venäjä
Сообщений: 63


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
_.-plot
Попробовал, это не помогает.
Прошу прощения за назойливость и уточняю вопрос: печатаю из модели кучу чертежей на одинаковых форматках. Форматки - блоки, так что область печати определяется легко. Далее вызываю plot (установки печати задаются предварительно)

(command "_.-plot" "y" "" "" "" "m" "" "" ""point1 point2 "" "" "" "" "" "" "" "y" "y" ) ;_ end of command

Если печатать на принтер, проблем нет никаких. А при печати в PDF открывается FileSaveDialog, с запросом имени файла. Как бы передать имя файла, минуя диалоговое окно?

УРА!!!
Надо выбирать не Adobe PDF принтер, а DWG to PDF!!! И диалоговое окно не появляется!!!


;;Dmitry Astashev (c) 2005.
;;Пакетная печать
;;Используются рамки A3, A3slave, A4, A4emtry
;;1 First make plot settings
;;2 Load aplot.lisp
;;3 Type adplot at command line
;;4 Select frames you want to plot then press enter
;;5 Go take some cup of coffe while plotter works
;;
(DEFUN dtr (d) (* PI (/ d 180.0))) ;_ end of DEFUN
;;;*******************************************
(DEFUN rtd (r / rez)
(IF (= 0 r)
(SETQ rez 0)
(SETQ rez (* (/ 180 PI) r))
) ;_ end of IF
(SETQ result rez)
) ;_ end of DEFUN
(DEFUN _2dpointfrom3d (point3d / xx yy)
(SETQ result nil)
(SETQ xx (CAR point3d))
(SETQ yy (CADR point3d))
(SETQ result (LIST xx yy))
) ;_ end of DEFUN
(defun adplot ()
(SETQ osnapsetting (GETVAR "OSMODE"))
(SETQ filediasetting (GETVAR "FILEDIA"))
(COMMAND "setvar" "osmode" 0)
(COMMAND "setvar" "FILEDIA" 0)
(setq filenum 1)
(SETQ index 0)
(SETQ adset (SSGET '((0 . "INSERT"))))
(SETQ ename (SSNAME adset index))
(WHILE (/= ename nil)
(setq filename (STRCAT "D:\\" "drawing" (itoa filenum) ".pdf"))
(SETQ curenty (ENTGET ename))
(SETQ EntityType (CDR (ASSOC 0 curenty)))
(if (equal EntityType "INSERT")
(progn
(SETQ blockname (CDR (ASSOC 2 curenty)))
(if (or (equal blockname "a4")
(equal blockname "A4")
(equal blockname "a4slave")
(equal blockname "a4empty")
) ;_ end of or
(progn
(setq point1 (CDR (ASSOC 10 curenty)))
(SETQ blockscale (CDR (ASSOC 41 curenty)))
(setq point1x (car point1))
(setq point1y (cadr point1))
(setq point1z (last point1))
(setq point2x (- point1x (* blockscale 197)))
(setq point2y (+ point1y (* blockscale 287)))
(setq point2z point1z)
(setq point2 (list point2x point2y point2z))
(command "-plot"
"y" ""
"" "a4"
"m" "p"
"n" "w"
point1 point2
"f" "0.0,0.0"
"" ""
"" ""
"" ""
""
) ;_ end of command
) ;_ end of progn
) ;_ end of if

(if (or (equal blockname "a3") (equal blockname "A3") (equal blockname "a3slave"))
(progn
(setq point1 (CDR (ASSOC 10 curenty)))
(SETQ blockscale (CDR (ASSOC 41 curenty)))
(setq point1x (car point1))
(setq point1y (cadr point1))
(setq point1z (last point1))
(setq point2x (- point1x (* blockscale 407)))
(setq point2y (+ point1y (* blockscale 287)))
(setq point2z point1z)
(setq point2 (list point2x point2y point2z))
; HP5SI
; (command "-plot"
; "Y" ""
; "" "A3"
; "M" "L"
; "N" "W"
; point1 point2
; "F" "0.3,0.0"
; "Y" ""
; "Y" ""
; "N" "Y"
; "Y"
; ) ;_ end of command
; PDF
(command "_.-plot"
"y"
""
""
""
"m"
"L"
"N"
"W"
point1
point2
""
""
"Y"
""
"Y"
"Y"
filename
"Y"
"Y"
);_ end of command

(setq filenum (+ 1 filenum ))
(princ)
;_ end of command
) ;_ end of progn
) ;_ end of if

) ;_ end of progn
) ;_ end of if
(SETQ index (+ index 1))
(SETQ ename (SSNAME adset index))
) ;_ end of WHILE
(COMMAND "setvar" "osmode" osnapsetting)
(COMMAND "setvar" "FILEDIA" filediasetting )
) ;_ end of defun

Последний раз редактировалось Дмитрий Асташев, 01.09.2011 в 14:00.
Дмитрий Асташев вне форума  
 
Непрочитано 01.09.2011, 13:46
#7
SergAM243

инженерю чуть
 
Регистрация: 14.07.2008
Севастополь
Сообщений: 40
<phrase 1=


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Дмитрий Асташев, запомнить значение переменной filedia, дать ей значение ноль, затем после работы программы вернуть исходное значение.
У меня filedia остается в значении "0"
SergAM243 вне форума  
 
Автор темы   Непрочитано 01.09.2011, 13:58
#8
Дмитрий Асташев

päällikön suunnittelijat
 
Регистрация: 04.12.2010
Pietari, Venäjä
Сообщений: 63


Цитата:
Сообщение от SergAM243 Посмотреть сообщение
У меня filedia остается в значении "0"
Поправил.
Еще раз напомню, принтер надо указывать "DWG to PDF.pc3", с Adobe PDF не удасться обойти диалоговое окно.
Я еще имя файла получаю из штампа, кому интересно, пишите в личку.
Насчет рамок-форматок. Я делаю точку вставки блока рамки в месте нижнего правого угла штампа. От этой точки считаются координаты для задания области печати. У кого другие рамки - всегда можно легко поправить.

Последний раз редактировалось Дмитрий Асташев, 01.09.2011 в 14:04.
Дмитрий Асташев вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Filedia Возможно ли и каким именно образом обойти появление диалогового окна при работе программы на LISP?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу пример расчета инсоляции FINE Поиск литературы, чертежей, моделей и прочих материалов 266 25.10.2017 18:54