|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Код:
Код:
*ВАРНИНГ* Толком не тестировал - претензии не принимаются! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
> Alaspher : Сэр, предупреждать о таких шутках надо. Еле вернулся.
> Олег К.: Цитата:
Цитата:
Намеков было достаточно. Не все и не всегда можно (и нужно) решать лиспом, иногда достаточно сделать всего один шаг - открыть тот же New Features и посмотреть там. В общем, "учить матчасть".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Цитата:
|
|||
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
и добавить хоцца - даже то что можно решить лиспом, можно было бы для начала и поискать - скорее всего оно уже есть готовое
впрочем надо отдать должное - автор темы по крайней мере пытается четко изложить то что ему нужно а нужно в общем случае нечто вроде "сканер визитных карточек", только на LISP под AutoCAD применительно к основной надписи - это блин сложная задача с коммерческим подоплеком |
|||
|
||||
Машиностроение, Проектирование Регистрация: 15.09.2003
Москва
Сообщений: 1,113
|
Цитата:
Почему на 3метра в землю, за что? Ведь пожить то хочется! ЗЫ: Для тех кто там был и смог вернуться: Как там? Есть свет в конце тоннеля? |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Цитата:
|
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
>> ВСЕМ (к посту 62)
С этим-то я согласен, просто темы сразу не убивайте. Это к тому, что здесь творится: то ли разделить на 3-4! темы, то ли наплевать и оставить как есть (ну это уже к модераторам). Позвольте вернуться к основной теме. Неужели ничего подобного никто не делал? Не помню чтобы это было в стандартных функциях КАДа или в экспресах (если есть - ткните носом!). Поиск в данлоде по словам "layout" и "лист" ничего не выдал, искать по таким параметрам на форуме просто страшно :wink: . Поиск на форуме по "операции с листами" выдал всего одну ссылку, если не лень сами посмотрите - оччень интересно. На AutoCAD.ru нашлась только "z_layout_number.lsp", но она работает с блоком. И все? Простейшая задача: в файле два лайота/листа, на каждом надо удалить все объекты, попадающие в квадрат 0,0-10,10. Как я это решил: составляется список листов и на каждом ssget секущей рамкой по координатам. Но нужно делать активным каждый лист и zoom-extents. Надеюсь и без лисп-кода понятно. Можно ли это решить без активации каждого листа? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
> Олег К. : вопрос решается стандартными средствами - поля, sheetsetmanager (mitjaj опередил ) либо блоки.
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
Блоки и поля уже разобрали, с ними все понятно. Подшивки - надо посмотреть поближе, никогда не пользовался (отсталые мы :? )
>> "Кулик Алексей aka kpblc" На фига? Во-первых, для самообразования. Как я понял, используются функции VBA - это для меня сложновато, не дорос еще. Получается простым ЛИСПом такая задача не решается. Во-вторых, зачем это конкретно понадобилось: срочно в полностью готовые чертежи объекта по требованию заказчика нужно было вставить подписи исполнителей (раньше подписывали только "бумагу"), около 500 листов. В общем, набросал программу вставляющую блоки-подписи в графы штампа. В блоке-форматке находятся только линии и не меняющийся текст, все остальные надписи - текстом вне блока (да, есть у меня динамический блок-форматка с аттрибутами, и форматку с полями сделал, но их внедрение - отдельный разговор). Из блока можно узнать только точку вставки и размер формата; далее вычисляется где находится нужная графа штампа и ssget'ом из нее берется текст фамилии; ну и вставка нужного блока-подписи рядом. Короче, не понравилось мне, не красиво, захотелось улучшить! А тут тема на форуме похожия возникла! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Ну только если для самообразования
Кстати, о соответствии VBA <-> vl-расширение очень хорошо написано на http://www.cad.dp.ua/stats/vla_doc.php - для меня это вообще стартовая страница оочень долго была Благо VB(A) более-менее знакомо. По поводу "во-вторых"... Черт, если бы не динамика блока, я бы посоветовал попробовать работать напрямую в него (то есть "подписи" зашарашивать напрямую в описание блока, это вполне реализуемо). Но в динамические блоки я не пробовал такое сделать, поэтому давай забудем про этот метод Поэтому у меня к тебе есть предложение: вышли файл "что было" и "что должно получиться", есть у меня идейка одна, может и сработает. И без ssget'a обойтись можно попробовать. Понимаешь, из конкретной вставки блока (хоть простого, хоть динамического) можно получить все что угодно. Если известно имя блока, то задачка в общем-то упрощается. В целях "отладки и пояснения" код сделал в принципе не очень верным - в локальные переменные, в частности, не внес почти ничего Код:
--- Код отредактировал, убрал откровенные ляпы.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
Ни себе чего... Обалдеть можно как красиво!
Я ушел в другой мир, посыпать голову пеплом и жалеть себя
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
>> Кулик Алексей aka kpblc, Alaspher
Стоп, стоп, стоп. Я в таком темпе работать не могу - основной работы до черта. Хоть и подключен все время к форуму, бывает за день даже в список тем некогда заглянуть. Вы правы, без примеров не получится, постараюсь за выходные собрать все необходимое (прогу подредактировать придется), в понедельник выложу сюда. Мне уже не горит, просто интересно. Насколько я понимаю, подписи в виде полилиний/сплайнов в эл.чертежах юридической силы не имеют (речь о формате dwg). Или у нас с законодательством настолько глухо, что вообще непонятно? Знаю что была подобная тема, но там про электронную подпись спрашивали и ни к чему не пришли. |
|||
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 307
|
В прицепленном архиве сама прога и необходимые файлы, краткие пояснения в текстовике. Три файла с блоками форматов - просто посмотреть, можно ли с такими работать.
Программа была написана "по-быстрому" для себя, поэтому использовал только те функции в которых уверен и отсутствуют некоторые проверки. Собственно вопрос: можно ли в данной ситуации избавиться от SSGETa и соотв не перебирать листы? Да и вообще интересны рекомендации. [ATTACH]1185173197.rar[/ATTACH] |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
"Пройти" по листам не активируя их можно. В том числе можно и оперировать примитивами. Простейший пример прохода есть в постах 74 и 75. Там происходит выборка вставок блоков, но это не принципиально - можно обработать любой примитив. Из описания примитива можно выдернуть всё что нужно. Это, что касается активации и ssget - и то и другое можно обойти.
В той программе, которая сейчас сделана, есть одна проблема - она сделана "по-быстрому, для себя", то есть любая переделка сразу приведёт к эффекту домино - всё посыплется. Собственно, если браться за переделку, то переделывать надо почти всё, иначе лучше не мучаться - работает и слава богу. В конце концов, может лучше написать чтонибудь совсем другое, что ещё не автоматизировано. В блоках, всё может быть и так - опять же критерий правильности - работоспособность и удобство. С точки зрения чистоты решения, я бы предпочёл, во первых - выделить штампы в отдельный блок (не динамик), а во вторых - неизменную (в каждом файле) часть сделать постоянными атрибутами, а изменяемую обычными. Многострочные надписи можно сделать и мультисторочным текстом (при изменении переопределять блок). Можно, не значит - нужно. Но повторю - если работает и устраивает, то лучше потратить время на другую задачу. Через год - другой может многое поменяться и не факт, что понадобится эта программа. |
|||