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

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

лисп для открытия *.dwg файла

Ответ
Поиск в этой теме
Непрочитано 21.06.2005, 08:24
лисп для открытия *.dwg файла
Александер
 
Регистрация: 15.06.2005
Сообщений: 184

такой вопросик: как на лиспе огранизовать открытие определенного файла *.dwg из строго определенного места (имя и путь указываем в програмке).
Просмотров: 8818
 
Автор темы   Непрочитано 22.06.2005, 13:26
#21
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


выдает ошибку файл не найден!
Александер вне форума  
 
Автор темы   Непрочитано 22.06.2005, 13:32
#22
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


может сделал что не так?
создал файл *.lsp
в нем написал:

(defun demo (file)
(cond ((not (setq file (findfile file))) (princ "\nFile not found!"))
((zerop (getvar "SDI")) (vla-Open (vla-get-Documents (vlax-get-acad-object)) file))
((princ "\nSDI Mode!"))
)
(princ)
)
(demo "C:/A3.dwg")
хочу открыть файл А3.dwg который ледит на диске С.
Александер вне форума  
 
Непрочитано 22.06.2005, 13:36
#23
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Александер
(demo "C:/A3.dwg")
хочу открыть файл А3.dwg который ледит на диске С.
99% - не совпадает кодировка имени файла рус./лат.
Alaspher вне форума  
 
Автор темы   Непрочитано 22.06.2005, 13:50
#24
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


для полной уверенности обозвал файл просто 3.dwg
теперь выдает ошибку:
Команда:
Error:no function definition: VLAX-GET-ACAD-OBJECT_color
Цвет объектов по умолчанию <ПОСЛОЮ>:
Команда: _layer
Текущий слой: "0"
Задайте опцию [?/Создать/Установить/Новый/Вкл/Откл/Цвет/Тип линий/вЕс
линий/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация]: _s
Имя слоя для установки текущим или <выбрать объект>: Задайте опцию
[?/Создать/Установить/Новый/Вкл/Откл/Цвет/Тип линий/вЕс
линий/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация]:
Команда: ; ошибка: В функции *error* возникла ошибкаНастройка переменной
AutoCAD отвергнута: "CMDECHO" nil
Команда:
Команда:
Error:no function definition: VLAX-GET-ACAD-OBJECT_color
Цвет объектов по умолчанию <ПОСЛОЮ>:
Команда: _layer
Текущий слой: "0"
Задайте опцию [?/Создать/Установить/Новый/Вкл/Откл/Цвет/Тип линий/вЕс
линий/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация]: _s
Имя слоя для установки текущим или <выбрать объект>: Задайте опцию
[?/Создать/Установить/Новый/Вкл/Откл/Цвет/Тип линий/вЕс
линий/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация]:
Команда: ; ошибка: В функции *error* возникла ошибкаНастройка переменной
AutoCAD отвергнута: "CMDECHO" nil
Команда:
Команда:


ошибка выглядит также как и с предидущими вариантами программ.
в чем может быть дело?
Александер вне форума  
 
Автор темы   Непрочитано 22.06.2005, 14:06
#25
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


ВСЕ СПАСИБО БОЛЬШОЕ!!!!!
разобрался в вашу программку надо было только одну строчку дописать
(vl-load-com)
и ВСЕ!!!!
прекрасно работает, НО
после открытия файла возвращается в окно ранее открытого файла, можно сделать так чтобы после открытия на экране отображалось окно с открываемым файлом?
Александер вне форума  
 
Непрочитано 22.06.2005, 14:29
#26
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Александер
после открытия файла возвращается в окно ранее открытого файла, можно сделать так чтобы после открытия на экране отображалось окно с открываемым файлом?
Можно:
Код:
[Выделить все]
 (defun demo (file)
  (cond ((not (setq file (findfile file))) (princ "\nFile not found!"))
        ((zerop (getvar "SDI"))
         (vla-Activate (vla-Open (vla-get-Documents (vlax-get-acad-object)) file))
        )
        ((princ "\nSDI Mode!"))
  )
  (princ)
)
но в том файле, из которого был сделан вызов, останется незавершённая функция, которая завершится только при возвращении в этот документ.
Alaspher вне форума  
 
Автор темы   Непрочитано 22.06.2005, 14:29
#27
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


и еще проблемка с указанием пути - файл на сервере должен находиться. примерно так:
\\server\...\...\...\имяфайла.dwg
как правильно указать такой путь?
Александер вне форума  
 
Непрочитано 22.06.2005, 14:36
#28
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Александер
и еще проблемка с указанием пути - файл на сервере должен находиться. примерно так:
\\server\...\...\...\имяфайла.dwg
как правильно указать такой путь?
//server/.../.../.../имяфайла.dwg
Alaspher вне форума  
 
Автор темы   Непрочитано 22.06.2005, 16:39
#29
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


с путями разобрался 8)
новая проблемка
мое приложение запускается сразу как только я его добовляю.
а надо сначала его загрузить, так чтобы оно выполнялось только при нажатии спец. кнопки.
А сечас получается так:
добовляю приложение - а оно сразу выполняется, а когда жму на спец. нопку - выдает ошибку что команда неизвестна.
Александер вне форума  
 
Автор темы   Непрочитано 22.06.2005, 16:42
#30
Александер


 
Регистрация: 15.06.2005
Сообщений: 184


да кстати файл открываю еще проще напишу может еще кому сгодится:
(vl-load-com)
(command "vbastmt" "AcadApplication.Documents.Open \"//server/Стандарт/M100_A3.dwg\"")
файл нах-ся на сервере...
все работает и активным становится открываемый файл :P
Александер вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > лисп для открытия *.dwg файла

Размещение рекламы