|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
31.08.2019, 15:20 | #1 | |
LISP. Вычертить pline с заданными характеристиками.
Регистрация: 31.08.2019
Сообщений: 11
|
||
Просмотров: 4834
|
|
||||
Регистрация: 31.08.2019
Сообщений: 11
|
Вес линии
----- добавлено через ~2 мин. ----- что то подобное интересует (пример вставки блока) (defun C:блок ( / sp ) (setvar "CMDECHO" 0) (setq sp (getpoint "\nТочка вставки:")) (princ "\nУгол:") (command "_.color" "7") (command "_LAYER" "У" "блок" "") (command "_-insert" "блок.dwg" sp 1 1 0) (princ) (command "_LAYER" "У" "0" "") (command "_.color" "2") ) ----- добавлено через ~6 мин. ----- А вот с этим (вставка блока с поворотом) не получается вернуться в слой 0, остается слой по умолчанию блок1 (defun C:блок1 ( / sp NR tvt) (setq oldLayer (getvar "CLAYER")) (setq sblip (getvar "blipmode")) (setq scmde (getvar "cmdecho")) (setq sp (getpoint "\nТочка вставки реш ")) (setvar "blipmode" 0) (setvar "cmdecho" 0) (command "_.color" "7") (command "_LAYER" "У" "блок1" "") (command "_-insert" "блок1.dwg" sp 1 1 pause) (setvar "blipmode" sblip) (setvar "cmdecho" scmde) (setvar "CLAYER" oldLayer) (command "_LAYER" "У" "0" "") (command "_.color" "2") ) Последний раз редактировалось f1moa, 31.08.2019 в 19:18. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
это для надежности?) Первая строка устанавливает текущий слой уже.
CECOLOR CELTYPE и следите за областью видимости переменных: oldLayer, sblip, scmde являются глобальными, хотя им это совершенно не нужно, имхо. |
|||
|
||||
Регистрация: 31.08.2019
Сообщений: 11
|
(defun C:бл ( / sp NR tvt)
(setq sp (getpoint "\nТочка вставки реш ")) (command "_LWEIGHT" "0.15" "") (command "_linetype" "_s" "continuous" "") (command "_.color" "7") (command "_LAYER" "У" "блок" "") (command "_-insert" "блок" sp 1 1 pause) как дописать команду что бы значения (вес, цвет, слой) вернулись изначальные в автокаде, а не те которые стоят перед вставкой блока. ... (princ) (command "_LAYER" "У" "0" "") (command "_.color" "2") ) вот так не выходит |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
Сохраняете значение
.... Восстанавливаете значение в конце И пробуйте, пробуйте.. Вы не станок с ЧПУ дорогостоящий программируете - ошибаться можно и нужно, только учиться на этих ошибках и не повторять их снова) |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
Если нужно, чтобы блок встал на свой слой - вызовете в коде перед вставкой блока (_insert) установку нужного слоя (setvar "CLAYER" %Имя слоя для блока%). Поскольку команда Insert вставляет блок в текущий слой.
|
|||
|
||||
Регистрация: 08.12.2018
Сообщений: 164
|
|
|||
|
||||
Регистрация: 31.08.2019
Сообщений: 11
|
как я не старался ни чего и не выходит. при вставке блока без поворота
(command "_-insert" "имя блока.dwg" sp 1 1 0), все возвращается на своё место, а при вставке с подворотом (command "_-insert" "имя блока.dwg" sp 1 1 pause) остается. Так же и выходит с полилинией (defun C:имялинии ( / sp ) (command "_LAYER" "У" "имя линии" "") (command "_.color" "82") (command "_LWEIGHT" "0.3" "") (command "_linetype" "_s" "имя линии" "") (command "_.pline") (princ) (command "_LAYER" "У" "0" "") (command "_.color" "2") (command "_LWEIGHT" "0.15" "") ) ----- добавлено через ~4 мин. ----- набирая на клавиатуре имя команды хотелось вычертивать разные с характеристиками ( вес, тип, цвет и имя слоя) линии, а не меняя в ручную или рисовать через политру. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
1. Пользуйтесь тегами для оформления кода (следующая кнопка после кнопки с решеткой).
2. А вы уверены, что выполнение кода доходит до восстановления? Вставьте вывод какого то слова в комстроку через princ перед командами восстановления. 3. Еще раз - зачем использовать командные методы, где можно работать через системные переменные? |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Как в ActiveX выдернуть координаты полилинии? Как задавать атребуты блока через LISP? | wpww | LISP | 31 | 16.08.2016 14:17 |
Lisp. Вывод MTEXT с заданными параметрами. | kpectoff | LISP | 3 | 07.05.2014 12:22 |
LISP. MLINE по координатам PLINE | dreadnoult | LISP | 12 | 03.09.2013 02:03 |
Координаты точки пересечения line и pline (LISP) | paradoxvaha | LISP | 3 | 10.07.2007 13:04 |