Добавлю, что лежать этот ХХХ.lsp должен в папке, к которой прописан путь (в Настройка -- > "Путь доступа к вспомогательным файлам"). Либо же ^C^C^P(if (not c:XXX)(load "Полный путь/XXX.lsp") );^PXXX;
Ну тогда и я, не добавлю, а заострю внимание. В LISP-е при написании пути используется, не как везде принято, один слэш (\), а либо один обратный (/), либо два обычных (\\)
пробовал прописать макрос, создал иконку, но не работает. видимо где то не доработал в прописании. буду еще пробовать. кстати лисп оказался непричем(всвязи с переустановкой автокада. причина была в залипании клавиши CTRL. узнал об этом, когда вышел из автокада и при запуске Word выскочило сообщение: нажат Ctrl. тут на форуме уже жаловались что не работает ESC. так это из этой же оперы.Пользуясь случаем скажу пропанель задач(Alexandr-GR должен помнить): победил ее зависание следующим образом: переместил ее вправо на экране, установив в настройках тип-всплывающая,ту линейку инструментов что была справа скинул вниз на линейку(орто, привязки) попутно убрал линейку слеваи в итоге получил чистый по ширине экран(не считая 5мм прокрутки справа).
А размер текста и самой выносной линии изменить как-то можно? А то у меня координаты на половину чертежа получаются...
Qvinto: Это избавит вас от рутинной и суетливой работы по ручной загрузке лиспов. Сhehoff: мы не ищем легких путей!.
Код: (defun c:geo_z_leader (/ koord z) (vl-load-com) (while (and (setq koord (getpoint "\nТочка <Выход>")) ) (setq z (strcat "Z=" (rtos (caddr koord) 2 ) ) ) (VL-cmdf "_leader" "none" koord pause "" z "") ) ) (princ "Вызов фукции: geo_z_leader")
У меня есть на VBA под автокад программа (называется Vinoska). Делает различные выноски, координаты и высоту в том числе. Привязка к объектам осуществляется в соответствии с включенными пользователем в текущий момент привязками. Вот окно программы (в принципе тут понятно какие выноски она может чертить): Скачать можно здесь! Там общий пакет программ с инструкцией по установке и работе с ними. Ну, а выглядит это всё примерно так (скрин со старой версии, текущая версия ВСЕГДА пишет 3 знака после запятой, если это не отклонения от проекта (там целые числа мм. или см.)):
borik, Доброго времени суток! подскажите, что подправить в лиспе, чтобы координаты в выноске выводились в последовательности xyz, а не yxz? Заранее благодарен
stormok, Да простит меня автор этого лиспа... Код: (defun c:geo_koord_mleader (/ pod_z koord xyz) (initget "Да Нет Lf Ytn _ Y N Y N") (setq pod_z (getkword "\nПодписывать Z [Да/Нет] <Нет>? : ") ) (while (and (setq koord (getpoint "\nТочка <Выход>")) ) (setq ; xyz (strcat "Y=" (rtos (nth 0 koord) 2 3)"\nX=" (rtos (nth 1 koord) 2 3)(if xyz (strcat "X=" (rtos (nth 1 koord) 2 3)"\nY=" (rtos (nth 0 koord) 2 3)(if (= pod_z "Y") (strcat "\nZ=" (rtos (nth 2 koord) 2 3)) "" )) ) (VL-cmdf "_mleader" koord pause xyz "") ) ) (princ "Вызов фукции: geo_koord_mleader")
Уважаемый Борик) У меня к Вам еще одна просьба, не могли бы подправить тот лисп, который вы мне тогда написали. Нужно, чтобы он округлял координаты до 2-х знаков после запятой, заранее благодарен. нашел в инете такой лисп, но он как то криво рисует саму выноску, т.е. "х" и "у" они над полкой, а нужно чтобы "х" был вверху, а "у" снизу. Код: (vl-load-com) (defun c:geo-coord (/ *error* _kpblc-eval-value-round adoc pt pt2 dimzin ans) (defun _kpblc-eval-value-round (value to) ;| ;; http://forum.dwg.ru/showthread.php?p=301275 * Выполняет округление числа до указанной точности * Примеры вызова: (_kpblc-eval-value-round 16.365 0.01) ; 16.37 |; (if (zerop to) value (* (atoi (rtos (/ (float value) to) 2 0)) to) ) ;_ end of if ) ;_ end of defun (defun *error* (msg) (vla-endundomark adoc) (princ msg) (princ) ) ;_ end of defun (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))) ) ;_ end of vla-startundomark (setq dimzin (getvar "dimzin")) (setvar "dimzin" 0) (if (= (type (setq ans (vl-catch-all-apply (function (lambda (/ res) (initget "Да Нет Yes No _ Y N Y N") (cond ((= (type (setq res (getkword "\nПодписывать Z [Да/Нет] <Нет> ? : " ) ;_ end of getkword ) ;_ end of setq ) ;_ end of type 'str ) ;_ end of = res ) (t "N") ) ;_ end of cond ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'str ) ;_ end of = (progn (while (and (= (type (setq pt (vl-catch-all-apply (function (lambda () (getpoint "\nУкажите подписываемую точку <Отмена> : " ) ;_ end of getpoint ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'list ) ;_ end of = (= (type (setq pt2 (vl-catch-all-apply (function (lambda () (getpoint pt "\nТочка размещения выноски <Отмена> : " ) ;_ end of getpoint ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'list ) ;_ end of = ) ;_ end of and (vl-cmdf "_.leader" "_none" pt "_none" pt2 "" (strcat "{\\LX=" (rtos (_kpblc-eval-value-round (cadr pt) 0.01) 2 2) "}" (if (= ans "Y") "{\\L" "") "\nY=" (rtos (_kpblc-eval-value-round (car pt) 0.01) 2 2) (if (= ans "Y") "}" "") (if (= ans "Y") (strcat "\nZ=" (rtos (_kpblc-eval-value-round (caddr pt) 0.01) 2 2) ) ;_ end of strcat "" ) ;_ end of if ) ;_ end of strcat "" ) ;_ end of vl-cmdf ) ;_ end of while ) ;_ end of progn ) ;_ end of if (vla-endundomark adoc) ) ;_ end of defun
Не я его написал, я его слегка подправил... найди отличия... Код: (defun c:geo_koord_mleader (/ pod_z koord xyz) (initget "Да Нет Lf Ytn _ Y N Y N") (setq pod_z (getkword "\nПодписывать Z [Да/Нет] <Нет>? : ") ) (while (and (setq koord (getpoint "\nТочка <Выход>")) ) (setq ; xyz (strcat "Y=" (rtos (nth 0 koord) 2 3)"\nX=" (rtos (nth 1 koord) 2 3)(if ;xyz (strcat "X=" (rtos (nth 1 koord) 2 3)"\nY=" (rtos (nth 0 koord) 2 3)(if xyz (strcat "X=" (rtos (nth 1 koord) 2 2)"\nY=" (rtos (nth 0 koord) 2 2)(if (= pod_z "Y") ;(strcat "\nZ=" (rtos (nth 2 koord) 2 3)) (strcat "\nZ=" (rtos (nth 2 koord) 2 2)) "" )) ) (VL-cmdf "_mleader" koord pause xyz "") ) ) (princ "Вызов фукции: geo_koord_mleader")
Хотел написать вопрос :) Прочитал переписку и вопрос писать не надо! Спасибо огромное!!!! Особенно borik, --- Сообщения объединены, 13 дек 2013, Оригинальное время сообщения: 13 дек 2013 --- С поворотом выноски только не могу разобраться... Пока вручную и каждую! Подскажите хитрый ход...