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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматический перенос размеров на слой размеры. Break макро

Автоматический перенос размеров на слой размеры. Break макро

Ответ
Поиск в этой теме
Непрочитано 01.03.2005, 12:58
Автоматический перенос размеров на слой размеры. Break макро
Piton
 
Инженер строитель
 
Москва
Регистрация: 24.02.2005
Сообщений: 396

Подскажите макрос на кнопку чтоб команда break разрывала в двух указанных точках (First point, second break point). ACAD2005
---
Добавлено (спасибо VVA): Рабочие варианты
#25
#190
#272
#273

Последний раз редактировалось Кулик Алексей aka kpblc, 16.11.2012 в 13:42.
Просмотров: 171291
 
Непрочитано 21.10.2010, 13:10
#241
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Do$ Посмотреть сообщение
При работе с реакторами из лиспа невозможно в функции обработки события модифицировать объект, вызвавший событие. Поэтому приходится выкручиваться.
Значит подобные задачи нужно решать не с помощью лиспа.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 21.10.2010, 13:45
#242
Do$

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


Но задача то уже решена и как раз с помощью лиспа
Do$ вне форума  
 
Непрочитано 21.10.2010, 14:09
#243
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Do$ Посмотреть сообщение
Но задача то уже решена и как раз с помощью лиспа
"Решена" - это когда решение будет корректно работать в любой ситуации. Выше я указал случаи, когда это решение не пройдёт. Т.о. это условное решение (т.е. решение, которое будет работать только при соблюдении ряда условий).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 21.10.2010, 15:13
#244
Do$

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


Ну а на какое еще можно рассчитывать на общедоступном форуме?
Можно, в принципе, и на лиспе обрабатывать добавление объекта в базу чертежа, запоминать такие объекты и при наступлении какого-нибудь другого события (завершения команды, завершения работы приложения) раскидывать запомненные объекты по слоям.
Написать-то можно, но что-то мне подсказывает, что тем, кто будет пользоваться этой программой, достаточно и того, что уже написано.
Do$ вне форума  
 
Непрочитано 21.10.2010, 20:03
#245
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от VVA Посмотреть сообщение
в #25 добавил код от Lee Mac. Он решен более корректно. Там одна команда LD, работающая по принципу : если реакторы выключены - включает и наоборот
VVA, все бы хорошо, но есть команда _leader, _mleader, а в bricscad - dimleader, которые не будут обрабатываться командой LD...
По-поводу одной команды: как узнать активен ли сейчас реактор или нет без простановки размера? Итак, ИМХО, нужна кнопка в меню с галкой... вопрос в в том, как сделать макрос для кнопки...
gomer вне форума  
 
Непрочитано 21.10.2010, 20:13
#246
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
VVA, все бы хорошо, но есть команда _leader, _mleader, а в bricscad - dimleader, которые не будут обрабатываться командой LD...
А самому поправить? Где править выделено красным
Находишь строчку
Цитата:
("*DIM*,*QLEADER" "DIMENSIONS" 2)
И меняешь на
Цитата:
("*DIM*,*LEADER" "DIMENSIONS" 2)
Я поправил маску в #25
*** Добавлено
При аткивности реактора в строке MODEMACRO (левый нижний угол) будет надпись "LD+"
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 21.10.2010 в 20:33.
VVA вне форума  
 
Непрочитано 21.10.2010, 21:15
#247
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от VVA Посмотреть сообщение
При аткивности реактора в строке MODEMACRO (левый нижний угол) будет надпись "LD+"
не отображается Но надеюсь это пройдет
3ы По #25/2
Не смог воспроизвести ситуацию когда предыдущий слой заморожен...
Но мысль правильная)))
не пойму пока игнор UNDO...

Последний раз редактировалось gomer, 21.10.2010 в 21:40.
gomer вне форума  
 
Непрочитано 21.10.2010, 22:10
#248
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


gomer, Скопируй еще раз. Я немного позже добавил надпись LD+
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.10.2010, 22:19
#249
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от VVA Посмотреть сообщение
Я немного позже добавил надпись LD+
Ага... теперь работает... однако же modemacro - такой "гадюшник", в него кто хочет, тот и пишет... а думать дизель для кнопки моя голова отказывается
gomer вне форума  
 
Непрочитано 21.10.2010, 22:30
#250
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Можно всесто MODEMACRO "писать" в пользовательские переменные USERI1 ... USERI5; USERR1...USERR5; USERS1 ... USERS5 и проверять дизелем.
Но туда так же могут писать все кому не лень.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.10.2010, 03:13
#251
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
А у меня возвращается. Подробнее: версия Автокада, сервиспаки, наличие прочих приложений и т.п.

