Нужно подправить макрос (разрыв линии с заменой) - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

Нужно подправить макрос (разрыв линии с заменой)

Закрытая тема
Поиск в этой теме
Непрочитано 12.07.2007, 21:24
Нужно подправить макрос (разрыв линии с заменой)
dextron3
 
проектировшик
 
СССР
Регистрация: 01.01.2007
Сообщений: 5,149

Разрывает линию между двумя точками и чертит там отрезок в текущем слое:

Код:
[Выделить все]
^C^C(setq A (ssget));_single;\(setq pt1 (getpoint));\(setq pt2 (getpoint pt1));\_break;!A;!pt1;!pt2;_line;!pt1;!pt2;;
Нашел баг:

При использовании повтора, команда не повторяется (при нажатии правой кнопки), приходится тыкать снова в кнопку

Как можно подправить макрос чтобы он повторялся при нажатии на ентер, или пробел, или правой кнопкой мыши.

Что в даном макросе не работает
__________________
инженер проектировшик с опттом программа авто гад образование высшие
Просмотров: 6813
 
Непрочитано 13.07.2007, 09:24
#21
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


dextron3, Алексей Кулик правильно говорит, полный пакет программ, способный заменить Project Studio, ты здесь не получишь. Хотя я тебя понимю. Подобные вопросы и проблемы занимали меня лет 8 назад, когда я еще работал в ОАПР и достаточно много программировал. Но конструкторы не сумели толково изложить свои пожелания и дело заглохло. Потом заглох я сам. Мне кажется, что ты вполне представляешь, что тебе нужно и достаточно четко формулируешь задачи. Лучший выход из положения - самому изучить AutoLisp и тогда ты сможешь сам создавать нужные программы. А уж какое ты получишь при этом удовлетворение - и описать трудно.
Profan вне форума  
 
Автор темы   Непрочитано 13.07.2007, 09:39
#22
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Геннадий aka PG
СПАСИБО РЕАЛЬНАЯ ПОМОЩЬ!!!
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.07.2007, 09:43
#23
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Цитата:
Сообщение от dextron3
Геннадий aka PG
СПАСИБО РЕАЛЬНАЯ ПОМОЩЬ!!!
Спасибо очень много!
Посмотри весь сборник http://cadhlp.kulichki.com, там много полезного, правда уклон машиностроительный.
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Автор темы   Непрочитано 13.07.2007, 10:31
#24
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Нашел баги в посте 20 в лиспе:

1) Выделение для переноса исключительно точечное, если промахиваешься попасть в линию команда завершается (нельзя ли подкорректировать и сделать прямоугольное выделение)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.07.2007, 11:21
#25
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от dextron3
Нашел баги в посте 20 в лиспе:

1) Выделение для переноса исключительно точечное, если промахиваешься попасть в линию команда завершается (нельзя ли подкорректировать и сделать прямоугольное выделение)
:shock: Это не баг, так задумано/сделано!
Вам дали полную халяву, Вы сказали спасибо. Здесь можно остановиться.
Хотите лучше:
1. заказывайте/покупайте за деньги
2. последуйте совету Profan'a, см.п.21 и крЫс, см.п.16
PS. Если Вас не устраивает это, наберитесь терпения и ждите.
М.б. кто-то, ради собственного удовольствия (только ради возможности еще раз его получить ), подправит Вам этот текст.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 13.07.2007, 11:23
#26
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Программный аналог макроса из сообщения 1.
Код:
[Выделить все]
(defun C:BR_LINE ( / osm obj ent pt1 pt2)
(setq osm (getvar "OSMODE"))
(setvar "OSMODE" 512)
(setq obj (entsel "\n Укажите первую точку на объекте (Enter-Отказ): "))
(if obj
    (progn
    (setq pt1 (nth 1 obj) ent (nth 0 obj))
    (initget 7)
    (setq pt2 (getpoint pt1 "\n Укажите вторую точку: "))
    (command "_break" ent pt1 pt2)
    (command "_line" pt1 pt2 "")
    )
    (princ "\n Объект не выбран.")
)
(setvar "OSMODE" osm)
(princ)
)
Profan вне форума  
 
Автор темы   Непрочитано 13.07.2007, 15:43
#27
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Цитата:
Сообщение от Profan
Программный аналог макроса из сообщения 1.
Код:
[Выделить все]
(defun C:BR_LINE ( / osm obj ent pt1 pt2)
(setq osm (getvar "OSMODE"))
(setvar "OSMODE" 512)
(setq obj (entsel "\n Укажите первую точку на объекте (Enter-Отказ): "))
(if obj
    (progn
    (setq pt1 (nth 1 obj) ent (nth 0 obj))
    (initget 7)
    (setq pt2 (getpoint pt1 "\n Укажите вторую точку: "))
    (command "_break" ent pt1 pt2)
    (command "_line" pt1 pt2 "")
    )
    (princ "\n Объект не выбран.")
)
(setvar "OSMODE" osm)
(princ)
)
Нашел 2 бага:

1) Сбрасывается привязка после выполнения команды
2) Первую точку путем выделения невозможно установить (т.е. получается тыкаешь наугад)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 13.07.2007, 20:11
#28
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


>dextron3
Насколько я понял, это мой макрос, где-то я его выкладывал. Он у меня весит на палетке уже, наверно года 2... Ну ни каких проблем... Зачем усложнять простые вещи? Ведь возможно что, и СПДС-графикс бы все любили, если б его разработчики не били пушкой по воробьям.
Krieger вне форума  
 
Автор темы   Непрочитано 15.07.2007, 07:51
#29
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Для поректировщиков ПГС этот макрос просто не заменим, поэтому хотел чтобы его заменили лиспом чтобы была возможность повторять через правую кнопку
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 15.07.2007, 20:16
#30
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Для dextron3.
Ну, вот полный аналог макроса, причем с циклом:
Код:
[Выделить все]
(defun C:BR_LINE ( / obj ent pt1 pt2)
(setq obj T) 
(while obj
(setq obj (entsel "\n Выберите объект (Enter-Отказ): ")) 
(if obj 
    (progn 
    (setq ent (nth 0 obj))
    (initget 7) 
    (setq pt1 (getpoint "\n Укажите первую точку: ")) 
    (initget 7) 
    (setq pt2 (getpoint pt1 "\n Укажите вторую точку: ")) 
    (command "_break" ent pt1 pt2) 
    (command "_line" pt1 pt2 "") 
    ) 
    (princ "\n Объект не выбран.") 
)
)
(princ) 
)
Привязки должны выбираться во время работы команды. Команда повторно вызывается при нажатии на Enter, пробел или правую кнопку мыши.
А насчкт багов - это слишком сильно сказано для такой примитивной программы. Как задумано и как записано - так и работает.
Profan вне форума  
 
Автор темы   Непрочитано 15.07.2007, 21:01
#31
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Profan спасибо
Однозначно в коллекцию золотых лиспов
[sm166]
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужно подправить макрос (разрыв линии с заменой)