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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вставка блока с помощью иконки

Вставка блока с помощью иконки

Ответ
Поиск в этой теме
Непрочитано 26.10.2004, 11:34
Вставка блока с помощью иконки
RomanS
 
Сообщений: n/a

Подскажите пожалуйста, как прописать в строке макросов (Button user defined) команду, чтобы блок с именем.dwg вставить в чертеж, а не через insert\block
Зарание Благодарен
Просмотров: 15132
 
Непрочитано 01.04.2010, 14:04
#41
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,924
<phrase 1=


Цитата:
Сообщение от whisper_23 Посмотреть сообщение
много места занимает на экране.
сделай сворачивающимся
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 02.04.2010, 08:49
#42
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


klinkerПопробуй Lisp-ом:
^C^C(vl-cmdf "_.insert" "C:/temp.dwg")

Последний раз редактировалось E-degtyarev, 02.04.2010 в 08:58.
E-degtyarev вне форума  
 
Непрочитано 02.04.2010, 08:59
#43
whisper_23

конструктор
 
Регистрация: 31.01.2008
г. Новоалтайск
Сообщений: 102
<phrase 1=


А где тут Lisp ?
whisper_23 вне форума  
 
Непрочитано 02.04.2010, 09:13
#44
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Когда указываешь путь при вставке блока, то акад берет чертеж из этого пути и создает из него блок с именем по названию файла. То есть дин. блок будет внутри этого блока. Как выход - можно потом взорвать вставленный блок (если, конечно, только один блок в файле).
Do$ вне форума  
 
Непрочитано 02.04.2010, 09:18
#45
whisper_23

конструктор
 
Регистрация: 31.01.2008
г. Новоалтайск
Сообщений: 102
<phrase 1=


Цитата:
Сообщение от Do$ Посмотреть сообщение
Когда указываешь путь при вставке блока, то акад берет чертеж из этого пути и создает из него блок с именем по названию файла. То есть дин. блок будет внутри этого блока. Как выход - можно потом взорвать вставленный блок (если, конечно, только один блок в файле).
я это уже понял.
как сделать просто вставку блока а не вставку файла с блоком?
whisper_23 вне форума  
 
Непрочитано 02.04.2010, 09:44
#46
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


В упрощенном варианте как-то так:

Код:
[Выделить все]
(defun ins-dyn-blk (path / ins old_var)
  (vl-load-com)
  (setq old_var
  (list (getvar "cmdecho")
        (getvar "attdia")
        (getvar "attreq")
        (getvar "insunits")
  ) ;_ end of list
  ) ;_ end of setq
  (mapcar '(lambda (var) (setvar var 0))
   (list "cmdecho" "attdia" "attreq" "insunits")
  ) ;_ end of mapcar
  (if
    (vl-cmdf
      "_.insert"
      path
      pause
      1
      ""
      0
    ) ;_ end of vl-cmdf
     (progn
       (vla-explode (setq ins (vlax-ename->vla-object (entlast))))
       (vla-delete ins)
     ) ;_ end of progn
  ) ;_ end of if
  (mapcar 'setvar
   (list "cmdecho" "attdia" "attreq" "insunits")
   old_var
  ) ;_ end of mapcar
  (princ)
) ;_ end of defun
;;;Пример для кнопки: ^C^C(load "ins-dyn-blk.lsp");(ins-dyn-blk "C:\\temp.dwg");
Вложения
Тип файла: lsp ins-dyn-blk.lsp (822 байт, 59 просмотров)
Do$ вне форума  
 
Непрочитано 02.04.2010, 10:27
#47
whisper_23

конструктор
 
Регистрация: 31.01.2008
г. Новоалтайск
Сообщений: 102
<phrase 1=


Я должен загрузить этот Lisp и указать в макросе кнопки
^C^C(load "ins-dyn-blk.lsp");(ins-dyn-blk "C:\\temp.dwg")
не так ?
whisper_23 вне форума  
 
Непрочитано 02.04.2010, 10:39
#48
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Достаточно поместить файл ins-dyn-blk.lsp во вспомогательную папку AutoCAD и повесить на кнопку:
Код:
[Выделить все]
^C^C(load "ins-dyn-blk.lsp");(ins-dyn-blk "C:\\temp.dwg");
Вот это выражение производит загрузку лисп-файла из папки поддержки:
Код:
[Выделить все]
(load "ins-dyn-blk.lsp")
Если лисп планируется как-то иначе загружать, то на кнопку вешать:
Код:
[Выделить все]
^C^C(ins-dyn-blk "C:\\temp.dwg");
Если все что я написал не понятно, читать тут: http://dwg.ru/art/8
Do$ вне форума  
 
Непрочитано 02.04.2010, 10:56
#49
whisper_23

конструктор
 
Регистрация: 31.01.2008
г. Новоалтайск
Сообщений: 102
<phrase 1=


спасибо, всё работает
только пришлось написать не C:\\temp.dwg а C:/temp.dwg уж не знаю почему, но по вашему не работало
whisper_23 вне форума  
 
Непрочитано 02.04.2010, 11:28
#50
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от whisper_23 Посмотреть сообщение
спасибо, всё работает
только пришлось написать не C:\\temp.dwg а C:/temp.dwg уж не знаю почему, но по вашему не работало
На здоровье
Да не верю что-то, чтоб не работало... принцип постановки слешей такой: если в строке пути стоит обратный слеш (\) то он заменяется на два обратных (\\), соответственно, если таких слеша два (сетевая папка, например), то ставится вместо двух четыре. Прямой слеш (/) не заменяется.
Пример 1 (локальная папка):
Код:
[Выделить все]
"C:\Documents and Settings\<username>\Мои документы\Проектирование\Материалы\AutoCAD\Чертежи\Дин.блоки\эл.перемычки(Shoorup).dwg"
--->"C:\\Documents and Settings\\<username>\\Мои документы\\Проектирование\\Материалы\\AutoCAD\\Чертежи\\Дин.блоки\\эл.перемычки(Shoorup).dwg"
Пример 2 (сетевая папка):
Код:
[Выделить все]
\\<foldername>\All\<username>\Проектирование\Шаблон\Blocks Library\эл.перемычки(Shoorup).dwg
--->\\\\<foldername>\\All\\<username>\\Проектирование\\Шаблон\\Blocks Library\\эл.перемычки(Shoorup).dwg
Ну раз работает, то, может, и не надо трогать
Do$ вне форума  
 
Непрочитано 02.04.2010, 11:33
#51
whisper_23

конструктор
 
Регистрация: 31.01.2008
г. Новоалтайск
Сообщений: 102
<phrase 1=


Ладно, разберемся...
спасибо ещё раз.
думаю тему можно закрыть.
whisper_23 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вставка блока с помощью иконки

Реклама i