|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
kr_leader? Смотрел. Просто вставляет динамический блок. Или речь о чем-то другом?
Это все круто, конечно. Я бы хотел задействовать как-то реакторы, чтобы полка бегала за текстом, а текст за полкой... но думаю, что это слишком сложно и требует действительно плотного изучения ЛИСПа или действительно обращения в "Поиск исполнителей" Я же ставил себе целью создание ПРОСТОЙ выноски. Собственно, цель почти достигнута. Из того, что пока не реализовал, благодаря вашим подсказкам есть понимание куда думать, но сейчас особо нету времени заниматься реализацией. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Ты жаловался на сложность вставки динблока и начал клики считать, хотя в моей проге на один клик меньше.
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
Я программирую давно, для меня это не очень долго, написать такой код, зато я имею инструмент под создание сложных систем класса "полная автоматизация". |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Я, видимо, что-то не так делаю, потому что kr_DrawLeader у меня не запускается, а kr_leader - это просто вставка динамического блока. В три клика же решить задачу установки выноски невозможно в принципе. Четыре клика - это минимум. Ну разве что функцию вызвать не кликом, а вводом с клавиатуры. У выноски три характерных точки, которые не могут быть получены автоматически, потому как всегда уникальны.
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
А как ты её запускаешь? Можно. Mleader ведь за два клика в экран ставится и здесь также. Длина полки зависит от длины текста.
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
1. Сохранил твой лисп.
2. Открыл твой чертеж. 3. Загрузил в него лисп. 4. Ввожу с командной строки "kr" - появляется доступная команда "kr_leader" - ее и запускаю. Это вставка дин блока. Длина полки зависит не от длины текста, а от желания пользователя. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
Разве так запускают проги, нужно вот это ввести: Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Ну как сказать. В процессе указания третьей точки должен быть уже нарисован отрезок между первой и второй... По поводу твоей функции - собственно все недостатки, которые я описывал ранее - справедливы и сейчас. Добавлю лишь еще один нюанс - у меня в настройках повторное выполнение команды выполняется по нажатию ПКМ. С твоей функцией этот номер не проходит.
По поводу отзеркаливания атрибутов с выравниванием... разве выравнивание отзеркаливается? Было левое, станет правым? Кажется это так не работает. В свое время делал динамический блок высотной отметки и именно по этой причине сделал четыре блока вместо одного универсального. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
Цитата:
Цитата:
Короче, не хочешь - не надо. Флаг в руки.
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Собственно в этом и вопрос был изначальный. Я и исходил из того, что это не сложно, а значит можно даже быстро набросать работающий прототип. Если же сложно, то мне бы хватило подсказки какими функциями можно достичь той или иной поставленной цели.
Вот взять ту же промежуточную линию между первой и второй точкой. Я ее рисую простым отрезком, который удаляю после указания третьей точки и рисую полилинию по трем точкам. Криво, наверное, но работает. Никто другого варианта не подсказал. Я вообще не спец в ЛИСПе и не ставлю себе целью его изучения, так как все что мне от ЛИСПа нужно - это простая выноска. По крайней мере сейчас. Согласись, что ради такой цели изучать тонны документации по языку - глупо. Мне бы было даже проще использовать ObjectArx, так как я немного программирую на С++, но там не совсем понимаю как писать Arx-приложения под автокад. Глобально же можно считать цель достигнутой, надо только последние свои "хотелки" реализовать. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
ну тот же JIG MLeader, это уже не лисп, правда.
Цитата:
5 - JIG реализовывается 6 - не помню навскидку, влияет в джиг или нет. 7,8 - делаете ключевые слова при вводе координат, и получаете нужный опционал. Опять же, лучше два стиля мультивыноски разных - на случай ручной корректировки. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
2. Почему же? Она может иметь любое положение. Другой вопрос, как ставить по умолчанию. Но такой же вопрос возникнет и при отрисовке текста с линиями. Предполагаю, что третья точка в ТЗ - и есть указание стороны? Тогда не сложно сделать такой запрос и для выноски и ставить ее с той стороны, куда укажет пользователь. 3. Ну да, она контролируется автоматически в зависимости от ширины текста. А надо по-другому? Чтоб полка была короче или длиннее? Короче - не сделать, а длиннее можно - регулируется отступом от полки. 4. Это известная проблема с известным решением, не требующим дополнительных кликов. Ссылку я приводил выше. Другими словами, проблем, кажется, не осталось. Я прекрасно понимаю это желание сделать СВОЙ инструмент и задор, подстегиваемый интересом к лиспу, - и разделяю их. И, возможно, ничего плохого нет в таком решении создать "свою выноску", кроме одного, что мне очень не нравится: редактировать впоследствии такие "расчлененные" выноски. Раз уж пошла пьянка считать клики, то и я свой расчет приведу. Для перемещения выноски, состоящей из линий и текста, нужно 8 кликов (один из них - вызов команды переноса - тянемся из области чертежа к кнопке на панели), а для перемещения мультивыноски - три клика. А при создании в обоих вариантов кликов одинаково. При этом - разница в количестве обработок, неожиданностей и затраченного времени может быть колоссальной. Или есть полная уверенность в том, что будучи раз созданной, выноска ни при каких обстоятельствах больше никуда не будет смещаться? Если так - тогда смело доделывайте свою команду, раз в кайф, но я уверен, можно найти немало более интересных и полезных задач для прикладного программирования. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Именно так. Но не только. Третья точка указывает где заканчивается полка.
Цитата:
Ну это на словах. Я не знаю как подправить твой лисп до того функционала, который мне нужен. Смотрю тот код и вижу много непонятного. Единственный плюс, по сравнению с тем, что получается у меня - это выноска как единый объект. Плюс значимый, вопросов нет. Но и сложность реализации, кажется, увеличивается. Есть ли резон в это глубоко вникать ради моей задачи? Как я ранее говорил - ЛИСП как таковой я изучать не хочу, поскольку практически применять его не планирую. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
|
|||
|
|||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Ну тогда да, может, применение подобного подхода и оправданно. Любопытно, а почему и из каких соображений исходя, пользователь решает, какой длины должна быть полка? И я так понял из первого поста, что текст в выноске всегда выравнивается в сторону "от полки", на таком расстоянии, которое укажет пользователь, симметрично, а не всегда влево или всегда вправо? Я просто все еще цепляюсь за возможность найти подходящие настройки мультивыноски. Если так, то можно и спросить у пользователя точку (третью) и рассчитав величину отступа от полки, построить выноску. Почти уверен, что можно добиться нужных настроек выноски или стиля.
Почему-то даже после создания слоя "000-Серый" и стиля "Шрифт 10" текст у меня так и не появился. Только две линии. И запроса на вторую строку не увидел. Поэтому и не могу понять, как должно быть. А погружаться глубоко время не позволяет. Думаю, это лишнее, Сет хочет видеть только выносные линии: Цитата:
Цитата:
Цитата:
----- добавлено через ~4 мин. ----- Цитата:
----- добавлено через ~24 мин. ----- Сергей 812, сейчас вот я еще подумал, что с JIG'ом тут как раз можно было бы попробовать избежать третьего клика, но вспомнил, что все равно нужно ширину полки указывать на усмотрение пользователя. Если выносная линия строго ортогональна (даже по замыслу принудительно), то, думаю, выноску можно было бы вставлять с той стороны, в которую отклонится мышка от вертикали при указании второй точки. Кстати, можно и без JIG'а, по-моему, так сделать, но с ним - лучше. Однако, третьего клика судя по задумке автора, не избежать никак. |
||||
|
|||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
Цитата:
Цитата:
Цитата:
Что касается выноски с простыми примитивами, то я думаю, что близок к ее завершению. Текущий вопрос, на который пока не нахожу ответа, это как реализуются встроенные параметры в запрос функции, как это сделано, например, в штатной команде ПРЯМОУГОЛЬНИК. Параметры Фаска Уровень и т.д. кликабельны и позволяют задать дополнительные параметры. Я бы хотел используя эту же механику добавлять нижний текст и точку. |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Цитата:
----- добавлено через ~1 мин. ----- Цитата:
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Комрады, не работает простой лисп по копированию отрезка. | MegaMost | LISP | 10 | 07.09.2015 00:23 |
Как визуализировать создаваемый объект? | Glorius | Программирование | 27 | 08.08.2015 22:59 |
мой первый лисп, выноска, пинайте! | baaba | LISP | 17 | 20.10.2009 15:42 |
Помогите продумать поворот части выноски! | Tonic | Программирование | 40 | 02.07.2007 20:21 |
Сброс связи линии выноски и MTEXTа выноски | kabzzz | AutoCAD | 3 | 19.04.2006 12:57 |