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

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

Autolisp вставка внешней ссылки

Ответ
Поиск в этой теме
Непрочитано 22.07.2015, 20:58 #1
Autolisp вставка внешней ссылки
protorgovec
 
газо- нефтепереработка
 
Уфа
Регистрация: 22.07.2015
Сообщений: 98

Добрый вечер форумчане. Надеюсь на вашу помощь. Хоть и работаю в AutoCad-е еще с далекого 2003 года, но только пришел к мысли хоть немного автоматизировать свою работу. Решил начать с простого. При помощи программы нарисовать модель выкинуть ее в отдельный файл и вставить внешней ссылкой обратно. Примерно получилось так:
Код:
[Выделить все]
 (command "_.cylinder" "0,0,-10" 1000 10 )
(setq 1cyl (entlast))
(command "_.cylinder" "0,0,-10" 940 10 )
(setq 2cyl (entlast))
(command "_.subtract" 1cyl "" 2cyl "")
(setq 1kolco (entlast))
(command "_.-wblock" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" 1kolco "0,0,0" 1kolco"")
(command "_.-insert" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" "0,0,0" "" "" "")
и вот тут у меня случилась закавырка. Данная команда вставляет блок. А мне надо что бы именно как внешнюю ссылку (xref). Пролистал всего Полещука, но ничего не нашел. Вот нашел форум ваш, здесь посмотрел, но нужного почему то не нашел. Не могли бы вы мне подсказать как поменять команду, что бы вставилась именно внешняя ссылка. Просьба, если можно без функций vl- если конечно это возможно. Для меня это еще пока вообще дремучий лес. Я еще даже не стажер в программировании Заранее благодарен!
Просмотров: 3461
 
Непрочитано 22.07.2015, 21:50
#2
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


вместо
Цитата:
Сообщение от protorgovec Посмотреть сообщение
(command "_.-insert" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" "0,0,0" "" "" "")
(command "_.xref" "" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" "0,0,0" "" "" "")
roaa вне форума  
 
Автор темы   Непрочитано 23.07.2015, 08:33
#3
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от roaa Посмотреть сообщение
вместо
(command "_.xref" "" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" "0,0,0" "" "" "")
спасибо, сейчас попробую.

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от protorgovec Посмотреть сообщение
(command "_.xref" "" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" "0,0,0" "" "" "")
Спасибо! Все сработало. А я думал что нельзя перескакивать команды, ведь что бы вызвать вставить это команда insert, пробовал "_.-insert" "_.xref" почему то не работало, теперь понял. Спасибо!

----- добавлено через ~4 ч. -----
Цитата:
Сообщение от roaa Посмотреть сообщение
(command "_.xref" "" "D:\\Дима\\01-01.00.001-Кольцо опорное.dwg" "0,0,0" "" "" "")
Могу ли я в продолжении этой темы у вас спросить? Я вставил объект именно внешней ссылкой. Теперь у меня необходимость открыть ее. Но на команду _xopen он просит указать на объект который надо открыть. А мне бы это сделать программно. Попытался после вставки загнать ее в переменную:
Код:
[Выделить все]
 (command "_.-xref" "" "D:\\Дима\\01-01.00.002-Косынка.dwg" "0,0,0" "" "" "")
(setq 4kosinka (entlast))
(setq Ch2 (command "_xopen" 4kosinka ""))
но он ее не принимает. Попытался задать путь к данной ссылке:
Код:
[Выделить все]
 (command "_.-xref" "" "D:\\Дима\\01-01.00.002-Косынка.dwg" "0,0,0" "" "" "")
(setq Ch2 (command "_xopen" "D:\\Дима\\01-01.00.002-Косынка.dwg"))
но он ее тоже не воспринимает и просит указать мышкой по объекту.
protorgovec вне форума  
 
Непрочитано 23.07.2015, 14:56
#4
Кулик Алексей aka kpblc
Moderator

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


protorgovec, ты снчала узнай, что возвращает command
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.07.2015, 19:18
#5
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ты снчала узнай, что возвращает command
в первом варианте он просто возвращает nil и просит Select objects т.е. выберете объект
во втором варианте возвращает (неверный выбор выделите один объект)
вот это возвращает.

----- добавлено через ~17 ч. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Все, что сказано - личное мнение.
Добрый день Алексей. У меня есть один вопрос. Нашел вашу статью по работе с неактивным документом. Возможно ли с помощью этого заставить программу не открывая файл, вносить изменения в сам примитив модели и составлять на модель чертеж. Причем модель в модели, чертеж во вкладке лист? Проставить все размеры, прописать все текстовые строки? Сохранить и закрыть? Или же при работе с неактивным документом возможности узкие?

Последний раз редактировалось protorgovec, 24.07.2015 в 14:25. Причина: не правильное постановление вопроса.
protorgovec вне форума  
 
Непрочитано 25.07.2015, 02:34
#6
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от protorgovec Посмотреть сообщение
Возможно ли с помощью этого заставить программу не открывая файл, вносить изменения в сам примитив модели и составлять на модель чертеж. Причем модель в модели, чертеж во вкладке лист? Проставить все размеры, прописать все текстовые строки? Сохранить и закрыть? Или же при работе с неактивным документом возможности узкие?
Не пробовали не работая, получать деньги? Что за детская вера в волшебника?
roaa вне форума  
 
Автор темы   Непрочитано 25.07.2015, 06:51
#7
protorgovec

газо- нефтепереработка
 
Регистрация: 22.07.2015
Уфа
Сообщений: 98


Цитата:
Сообщение от roaa Посмотреть сообщение
Не пробовали не работая, получать деньги? Что за детская вера в волшебника?
Вообще то часть своих денег я получаю не работая! Для уверенного пребывания в нашей жизни, нужно минимум 3 источника дохода, и минимум один из них пассивный! Это слова одного из богатейших людей нашей планеты. С одним источником дохода тяжко вам придется. Это для вас такой доход сказка, а для меня уже давно реальность. А что касается моего вопроса, Я думаю прежде чем получать такое автоматизирование, нужно приложить немало своих мозгов и усилий. Я просто уточнить хотел возможно это или нет. Что бы понять стоит мне в это углубляться или нужен совсем иной подход.
protorgovec вне форума  
 
Непрочитано 30.07.2015, 23:13
#8
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от protorgovec Посмотреть сообщение
Могу ли я в продолжении этой темы у вас спросить? Я вставил объект именно внешней ссылкой. Теперь у меня необходимость открыть ее. Но на команду _xopen он просит указать на объект который надо открыть. А мне бы это сделать программно. Попытался после вставки загнать ее в переменную:
Если еще актуально, то открыть программно внешнюю ссылку можно примерно так, предварительно ее выделив (без проверок, просто как направление мысли):
Код:
[Выделить все]
 (setq ss (ssadd))
(command "_.-xref" "" "D:\\Дима\\01-01.00.002-Косынка.dwg" "0,0,0" "" "" "")
(ssadd (entlast) ss)
(sssetfirst nil ss)
(command "_xopen")
Подробнее о подобном (о проблемах программной работы с блоками и вн.ссылками) можно почитать здесь: Ускорить вход/выход из режима редактирования блока
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Autolisp вставка внешней ссылки

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программное переименование внешней ссылки. Yura Agafonov Программирование 2 01.09.2014 09:57
Вставка внешней ссылки в чертежи средствами AutoLisp или VBA kolya161 LISP 2 13.12.2013 19:40
При контекстном редактировании внешней ссылки не получается заморозить слой Mechwarrior AutoCAD 3 13.09.2013 16:18
VBA. Программная вставка внешней ссылки. Ошибка в A2012.. AlexV Программирование 29 04.09.2012 13:29