Раз есть копроративное меню, то есть (или можно создать) корпоративный mnl файл. Пользователе, которым не нужно разносить текст будем брать из системной переменной USERNAME. Список пользователей создатим как глобальныю переменную *USER* в mnl файле
Код:
[Выделить все]
(setq *USER* '("IVANOV" "PETROV" "SIDORIFF"))
А сам код (на примере из #25) немного подкорректируем так:
Код:
[Выделить все]
;;;;;;------------------------------------------------------------- 
(defun cmd-start (calling-reactor startcommandInfo / thecommandstart) 
   (setq thecommandstart (nth 0 startcommandInfo))
  (if (null *OldLayer*)(setq *OldLayer* (getvar "CLAYER")))
  (cond 
 ;;;_Реакция на начало команды DIM* (DIMALIGNED DIMLINEAR и все что начинается с DIM)    
    ((wcmatch thecommandstart "DIM*")  ;_Если выполняется команда DIM* 
     (setvar "clayer" "размеры")       ;_Слой размеры должен быть создан выше (vl-cmdf "_layer" ... 
    ) 
 ;;; Конец реакции на DIM*    
    ((wcmatch thecommandstart "*HATCH*") ;_Если выполняется команда *HATCH* 
     (setvar "clayer" "штриховка") 
    ) 
    ((wcmatch thecommandstart "*TEXT") ;_Если выполняется команда *TEXT (TEXT DTEXT)
     (if (not(member (strcase(getenv "USERNAME")) *USER*))
       (setvar "clayer" "Текст")
       )
    )
    ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда *TABLE
     (setvar "clayer" "Таблицы") 
    )
    ((wcmatch thecommandstart "*LEADER") ;_Если выполняется команда *QLEADER MLEADER
     (setvar "clayer" "Выноски") 
    )
    (t (setq *OldLayer* nil)) ;;_Если не наша команда, чистим список текущих слоев
;;;См http://forum.dwg.ru/showpost.php?p=318806&postcount=139
;;;и http://forum.dwg.ru/showpost.php?p=318806&postcount=143
    )
  (princ))
VVA, не срабатывает такой вариант. М.б. лисп с реактором загружается раньше, чем определяется глобальная переменная *USERNOAUTOLAYER*?
У меня автозагрузка LISP_ов осуществляется через *.cuix
Наверно имеет смысл автозагрузку всех программ переписать в MNL и глобальную переменную *USERNOAUTOLAYER* оперделять в самом начале файла?


***Добавлено***
Не прокатывает такой вариант(((

Вот содержание файла MNL
Код:
[Выделить все]
(setq *USERNOAUTOLAYER* '("ngorovaya" "vvasyuk" ))
(Load "layerM.lsp")
и кусок лиспа
Код:
[Выделить все]
;;; Конец реакции на DIM*    
    ((wcmatch thecommandstart "*HATCH*") ;_Если выполняется команда *HATCH* 
     (setvar "clayer" "_Штриховка") 
    ) 
    ((wcmatch thecommandstart "*TEXT") ;_Если выполняется команда *TEXT (TEXT DTEXT) 
     (if (not(member (strcase(getenv "USERNAME")) *USERNOAUTOLAYER*))
       (setvar "clayer" "_Текст")
     )
    )
    ((wcmatch thecommandstart "*TABLE") ;_Если выполняется команда *TABLE
     (setvar "clayer" "_Таблица") 
    )
Все равно текст помещается на слой "_Текст". Старый реактор удалил, его нет в "Загруженных приложениях". Новый реактор и MNL файл есть в загруженных приложениях...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 22.10.2010 в 03:37.
wetr вне форума  
 
Непрочитано 22.10.2010, 10:00
1 | #252
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


wetr,
Проблема в регистрах. У тебя в *USERNOAUTOLAYER*в нижнем, а в сравнении (if (not(member (strcase(getenv "USERNAME"))
Попробуй заменить этим фрагментом
Код:
[Выделить все]
((wcmatch thecommandstart "*TEXT") ;_Если выполняется команда *TEXT (TEXT DTEXT) 
     (if (not(member (strcase(getenv "USERNAME")) (mapcar 'strcase *USERNOAUTOLAYER*)))
       (setvar "clayer" "_Текст")
     )
    )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.10.2010, 02:22
#253
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


VVA, спасибо, все получилось! Только вот "хвосты" вываливаются в командной строке, несмотря на
Код:
[Выделить все]
(setvar "CMDECHO" 0)
но м.б. это связано с VetCAD_ом...
Цитата:
Regenerating layout.
Regenerating model.

Загрузка VetCAD++ ...Enter an option
[?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck
/Unlock/stAte/Description/rEconcile]: *Cancel*
Enter an option
[?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck
/Unlock/stAte/Description/rEconcile]:
Command:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 25.10.2010 в 03:01.
wetr вне форума  
 
Непрочитано 25.10.2010, 10:24
#254
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


wetr,
В загрузке Vetcad++ CMDECHO может включаться. Прошерсти тамошние (Vetcad) lisp'ы и mnl файл
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.10.2010, 19:57
#255
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от wetr Посмотреть сообщение
"хвосты" вываливаются в командной строке
Для того чтоб такое не происходило, нужно просто избавиться от командных методов, как это сделано в #25/2 и #232
gomer вне форума  
 
Непрочитано 26.10.2010, 01:39
#256
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


gomer, еще бы я что-нибудь соображал в не командных методах!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 07.01.2011, 14:17
#257
EgorS

Архитектура, 3D
 
Регистрация: 16.01.2010
Минск, РБ
Сообщений: 65


не понмиаю куда закидывать эти файлы - вы туу пишете "Просто добавь этот файл в автозагрузку.." что это значит ? в какую автозагрузку ? ... с Лиспом не дружу сразу говорю
EgorS вне форума  
 
Непрочитано 07.01.2011, 22:22
#258
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Как использовать lisp, опубликованный на форуме
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.01.2011, 18:07
#259
EgorS

Архитектура, 3D
 
Регистрация: 16.01.2010
Минск, РБ
Сообщений: 65


Спасибо за наводку! - пошел разбираться )
EgorS вне форума  
 
Непрочитано 31.01.2011, 16:32
#260
pgs112

конструктор
 
Регистрация: 02.12.2008
Москва
Сообщений: 32


Спасибо VVA за лисп из поста 25, вариант 1. Очень удобно!
Можно попросить автора подправить программу так, что бы размеры переносились на слой размер, текст на слой текст, а таблицы, выноски и штриховку она не трогала? сам поыпытался удалять часть кода. результат - вообще ничего не работает(
pgs112 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Автоматический перенос размеров на слой размеры. Break макро

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск