|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Цитата:
![]() |
|||
![]() |
|
||||
электрик Регистрация: 11.03.2005
Киев
Сообщений: 157
|
Apelsinov
Я привел код програмы как пример и принцип использования стандартных функций акада. Моя прога (приведенная выше)настраивает вид стандартных выносок под мои потребности. Сама соль заключается в том что тебе нужно, наврядли моя прога (в полном объёме) тебе пригодится, всётаки специфика есть во всём. В принципе даже под стандартный лидер можно сделать любую свою оболочку (настройки и даже некоторые вычесления), при этом не придумавать свой объект или групировки и т.д.
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями... Выбор правильного инструмента - залог успеха в любом деле. |
|||
![]() |
|
||||
Регистрация: 18.10.2004
Odessa
Сообщений: 226
![]() |
Может и не совсем по теме, есть интересная примочка "POS", Вл. Колосова (http://dwg.ru/dwl/74), для простановки позиций в виде блока с возможностью редактирования без использования редактора блоков.
__________________
Труд создал человека, а человек - трудности ... |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
vk
Нет, желание не исчезло. Писать, конечно, буду свое. Вариант leader+block понравился больше всего. Автоматизация самих значений выносок по типу как у Лентяя (хотя использование расширенных данных как-то настораживает, потому как не видно их невооруженным глазом, нужны инструменты для задания и чтения...не знаю...но попробую). Часть кода уже есть, просто не хочется изобретать велосипедов. Пришлете - буду благодарен. |
|||
![]() |
|
||||
CAD Operator Регистрация: 01.11.2005
Samara-Gorodok
Сообщений: 389
|
Посмотрел я на вас уманов - впечатляет!
У меня все проще... СПДС мне не понравился по обьективным причинам, поетому я решил создат универсальную выноску в виде динамического блока!!! :twisted: Приложенный файлик все иллюстрирует!!! Сразу предупреждаю я его еще эдитить буду... Выноска разрабатывалась применительно к строительству... Кроме самой выноски там много чего еще интересного :evil: [ATTACH]1131997708.dwg[/ATTACH] |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
|
|||
![]() |
|
||||
Регистрация: 19.04.2006
Сообщений: 7
|
Закинул предыдущий код в файл getxdt.lsp, перед всеми defun поставил c:, сделал кнопку где написал ^C^C^P(if (not C:getxdt) (load "getxdt")) getxdt
Выбираю примитив (отрезок) давлю кнопку, в командной строке пишется GETXDT ; error: too few arguments. И вобще, что есть расширенные свойства и как их редактировать? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
^C^C^P(if (not (c:COTUPD)) (load "getxdt.lsp"));cotupd;
ЯТД, так.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Конструктор Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
![]() |
Так вот вопрос к обществу:
Кто и как делает выноски. Какими инструментами пользуется. Какие есть для этого программы? (про СПДС не надо - это понятно) Может у кого есть наработки? Я пользуюсь прогой Александра Косенко (на основе Г.Поспелова). Хотя там есть следующие глюки: 1-при выборе флага S=...* и в выпадающем списке "Ничего" отрисовки выноски не происходит; 2-при выборе флага "Введите текст" и также "Ничего" происходит отрисовка выноски S=3*. А так на мой взгляд просто и удобно. Вот этот лисп: *********************************************************************** ; stroka.lsp v.1.3 * ; & stroka.dcl * ; Copyright by Sash (Александр Косенко) * ; Для AutoCAD r.15 * ; 03 ноября 2002 г * ; E-Mail: kosap@yanex.ru * ;*********************************************************************** ; На базе программы stroka.lsp ; Модифицировано: 1. шрифт 7 по умолчанию. ; 2. Убрал из s=4мм* слово мм, вроде как не по ЕСКД. ; 3. По умолчанию выберается первый вариант. ; 4. Введены значения по умолчанию - с ними удобнее. ; 5. Пофиксил глюк связанный с простановкой стрелки после ее снятия - ; снимайте теперь на здоровье хоть 2 раза - хоть 20 :) ; 6. Добавил выбор шрифта из раскрывающегося списка - никаких левых шрифтов. ; Либо редактируйте список shrift, а лучше используйте шрифт gosta_w.shx. ; Дорос до v1.1. ; 7. Заметил баг при задании координаты напрвления совпадающей со второй точкой. ; не обрабатывается данное исключение. Взял и исправил. ; 8. v1.2. Избавился от указания направления. Позиции проставляются на слое ; Dim его вы можете заменить на любой используемый вами для этих целей ; 9. Работают привязки, причем корректно. ;10. Добавил возможность выбора начала выноски. v.1.3. ; ;*********************************************************************** ; stroka.lsp * ; & stroka.dcl * ; Copyright by PG (Genchik Pospelov) * ; Для AutoCAD r.14-15 * ; 17.июня 1999 г * ; E-Mail: gepos@mail.ru * ;*********************************************************************** ;;;-------------> HELP <------------------------------------------------ (defun ab_prog (ab_progr /) (if (not (new_dialog "ab_text" DCL_ID)) (exit)) (start_list "ab_progr") (mapcar 'add_list ab_progr) (end_list) (action_tile "accept" "(done_dialog)") (start_dialog) ) ;;;-------------> WORKING FUNCTION <------------------------------------ (defun w_str ( n stxt sz_t / a_txt p_txt pt1 pt2 pt3 sze) (cond ((or (= n 1) (= n 2)) (setq a_txt stxt)) ((or (= n 3) (= n 4)) (setq a_txt (strcat "S=" stxt "*"))) ) (print n) (setq pt1 (getpoint "\n Начальная точка ") pt2 (getpoint pt1 "\n Вторая точка ") ;;; pt3 (getpoint pt2 "\n Направление ") sze (*(strlen a_txt) sz_t 0.7) ) (if (= strelka 0) (command "_.DONUT" 0 1 pt1 "")) (if (>= (car pt2)(car pt1)) (setq pt3 (list (+(car pt2) sze 2.0)(cadr pt2)) p_txt(list (+(car pt2) 1.8)(+(cadr pt2) 1.5)) ) ) (if (< (car pt3)(car pt2)) (setq pt3 (list (-(car pt2) sze 2.0)(cadr pt2)) p_txt(list (+(car pt3) 1.8)(+(cadr pt2) 1.0)) ) ) (if (or(= n 1)(= n 3)) (COMMAND "_.PLINE" pt1 pt2 pt3 (command)) ) (if (or(= n 2)(= n 4)) (progn (setq sze (polar pt1 (angle pt1 pt2) 3.0)) (COMMAND "_.PLINE" pt1 "w" 0.0 1.5 sze "w" 0.0 0.0 pt2 pt3 (command)) ) ) (COMMAND "_.TEXT" p_txt sz_t 0 a_txt) ) ;;;-------------> MAIN FUNCTION <--------------------------------------- (defun c:stroka2(/ $valueы s1txt s2txt a_sel sz_txt help_pr info_pr old_snap strelka shrift ) (setq old_snap (getvar "osmode") clar (getvar "CLAYER") oscor (getvar "OSNAPCOORD") SshNeedLay "Надписи" ; Вместо "Надписи" введите нужный Вам слой ) (if(null(tblsearch "LAYER" SshNeedLay))(command"_LAYER" "_N" SshNeedLay "c" "Red" SshNeedLay "LW" "0.25" SshNeedLay "")) (setvar "osmode" 0) (setvar "cmdecho" 0) (setvar "CLAYER" SshNeedLay) (setvar "OSNAPCOORD" 1) (setq help_pr (list " - Программа построения линии выноски - " " " " Ремейк программы Геннадия Е. Поспелова stroka" " " " Введите текст в нужную графу," " выберете требуемую высоту шрифта и " " начало выноски. " " " ) info_pr (list " - Программа построения линии выноски - " " Ремейк программы Геннадия Е. Поспелова stroka" " " " Программа предназначена для свободного распространения " " в конструкторской и технологической среде. " " Авторы снимают с себя ответственность за использование " " программы. " " " " Автор - конструктор СКБ \"Автоагрегат\" Косенко Александр " " 03 ноября 2002г." " Copyright © \"Sash Ltd\" " " mailto:kosap@rambler.ru " ) ) ;; open window functions (setq DCL_ID (load_dialog "stroka.dcl")) (if (not (new_dialog "stxt" dcl_id)) (exit)) ;; Set up some defaults. (setq s1txt "1" s2txt "3" strelka "0" sz_txt (rtos 7 2 2) a_sel 1 shrift '("7" "1.8" "2.5" "3.5" "5" "10" "14" "20" "28" "40") nachalo '("Точку" "Стрелку" "Ничего" "") ) (set_tile "s1txt" s1txt) (set_tile "s2txt" s2txt) (set_tile "sz_txt" sz_txt) (set_tile "on_s1txt" "1") (set_tile "on_s2txt" "0") (start_list "szpop_txt") (mapcar 'add_list shrift) (end_list) (mode_tile "s1txt" 2) (mode_tile "s2txt" 1) (start_list "strelka") (mapcar 'add_list nachalo) (end_list) (action_tile "s1txt" "(setq s1txt $value)") (action_tile "s2txt" "(setq s2txt $value)") (action_tile "szpop_txt" "(setq sz_txt (nth (atoi $value) shrift))") (action_tile "strelka" "(setq strelka (nth (atoi $value) nachalo))") (action_tile "on_s1txt" "(progn (mode_tile \"s1txt\" 0)(mode_tile \"s1txt\" 2) (mode_tile \"s2txt\" 1)(setq a_sel 1))") (action_tile "on_s2txt" "(progn (mode_tile \"s2txt\" 0)(mode_tile \"s2txt\" 2) (mode_tile \"s1txt\" 1)(setq a_sel 3))") (action_tile "accept" "(done_dialog 1)") (action_tile "cancel" "(done_dialog 0)") (action_tile "help" "(ab_prog help_pr)") (action_tile "info" "(ab_prog info_pr)") (setq what_next (start_dialog) sz_txt (atof sz_txt) ) (cond ((= strelka "0") (setq strelka 0)) ((= strelka "Стрелку") (setq strelka 1)) ((= strelka "Ничего") (setq strelka 2)) ((= strelka "") (setq strelka 2)) ) ;;;;end cond (setq a_sel (+ a_sel strelka) ) ; При правильном вводе и нажатии кнопки "Ok" - вызов функции (if (= 1 what_next) (cond ((<= a_sel 2)(w_str a_sel s1txt sz_txt )) ((> a_sel 2) (w_str a_sel s2txt sz_txt )) ) ) (unload_dialog dcl_id) ;; unload (setvar "cmdecho" 1) ;; end-return operation (setvar "osmode" old_snap) (setvar "CLAYER" clar) (setvar "OSNAPCOORD" oscor) (princ) ) ;;;---------> THE END <------------------------------------------[/color][/size=2] А вот файл stroka.dcl: [size=2][color=blue]//-------------------------------------------------------------- //-------------------------------------------------------------- stxt : dialog { label = "Строка текста"; : row { : column { : radio_button { label = "Введите текст: "; fixed_width=true; key = "on_s1txt"; } : radio_button { label ="S= ... *"; fixed_width=true; key = "on_s2txt"; } } : column { : edit_box { key = "s1txt"; fixed_width=true; edit_width = 20; } : edit_box { key = "s2txt"; fixed_width=true; edit_width = 4; } } } spacer_1; : popup_list { label = "Высота текста: "; key = "szpop_txt"; list=""; edit_width = 5; fixed_width=true; } // : edit_box { // label = "Высота текста: "; // mnemonic = "В"; // key = "sz_txt"; // fixed_width=true; // edit_width = 20; // } spacer_1; // : toggle { // label = "Стрелка в начале"; // key = "strelka"; // } : popup_list { label = "Рисовать в начале: "; key = "strelka"; } ok_cancel_help_info; } //*************************************************************** //------------------------------------------------------------------------ ab_text : dialog { label = "О программе"; : list_box { key = "ab_progr"; height = true;//16; width = 58; } ok_only; } //-----------> THE END <-------------------------------------------------- Если кто-то доработает прогу,-буду очень рад,а то писал Косенко а ответа не дождался.
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо И не надо делать удивленных движений руками. Последний раз редактировалось getr, 08.02.2008 в 15:41. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
забыл я про эту тему...а зря, программку то я написал, и активно ею пользуюсь, да и не только я.
воть: Код:
__________________
apel.fas |
|||
![]() |
|
||||
Конструктор Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
![]() |
-->Apelsinov
А как запустить Вашу программу?
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо И не надо делать удивленных движений руками. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Цитата:
1. Выкачиваете файл по указанному адресу (в моей форумной подписи) http://autolisp.ru/dwlsp/16 с пользовательскими функциями. 2. Загружаете его в акад: _.appload или лисповое (load "имя файла") 3. Запускаете приведенную функцию. Запустить ее можно, поместив это выражение на кнопку или toolpalettes (последнее - самое удобное, по-моему). Можно завернуть его в собственную функцию для появления соотв. команды в акаде, например так: Код:
__________________
apel.fas |
|||
![]() |
|
||||
Специалист САПР Регистрация: 09.12.2005
Сообщений: 95
![]() |
такой вопрос, я скачала cd-setup.rar, успешно извлекла файлы, делаю все по инструкции, загружаю Cd-setup.vlx мне пишет успешно загружено, я нажимаю закрыть и в командной строке написано "приложений "кадет" не найдено", далее выгружаю autocad и заново загружаю, далее никаких менюшек дополнительных не появилось, а как работать то?
__________________
С уважением Наталья |
|||
![]() |