|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
21.03.2016, 10:37 | #1 | |
Лисп простой пользовательской выноски
Регистрация: 19.11.2014
Сообщений: 2,435
|
||
Просмотров: 18420
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
И в чем собственно трудность?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Трудность в том, что базовые познания LISP у меня минимальные и посему ищу помощи.
Файлы с этими выносками могут использоваться другими пользователями, у которых СПДС нет. ----- добавлено через ~1 мин. ----- Отступ от полки неконтролируемый. ----- добавлено через ~2 ч. ----- Мой текущий прогресс: Код:
1. Отрисовка выносной линии полилинией (с визуализацией промежуточных сегментов), а не двумя отрезками. 2. Размещение всех примитивов на определенном слое, а не текущем. 3. Отрисовка текста определенным шрифтом и определенной высоты, а не текущими значениями. 4. Запоминание предыдущего значения текстовой метки и предложение ее значением по умолчанию при повторном вызове функции. 5. Пока не понимаю как сюда вписать нижнюю текстовую метку, чтобы она была опциональной и не требовала лишнего запроса. 6. С точкой та же история, что и с нижним тектом - точка должна быть опциональной. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Благодаря VVA вполне себе контролируемый.
Весело будет когда кто-то захочет это дело подредактировать. Вот он спасибо-то скажет. Допустим, стало необходимо добавить еще выносок, а эти передвинуть. И понеслась. Согласен с теми, кто отсылает к мультивыноскам. При правильной настройке и с использованием MTLE из кода по ссылке. Например, в стиле мультивыноски можно поставить на конце выноски любой блок, скорее, тут даже стандартный подойдет. И это будет один объект, создаваемый уже имеющимися средствами и удобно редактируемый. На форуме была и программа по отрисовке мультивыноски. Советую разобраться с ними и увидите, что это намного удобнее. На худой конец можно поискать динамический блок выноски. В Download и в темах "Мои динамические блоки" (части первая и вторая) предложено немало решений. |
|||
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,835
|
Цитата:
Садись и пиши! Как-то даже и думать за ТС не хочется.
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Добро пожаловать в "Поиск исполнителей"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Сет, а кто и когда будет решать, и на основании чего, в какую сторону должна эта выноска смотреть?
Я повторю и разверну свою мысль. Плохо это - изобретать велосипед, причем такой, который уступает по своим возможностям штатному функционалу. Но, "не поумничать ради, а помочь для", готов еще раз повторить и попробовать-таки склонить настроение в сторону мультивыноски. Или динамического блока. На этот раз с более вразумительными и осязаемыми доводами. В приложенном файле примеры: сверху - мультивыноска, снизу динамический блок (найден на этом форуме или в дауне). Для отрисовки таких мультивыносок можно использовать чуть подправленную программу VVA отсюда (код запускать в приложенном файле при активном стиле мультивыносок "ISOCPEUR", который уже присутствует в файле и примерно настроен в соответствии с рисунком в первом посте): Код:
Цитата:
1,2,3 - С этим проблем нет - ни в случае с блоком, ни с выноской - реализуется легко, даже самостоятельно находятся на форуме решения при даже примитивном знании лиспа на уровне чуть больше просто юзера. Думаю, и ссылками поможем, в случае, если выноски пойдут в дело. 4. Ничего не понял из этого пункта - с учетом написанного и нарисованного в первом посте. 5. Тоже по рисунку и описанию не совсем понял, выноска может быть многоступенчатой или "многострелочной"? Для понимания нужен соответствующий рисунок, желательно в dwg. 6. Тут вроде тоже проблем нет. 7. В коде (команда TEST) это реализовано в первом приближении. Если на запрос второго текста нажать правой кнопкой мыши или Enter - второй строки не будет. 8. Это тоже нетрудно добавить. В общем, если есть желание завязаться с любым из этих вариантов, я готов помочь в поиске и заточке кода или блока. Думаю, что и не я один. С текстами связываться не стану - даже за деньги, и даже, если будет время. Последний раз редактировалось skkkk, 22.03.2016 в 01:39. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Если это что то стандартное, то использовал бы стандартные лидеры или мультилидеры, вот самый простой:
Код:
Если что-то не стандартное, то я бы сделал динамический блок со всеми необходимыми вкусняшками, нафиг их программно пытаться полилинией обрисовать, да и не отредактировать потом толком. А дальше пишем прогу по вставке этого блока, например такую: Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
|||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
1. У меня часто в одном чертеже используются выноски с точкой и без точки. Это, если хотите, мой собственный стандарт оформления, согласно которого выноска от тонкого элемента идет без точки, а от широкого - с точкой. Если работать с мультивыноской, то нужно будет создать два стиля и часто их переключать, либо менять стиль мультивыносок в свойствах. Пусть это и не выглядит критическим, но, думается, будет не слишком удобным. 2. Полка выноски всегда имеет правое положение, хотя левое положение используется у меня также часто. 3. Длина полки выноски неконтролируемая "на лету". 4. Раньше, при тестировании мультивыносок, я сталкивался с тем, что текст на ней размещается некорректно. Какой-то с отступом от полки, какой-то чуть ли не вплотную. У вашей мультивыноски при беглом тестировании я этой проблемы не обнаружил, но я не помню какие именно символы нарушали стройную геометрию. Надо потестировать еще. При минусах есть и один несомненный плюс - выноска является единым целым. Цитата:
1. Первое и очевидное - слишком много действий по добавлению такого блока в чертеж. Сначала блок нужно вставить, затем потягать за ручки, чтобы он принял нужную форму. Выносок в чертеже много, если каждой уделять столько времени - это будет слишком расточительно. 2. Текст нужно выравнивать не по центру полки, а по краю выноски. Соответственно динамически "отзеркаливать" полку не получится. Нужно будет либо делать 4 области видимости с разными положениями выноски, либо 4 разных динамических блока, которые потом "тягать" с палитры. 3. Есть мнение, что большое количество динамических блоков "тормозит" чертеж. Выносок очень много. Динамические блоки я использую и кроме них. Цитата:
Цитата:
Собственно мой прогресс: Код:
1. Запоминание предыдущего значения текстовой метки и предложение ее значением по умолчанию при повторном вызове функции. 2. Опциональный нижний текст. Вариант с индивидуальным запросом (как в мультивыноске VVA) понятен, но выглядит неудобным. Хотелось бы, чтобы пустой нижний текст не требовал лишних действий, которые нужно выполнять только если нижний текст имеет содержимое. 3. Все что касается нижнего текста - касается и точки. Добавилось еще одно желаемое свойство: 1. После указания первой точки должен включаться режим ОРТО (если он выключен) и по завершению работы функции - возвращаться в исходное состояние. Последний раз редактировалось Сет, 22.03.2016 в 10:42. |
||||
|
|||||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
Цитата:
Цитата:
Цитата:
Код:
Цитата:
Цитата:
Удачи в велосипедостроении.
__________________
Делай хорошо, плохо само получится. |
||||||
|
|||||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Согласен с автором, что нужно свою делать. Когда-то была своя на основе дин.блока.
Теперь новый виток. Но без отличного знания lisp, сделать что-то путнее не получится. Посмотрите как сделано:
Скоро я покажу как автоматически расставлять выноски к блокам, так, чтобы в них писались данные, и выноски не накладывались на другие объекты. Здесь выноски расставляются, но не красиво, все в одну сторону, что требует ручной подчистки.
Последний раз редактировалось Sleekka, 22.03.2016 в 10:51. |
||||||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
1. Клик - активация функции. 2. Ввод текста - текст выноски. 3. Клик - первая точка. 4. Клик - вторая точка. 5. Клик - третья точка. Всего четыре клика и ввод текста - и выноска занимает нужное положение и вид. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Посмотри второе видео в моем сообщении, когда ничего не выделено, выноска работает так как ты говоришь, только третья точка вычисляется автоматически. И полка потом может быть пересчитана, двойным кликом.
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
1. Нажатие кнопки 2. Указали первую точку 3. Указали вторую точку 4. Написали текст первой строки 5. Написали текст второй строки (если нужно, если не нужно просто жмем ПКМ) Всего три клика и ввод текста. На один клик меньше ) ----- добавлено через ~1 мин. ----- Как ты вычисляешь длину текста?
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Как обычно, через BoundingBox, это далеко не самое сложно в этой задачке.
Для меня было самое сложно сохранить удобство одного общего объекта не потеряв удобства раздельных объектов, найти этот тонкий баланс и есть самое сложное. При этом я не пишу никаких расширенных данных в примитивы, только анализ геометрии для сохранения связности. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Цитата:
__________________
Делай хорошо, плохо само получится. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Комрады, не работает простой лисп по копированию отрезка. | 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 |