Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
...к сожалению не могу...есть ряд факторов, связанных с тактикой постановки задач для CAD/CAM...

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
...вот повисла...это не прихоть моя...
...VBA приложение - "Вал цилиндрический" для AutoCAD...
https://www.caduser.ru/forum/topic19510.html
В чем причина? ...пока не докопаюсь не могу уйти в LISP или еще куда...

Re: Макро на кнопку "Линия с запасом"

> Forma
Ничего не понял. Причем здесь тактика? Вы уже достаточно опытны для того чтобы понимать, что и какими средствами можно сделать. Я бы в этот форум и заглядывать не стал, так как не считаю себя специалистом в DIESEL и соответственно Вы не получили бы мои ответы на Ваши вопросы... Так что думайте...  А все остальное - от лукавого. smile
В VBA - я Вам не помощник, не пользуюсь...

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
...если бы мне сказали, что средствами VBA прямоугольник нельзя построить...ушел тут же бы в LISP...и никогда не вернулся бы...видно проблема в другом...

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
...пусть повисит пару недель...потом трансформирую под LISP...

Re: Макро на кнопку "Линия с запасом"

Александр Ривилис пишет:

...достаточно опытны...

Нет:)...я усредненный инженер примерно 3 категории с стандартным образованием...
p.s. ...а, в России сейчас есть категории? Или может лицензии?

Re: Макро на кнопку "Линия с запасом"

kpblc пишет:

Макросом, думаю, не получится...

То есть как не получится? У Forma много идей. Скоро он весь комп забьет лиспами. На вскидку предлагаю пару идей, кто смелый, можете попробовать. Forma, если ты дочитал книгу про макросы до 6-й главы, то можешь попробовать сам. В этой главе написано про калькулятор, который запросто вычислит две точки, отстоящие от концов первоначального отрезка на 3 единицы. Остается нарисивать новую линию от вычисленных точек и удалить первоначальную, которая в этом случая становится " резиновой" линией. Или (это вторая идея) запоминаются начало и конец 'cal;P1=@;и 'cal;p2=@ и после завершения первонач. отрезка автокадовская команда Linghten, продолжающая макрос, удлинит его в обе стороны. И DIESEL не требуется. Ну а доводка макроса будет заключаться во временном отключении osnap но это позже, когда он заработает.

Re: Макро на кнопку "Линия с запасом"

...вот...вот...я ждал....добрался, но не сумел справится...

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
Интересное дело. В строке

(initget 128 "У U _ U U")

у вас подчерк (_) отделен пробелом от U и все срабатывает при вводе в командной строке _u. Но я сам исправлял это (удалял пробел) в некоторых файлах *.dll (AutoCAD 2005 РУС), т.к. из-за этого пробела не срабатывало контекстное меню...

Re: Макро на кнопку "Линия с запасом"

> Владимир Громов
smile Должно работать, поэтому и работает... Почему не работало в AutoCAD 2005 Рус - не знаю, но догадываюсь, что это связано с ошибками локализации...

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
Но в руководствах по AutoLisp'у (напр., у Полещука) пробела нет. Хотя, если работает, то и Бог с ним.

Re: Макро на кнопку "Линия с запасом"

> Владимир Громов
А в ObjectARX SDK Help - пробел есть. Кто прав?

Re: Макро на кнопку "Линия с запасом"

> Владимир Громов

> Александр Ривилис
...дался вам этот пробел...:)))..там две темы новых есть...еще писать?

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
Это принципиальный вопрос, не могу успокоиться.
Вы хитро поступили с "initget":

(initget 128 "У U _ U U")

а после этого пишите:

(cond
      ((= p1 "U")

Конечно, это сработает. А вот если вы напишите (как принято в локализованных версиях):

(cond
      ((= p1 "_U")

то получите "Аварийное завершение."
Sorry, please.

Re: Макро на кнопку "Линия с запасом"

> Владимир Громов
Во-первых, я никогда так не напишу:

(cond
      ((= p1 "_U")

Просто потому, что "_U" никогда не может получится. Возвращается всегда глобальное имя без подчеркивания
А так:

(initget 128 "У U _ U U")

я написал, чтобы можно было ключевое слово вводить и по-русски, и по-английски, и с подчеркиванием, и без...
И всегда вернется только "U", и ничего другого!

Re: Макро на кнопку "Линия с запасом"

> Forma
Честно говоря те две темы мне не интересны. И в первую очередь в силу того, что Вы не потрудились более-менее поставить задачу (например, не уточнили линии параллельны, или нет, отрезки или полилинии и т.д., а во второй - относительно какой из точек поворачивать отрезки - палка то о двух концах). Я начну программировать, а окажется, что я не понял чего Вы хотели... Зря потраченное время...

Re: Макро на кнопку "Линия с запасом"

> Александр Ривилис
Согласен, всегда вернется только "U". И я немного поторопился, в принципе я хотел обыграть вот это:

(initget 128 "У _U")

......................

(cond
      ((= p1 "U")

Тогда программа работала бы так же, как и стандартные команды с опциями в локализованных версиях, т.е. или опция на русском языке, или на английском с подчерком. Но теперь вижу, что для пользовательской программы так, как сделано у вас, удобнее.

Re: Макро на кнопку "Линия с запасом"

> Владимир Громов
smile Опыт однако!

Re: Макро на кнопку "Линия с запасом"

Александр Ривилис пишет:

Честно говоря те две темы мне не интересны.

Так. Для справки. А какие темы Вам интересны? У меня шпингалетов самовывозом...