|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Так, по поводу кода.
1. В обработчике ошибок используется (command). Это может породить приличное количество проблем (на autocad.ru как-то обсуждалось, результатов не помню - можно попробовать посмотреть поиском по "глюк в error" - вроде так). 2. Обработчик ошибок сделан глобальным. Не гуд в принципе. 3. Зачем выносить получение строк в отдельную функцию, я не очень понял. 4. Все равно, на запрос текста над (да и "под" тоже)полкой я нажал Esc и получил ошибку ![]() 5. На запросе точки нажал правую кнопку - ошибка. 6. Перемещение текста выноски либо полки при dimscale, dimldrblk, dimexe, dimgap, dimasz "не штатных значений" уводит полку черт-те куда. И длину этой полке тоже назначает бог знает какой. Вообще надо проверять для всех значений всех системных переменных dim*. 7. Не работает не в мировой системе координат. И не отслеживается вариант "немировой" системы координат. И все это только ради удовольствия видеть прямоугольник вокруг текста...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
именно ради удовольствия... правда я не совсем безнадежен, иначе написал бы прям текст
получение строк, точек в отдельной функции мне удобнее редактировать так, к примеру на первое время добавлю (initget какой нибудь за 6 и 7 спасибо - буду думать, кстати конкретно про DIMGAP вот здесь Код:
чем может испортить жизнь глобальный обработчик ошибок? я его воткнул только с целью чистки хвостов по Esc и ^C^C, а корректность ввода пользователем планирую контролировать как раз в вынесенных функциях |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Насчет получения текстов и точек, да и вообще чего бы то ни было можно попробовать использовать
Код:
Код:
Код:
=== Добавлено: (себе под нос) надеюсь, я никого не напугал, а то в http://dwg.ru/forum/viewtopic.php?t=12463 меня шуганули ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
|||||||||||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
________________________________________________________________________________________________________________
...8 лет спустя В ходе обсуждения темы Поиск блоков пересекающих полилинию (автор - tujn08) был затронут вопрос о программной отрисовке мультивыноски, а также варианты интерактивной визуализации этого процесса против программной расстановки мультивыносок (что друг друга на мой взгляд взаимоисключает). Я полагаю, что этот, на мой взгляд, интересный разговор попадает аккурат в рамки данного топика, поэтому предлагаю продолжить его здесь. Итак, zamtmn показал (только зачем-то на каком-то стороннем сайте прикрепил) видео, точнее "гифку" (увидим ли мы ее через месяц?) ![]() в которой он при помощи своей программы весьма ловко и изящно расставил мультивыноски с нужным, заранее программно сформированным содержанием, вдоль полилинии и к блокам, почти пересекающим полилинию. По крайней мере, для меня это выглядело именно так, может, там отрезки и не блоки, но не суть. Далее приведу выдержки ответов участников этого разговора. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Дима_, я тогда видел Ваш код, но даже сейчас, на первой лямбде у меня глаза поменялись местами, а тогда я вообще на лямбды и грвексы смотреть боялся. Честно, сейчас уже нет сил смотреть в кишки, как это работает, как в частности grvecs'ом (и им ли???) Вы нарисовали ttf-шрифт? Я специально проверил: блок с таким текстом прекрасно "висит" на курсоре во всей красе. Хотел я сделать примерно так: Express'ом взрывать текст до линий, брать координаты их концов и "скармливать" их grvecs'у. При этом добавив обработку (что мне и казалось и кажется самым сложным), чтоб при пересечении изломом выноски определенной черты grvecs'овская выноска как бы "зеркалилась", но не текст, конечно. На тот момент мне нецелесообразно было это делать, во-первых, в виду малого опыта программирования, а во-вторых, постольку, поскольку я уже имел то, что блок с текстом, висящий на курсоре, мог дать представление о размере получающейся выноски, и можно подыскать ей уютное местечко на чертеже; в точке же, куда должна бы указывать эта выноска я программно рисовал временную красную жирную метку. Знаю, по-дилетантски, но удобней, чем все выноски копировать из других чертежей и править их вручную, посчитав линейкой пикетаж, согласитесь? Подумаешь, не хватает "резиновой нити". Хотя на очень загруженных чертежах ее часто действительно, не хватает, но даже и там, больше нужно видеть размер текстовой части, а также ее содержимое, чтобы оперативно до вставки отреагировать и если что не так, исправить параметр (например, диаметр трубы) и продолжить в штатном режиме простановку всех выносок трассы. Это реализовано у нас уже несколько лет, по возможности выложу видео этого процесса. Функции acet-drug... или как они там, я тоже знаю давно. С тех пор. И даже пробовал сделать визуализацию выноски из них. Не понравилось, что объект который копируется или переносится, обязательно при этом "торчит" и на том месте, откуда ты его переносишь. Но хуже то, что заставить все это дело динамически зеркалиться на изломе мне не удалось. Пробовал также с их помощью написать свои функции переноса и копирования, более удобные, чтобы вставлять свое приглашение и по правой кнопке "подбирать" последний набор, но при тестировании обнаружилось, что при работе этих drug'ов не работает полярное отслеживание. Отказался. Александр Ривилис, спасибо. Стыдно, но за десять лет я этой темы не видел. Хотя в свое время усиленно искал примеры использования grvecs. Интересно, смогу ли я сделать из нее мультивыноску? ![]() ![]() |
||||||||||||
![]() |
|
||||
Думаю, что да. Более того никакой grvecs будет не нужен. Ты просто рисуешь выноску "на курсоре" и обновляешь её в зависимости от положения курсора. Ну а при помощи ключевых слов ты можешь переключаться между указанием вершины выноски или положением текста выноски.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
>>По крайней мере, для меня это выглядело именно так, может, там отрезки и не блоки, но не суть.
Это блоки и полилинии, но не автокад. Выноска с гифки в автокаде будет набором линий и текстов, в программе - отдельный самомстоятельный примитив. Картинка была не про проблему програмной расстановки мультивыносок, а про "кабельное хозяйство")) |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Offtop: Эх бы к суткам еще часиков десять прибавить...
![]() Цитата:
![]() Offtop: Лично мне тот топик был вообще не близок, поскольку я далек от проектирования электрики, покуда не заговорили о мультивыносках. Я не ожидал, что возбудится такой нездорово живой (для той темы) интерес к ним. ![]() |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Там все автокад "рисует" - я ничего не рисовал - это копия объекта.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |