|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Макрос для черчения линий с пользовательскими настройками
Регистрация: 10.04.2019
Сообщений: 47
|
||
Просмотров: 7124
|
|
||||
Цитата:
Т.е. в процессе черчения нужен выбор в диалоге другого типа линия или слоя или толщины цвета? Либо вычертить в заданном слое нужным цветом, толщиной и типом полилинию, отрезок или иное? Палитра самое то, какая разница где кнопка
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Все же начерти линию, настрой как надо и просто перетащи на палитру, может это оно?
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
|
|||
![]() |
|
||||
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Так-то да, но не все и не для всего их любят, эти палитры (многие - зря), и поэтому я подумал, что может, тут как раз такой случай. Может, mr.frai1992, например, хотел на горячую кнопку повесить или на алиасы настроить надо вдруг, поэтому я и решил дать такой вариант, тем более код уже такой был, я по сути исправил только имя файла и типа линии плюс выделил это дело в команду и удалил лишнего немного по мелочи. Ну и комментарии добавил. Много лет лежала программка без дела, подумал: авось, сгодится кому
![]() (КСТАТИ, исправил-таки не всё - тип линии в теле кода не прописал нужный - откорректировал #5) А вообще изначально было сделано так, чтоб при нажатии номера типа линии (по принятой условно нумерации) вызывались разные вариации типов и прочих настроек линий. Применительно к типу и масштабу, что-то вроде: Код:
В некоторых случаях такой подход оказывался удобнее палитры. Последний раз редактировалось skkkk, 17.02.2020 в 21:03. |
|||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
skkkk, интересная опция с номерами попробую)
а насчет для чего нужно - вообще для палитры инструментов и нужно (пока)) пытаюсь постепенно разобраться в средствах и способах автоматизации проектирования применительно к родной мастерской) вот по мере "разбирательств" и возникают вопросы) Так как мне это нужно в сетевую палитру инструментов, которая, надеюсь, постепенно превратится в удобные панели, больше подходит лисп. Еще раз спасибо skkkk |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
У сетевых палитр в чистом ACAD есть огромный недостаток: отсутствие автоматической синхронизации. Только вручную, только хардкор.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
Было бы интересно посмотреть на решение - потому что у меня не вышло нормально синхронизировать. Знания NET на нуле, а лиспом не срабатывало больше чем в половине случаев.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Сеть имеется в виду облако или локальная сеть?
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
да вроде бы ничего не делал особого... начитался форума и хелпа по теме что нашел и сделал так:
- создал сетевой диск на котором и хранится папка со всеми файлами самой палитры, лиспы, динблоки и т.д. - панель создавал под отдельным профилем (в настройках автокада), также под ним вношу любые изменения и добавки - на каждой машине прописано в настройках автокада прописаны соответствующие пути к базам, а в самом компьютере включена автосинхронизация всей папки с инструментами как то так может потом еще какие пляски с бубном понадобятся) но на теперешнем "уровне развития технологий" все работает замечательно) ----- добавлено через 25 сек. ----- doctorraz, локальная |
|||
![]() |
|
||||
Цитата:
Моя мысль дальше SUBST не идет пока))
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
сейчас не могу скрин сделать (на домашнем компьютере этого нет) но там все просто: ПКМ по папке -> автоматическая синхронизация (может не дословно). Да и делал я это только на тот случай если буду в командировке а мой ПК забудут включить (он же сервер), палитра у всех работала без сбоев.
если сервер постоянно включен то и так все работает и обновляется при перезапуске автокада |
|||
![]() |
|
||||
тож пытался задавать пути для палитр.. со временем АК начинает их мешать и дублировать, или руки у мну не той системы(( если таскать палитры с машины на машину.
__________________
Мастерская СПДС |
||||
![]() |
|
||||
возможно поэтому у меня плохо получилось, я к стандартному добавлял свой, плюс палитры по своему пути синхронизировались с другой машины, не пошло, и фих с ним
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
Проблема в том, что рано или поздно появляется пользователь, которому "вот этот вот значок не нравицца от слова совсем, да и вообще его надо снести". Я понимаю, что это можно отладить теми же разрешениями, но просто мне подобное не нравится (может, потому, что у меня на обслуге было чуть побольше пользователей - раз этак в 5..7 как минимум).
Ну и опять же - если добавить инструметров в палитру (а еще лучше - вообще отдельную палитру создать, а старую какую-нибудь удалить), далеко не факт, что кеширование и прописывание нового состояния палитр будет выполнено корректно. По крайней мере у меня получалось в лучшем случае через раз.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
ну в принципе да пока мне упрощает то что все на месте (в одном здании) и нас немного, опять же никто пока просто не знает как там что-то можно сломать) потом если что-то толковое из моих потуг получится можно будет пробовать внедрять по институту а там уже ~350 раб мест) будет весело)
а если серьезно то поменять что-то пользователь может только для себя (на своем компьютере) Добавлял и новые вкладки палитры все прекрасно обновляется только приходится первый раз после создания новой вкладки вручную добавить ее в группу а потом инструменты на ней обновляются стабильно (добавляются в конце соответствующей вкладки) З.Ы. и раз уже пошел такой оффтоп то может подскажите с чего начать создавать справку по командам? чтоб как у людей ПКМ->справка с ростом палитры в ней все больше возникает необходимость) З.Ы.Ы. может важно может нет создавались все инструменты на AC2016 но почти все компьютеры в сети с АС2014 Последний раз редактировалось mr.frai1992, 17.02.2020 в 22:46. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
я когда-то пользовал Help&Manual, поскольку она позволяет создавать chm-справку (которую всего лишь надо кешировать на локалки), и к которой из-под лиспа можно обращаться через setfuhelp. Но это на любителя.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
Спасибо уже качаю буду пробовать
----- добавлено через ~10 ч. ----- Цитата:
Попробовал так сделать (может и фигню пишу ибо мало понимаю): Код:
Команда: CUSTOM_PLINES неверный тип аргумента: numberp: #<SUBR @0000011b16ab2188 *ERROR*> ----- добавлено через ~4 ч. ----- Поковырялся еще как смог ![]() вот что получилось Код:
1. когда вызываю из командной строки по факту все работает как надо но всплывает nil Команда: CHECK_PLINE_TYP Имя типа линии: мембрана Толщина полилинии: 0 nil Задайте параметр [?/Создать/Загрузить/Установить]: в конце жму esc и тип линий остается по слою а нарисованная линия по типу мембрана 2. когда попробовал посадить на кнопку макросом Код:
Задайте параметр [?/Создать/Загрузить/Установить]: попробовал Код:
Код:
но что-то я не так написал - должен рисовать столько сегментов сколько нужно и только потом заканчивать тут точно нужна подсказка сам не найду ![]() Последний раз редактировалось mr.frai1992, 18.02.2020 в 13:04. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Цитата:
Вероятные причины отказа: 1). Возможно, я (или не я) что-то напутал в пути к файлу или имени файла типов линий. Лиспу при указании пути нужен двойной обратный слэш. Очевидно, что если папку, где он лежит, добавить в пути доступа в настройках, то путь можно и не указывать. 2). В типе линий присутствуют символы (буквы), при этом в описании типа линии этим символам присвоен некий текстовый стиль, который не загружен в чертеж. Тут либо следить за тем, чтоб он был загружен, либо создавать его принудительно. Я делаю это примерно так: Код:
Так действительно, нельзя. Если после defun идет C:, то это уже не функция, а команда, а она не может иметь аргументов. Отличие функции в том, что мы можем задавать ей аргументы, такие как linetype и linetypescale, а затем эту функцию обернуть в команду (и если надо, то не в одну). Это удобно, когда нам нужно несколько команд с одинаковым функционалом, но с разными настройками - тогда мы переменные перемещаем в аргументы функции и оборачиваем в команды (в нашем случае - 1 и 2), которые чертят разные линии, используя одну программу. Надеюсь, не слишком сложно объяснил. Подробнее - тут, в разделе Команда или функция ? 3). Может, еще что-то, но для точного диагноза лучше бы приложить файл dwg с нужной линией и сам файл типа линии (его потребуется предварительно заархивировать) Цитата:
Насколько я помню, команду, созданную из лиспа, нельзя использовать в макросах. Точнее, использовать можно, вызывая ее из макроса как (C:check_pline_typ), но нельзя ей далее задавать опции. Для этого и задаются аргументы и интерактивные функции (запрос чего-то у пользователя) внутри лисп-кода. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
Насколько я помню, можно, и даже без скобок. Главное, чтоб лисп был загружен.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
без скобок если (defun c:ff()) ^C^Cff
если (defun ff()) скобки нужны в макросе ^C^C(ff) не вызывается повторно пробелом
__________________
Мастерская СПДС |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
doctorraz, так разговор-то о командах, а не о функциях
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
skkkk, не все понял пока и соответственно не все получилось правильно через функцию... но оно таки заработало как надо
![]() Получилось что у меня это будет универсальный лисп для рисования полилинии с каким-то определенным (прописанным в макросе команды на кнопке) набором свойств, после выполнения которого тип линии возвращается в "По Слою". То что мне и было нужно в идеале) Вот итоги постижения непостижимого) (для меня это первый опыт более-менее (скорее менее) самостоятельной работы с кодом lisp) Код:
Код:
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Да, ты прав. Offtop: Не пользовался макросами уже лет десять, с тех пор, как перелез на лисп. Спутал с другой ситуацией: такие команды (созданные лиспом с помощью defun С:) нельзя вызывать из лиспа, используя command. Заработался что-то.
Прошу прощения. |
|||
![]() |
|
||||
Регистрация: 10.04.2019
Сообщений: 47
|
Еще одна проблема вскрылась с лиспом
На моем компьютере работает без вопросов, а на другом не хочет( пишет: no function definition: LOAD_GLOBAL_VARIABLE У меня автокад 2016 вин10х64 На других машинах вин7х64 ас2016 и другой вариант вин7х32 ас2014 не было в начале (vl-load-com) уже добавил - не помогло |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
Ищи файл с определением функции и подгружай его.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
#30, идет вызов функции (load_global_variable). Ищи lsp файл со словами
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
Пока было совещание, нарисовался код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,446
|
Возвращается то, что было изначально. ИМХО эт более правильно: по окончании работы система возвращается в тот вид, который был ДО вызова функции (см. "САПР на базе", там все описано
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен макрос выявления "неправильных" ортогональных линий | Малявка | Программирование | 22 | 03.03.2021 21:18 |
Макрос VBA Excel для извлечения таблиц из линий, полилиний, текста из DWG файлов в Excel с помощью NanoCAD/AutoCAD | JZY | Готовые программы | 8 | 14.07.2016 06:31 |
Как удалить тип линии | Tolyanovich | AutoCAD | 48 | 20.11.2014 09:24 |
Простановка осевых линий на отводах трубопроводов. макрос. никто не видел? | ssn | Программирование | 39 | 13.05.2013 13:12 |
Нужен макрос для черчения почасовых графиков | SON | Программирование | 2 | 03.08.2010 21:11 |