|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Программное создание размерных стилей
Moderator
LISP, C# (ACAD 200[9,12,13,14])
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,237
|
||
Просмотров: 26856
|
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Ну дело в том, что есть человек с ником Apelsinov, весьма сильно мною уважаемый, не хочу даже косвенно его обижать или давать повод.
За похвалу спасибо - Доброе слово и ламеру приятно (с) Лукьяненко, "Фальшивые зеркала". Zip, если можно, то да, с большим удовольствием. Сколько оно весит? Просто yandex не принимает больше 10 метров за раз, т.е. паковка должна быть где-то по 7-7,5 метров, не больше.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Хорошая новость - мыло уже отслал, всего 800К.
Плохая нововсть - нет, пусть уж AutoDesk скажет сам: "Dimensions created via the AutoCAD user interface are created with the active dimension style plus all document overrides. Dimensions created via ActiveX are created with the active dimension style only. To have the dimensions created via ActiveX take on the document overrides, use the CopyFrom method to copy the dimension style from the document to the active dimension style." Так что сохдавайте парный спиок с DXF кодами, согласно DXF Reference->Tables->DIMSTYLES, типа такого Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Опять-таки немного новостей:
хорошая - письмо получил, но пока просмотреть не успел. отвратительная - список создан, но (entmake) для него возвращает nil. Соответственно, ничего не делается. Чтобы не быть голословным: Код:
![]() При этом на самом деле в группе 5 мне надо использовать "_Archtick", но это ладно, можно временно и (setvar) применить, и заменить Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Не знаю, как в более ранних версиях, но в 2005 группы 5, 6. 7б 270 и 287 не используются (obsolete), потому, как я понимаю, ими пользоваться не следует. Ссылки на блок стрелки делаются группами 340, 341 и 342, соответственно "handle of referenced BLOCK, BLOCK1, BLOCK2" и переменные DIMBLK, DIMBLK1, DIMBLK2. Может, следует вытаскивать соотв. ссылку из коллекции_блоков/tblsearch "block" и потом как-то пердвать вновь создаваемому списку? И еще, если есть чертеж-прототип, не проще ли перенести стиль путем CopyFrom.Object?
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Да все дело в том, что такая операция будет выполняться, скорее всего, миллионы раз, так что вариант copyfrom немного не катит. Мне тут подсказали попробовать применять dxf-список, полученный через (entget (tblobjname "dimstyle" "dimenstion_style_name")), сейчас ковыряю в этом направлении.
Кстати, за книгу огромное человеческое спасибо, вчера распечатал, до 2 ночи не спал - читал. Может, ее сюда закинуть, поскольку она и на afralisp'e тоже есть вроде как в свободном скачивании?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Упс... Все равно thanks огромаднейший.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Я так понял, что kpblc создает новый размерный стиль в документе, где этого стиля раньше не было. Ваша же программа создает в пределах одного и того же документа новый стиль, содержащий те же установки, что и старый. Сорри. но это не от той стенки гвоздь.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Всем откликнувшимся - огромное человеческое спасибо. Лентяю - отдельный земной поклон за книгу. Alaspher - за иллюстрации. Проблема решена. Если интересно, код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,304
|
А вот теперь, когда задача решена, может быть подумать - а нужно ли вообще программное создание стиля?
Стиль - именованная совокупность набора значений системных переменных, устанавливающаяся при выборе стиля. Если оформлять размеры по-разному, использовать стиль в голом Автокаде удобно. Но если дошли до программирования, то цель, возможно, обеспечить единообразие - то есть оформление размеров по единому стандарту. Для этого стиль не нужен - можно просто устанавливать требуемые значения, чтобы в текущем состоянии размеры изображались "как надо". Это будет гораздо нагляднее маловразумительных DXF-кодов. "Любимые" значения можно вообще в файле держать, даже списком. Это позволит не менять программу, если встретишь другую любовь. Эт так, в порядке возможного варианта. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
> ShaggyDoc : Да пробовал я так, пробовал. Не фонтан, если честно - постоянно работать с системными переменными - достаточно медленно, дополнительно надо отслеживать, какой размер проставляется... В общем, либо у меня руки кривые, либо мне лень. Скорее всего, и то, и другое. В общем, мне показалось это более приемлемым вариантом. Кстати, там в комментариях на каждый dxf-код соответствующая ему системная переменная забита - это к вопросу о маловразумительности.
Ладно, если не интересно, то и бог с ним, оставим тему в покое, она сама и умрет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
>ShaggyDoc
Мне очень понравилось решение kpblc. Я тоже употребляю размерные стили, хранящиеся в прототипе. Для единообразия (архитектурно-строительное проектирование) использую целых два стиля: с выносными линиями и без. Переключение между стилями осуществляется выбором кнопки (пользовательской) проставления размера: с выносными линиями или без оных. Но в случае его (прототипа) очистки, неиспользуемые стили уходят. Безвозвратно! В этом случае программное задание стиля (после проверки на его наличие) выручает. Так я и делал, но попроще (по-инженерному), текст же kpblc учел кажется все варианты. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
> Alan : можно и не проверять, а просто повторно вызывать - override-стиль не создается, все настройки переходят на "стандартные", которые заданы в dxf-списке. Если чего-то там не нравится в этих настройках, исправить, по-моему, 5 минут.
Несколько замечаний: 1. Группу 70 не трогать - она вкупе с именем (группа 2) определяет область применения стиля. 2. Устаревшие группы не использовать - ибо нефиг ![]() 3. Для группы 340 предварительно надо сделать текстовый стиль 4. Для групп 342, 343, 344 при условии использования закрашенной стрелки придется извращаться - т.к. при создании нового стиля эти настройки по умолчанию берутся с текущего. Соответственно приходится туда каким-то манером вколачивать dimblk = "", что через (tblobjname) провернуть нереально.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,304
|
Программа-то мне тоже понравилась.
А вот насчет разных стилей в одном проекте - сомнение. Особенно "архитектурных". Допустим, размеры проставлены "архитектурно", без выносок. Так можно где-нибудь на чисто "архитектурных" чертежах. Но далее эта же подоснова попадет к строителям, смежникам. А там такие вольности уже не пойдут. Часть будет одним стилем, часть другим. Плюс еще другие "архитектурные" особенности (недовводы, непараллельность стен осям, "красивые" до ужаса шрифты и т.п.) - общий вид ужасный. Да еще любовь к расчленению размеров (ij, как я нарисовал, на века), когда переопределение стиля не спасет. PS. К качеству программы, над которой kpblc хорошо потрудился это не имеет отношения. PPS. Втягивание в дискуссию не о программе исключительно с провокационной целью. |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
>ShaggyDoc
Цитата:
ИМХО, надо дать проектировщику возможность выбора сообразно конкретному случаю. Цитата:
А за несоблюдения карать сообразно революционной целесообразности. Битьём!!! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,237
|
Поддамся на провокацию (ессно, со шкурными интересами) - именно так, как описал ShaggyDoc, работают у меня архитекторы. Конструктора рыдают - у кого еще силы остались. На все попытки урезонить архитекторов те отвечают "Мы творческие люди, и нам техника ни к чему". Именно поэтому эту прогу + обновление всех текстовых и размерных примитивов на основе тутошней же функции kpblc-ent-modify повесить на сохранение. Хоть что-то...
А насчет остального - конструкторы уже начинают вроде как заворачивать чертежи обратно на доработку, если шаг не соблюден, если взорваны размеры (пока говорят, если таких большая часть, но, надеюсь, придем к тому, чтобы даже один такой размер служил основанием для доработки), если не использовалась orthomode, кроме косых кусков, ну и так далее. Что самое интересное, учиться из 35 человек могут, хотят и учатся всего 6-7, при всем при этом трое - "тетушки" предпенсионного возраста. Какое удовольствие с ними работать - не описать! Так что все для них, родных.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |