|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Нужен лисп (пронизыватель лайаутов)
проектировшик
СССР
Регистрация: 01.01.2007
Сообщений: 5,149
|
||
Просмотров: 25749
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Цитата:
Шансов дождаться минимум.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
Ну, в принципе, нечто подобное написал недавно. Вот только мой лисп не удаляет объекты, а вставляет блоки из библиотеки (очень срочно понадобилось на все листы объекта поставить подписи разработчиков).
А идея хорошая, если кто не напишет раньше, может возьмусь. |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
и это во всех темах ЗЫ: может начать использовать собственные мозговые возможности, ты не думал что такая задача встает у всех разработчиков РД и не все ее решают с помощью лиспа, ИМХО лучше использовать то что ты знаешь и умеешь |
|||
![]() |
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,291
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Это в ПЛ-ГРАФ был графический примитив - светящийся вектор на экране. А в AutoCAD'е даже точка (point) далеко не примитив. Перевод слова entity как "примитив" применительно к AutoCAD'у не годится, уж лучше оперировать понятием "элемент". Да ведь ортодоксов не перешибешь. И дело здесь не в уничижительности, а в нелепости. Если точку или отрезок еще можно назвать, скрепя сердце, примитивом, то блок или текст уж никак примитивом не назовешь. Объект - самое подходящее слово, независимо от того, как это пишется на английском языке.
.................................... Опять кому-нибудь покажется, что я зануда. :twisted: |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
> dextron3 : Из всего вышесказанного: блок не разбивать, учить матчасть и показывать предпринятые действия.
> Alaspher, Profan : Хорошо, у меня вопрос (поскольку на заголовок лично я отвечать не собираюсь): в ADT есть такая "штукенция", как AEC_WALL (к примеру). Подвергается массе операций, изменений, дополнений и т.п., но не в этом суть. После применения к ней однократного _explode она превращается в анонимный блок. Еще раз - набор 3DFACE. Еще раз - набор отрезков и дуг. А тем не менее с ней можно работать именно как с обычным entity - менять слой, цвет, начальную и конечную точки, применять vlax-curve-* функции и т.п. Вопрос: как ее обозвать, чтоб и понравилось всем, и логически она не сильно отличалась от того же LINE? Примитив? Объект? Сущность? Или более близкое - любой размер. Применив к нему 2 раза _.explode, тоже получим набор уже неразбиваемых entity. Размер кем обзывать будем? > Profan : Я тоже зануда ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Меня удивляет такое большое количество лейаутов на основе одной модели. Чертежи ведь наверняка разные, на каждый из них приходится собственный кусок модели. Разделить эту модель-монстр на несколько файлов никакой сложности нет. А удобств прибавится. Лейауты хороши, когда они создаются из одной неделимой модели, например, дорога, трасса какая-нибудь, большое здание...
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для Кулик Алексей aka kpblc.
Вот эта возможность последовательного расчленения объектов ADT меня всегда смущала и сейчас смущает. Конечно, по сравнению с объектом более высокого порядка (типа "Wall" - "Стена") объекты типа "Line" ("Отрезок") и "Arc" ("Дуга") можно считать примитивами. Однако я почему-то не могу смириться с таким положением вещей и странным образом не могу считать стену в ADT самостоятельным объектом со своими физическими свойствами. Я уже писал когда-то, что стену в ArchiCAD'е я воспринимаю именно как физический объект, а стену в ADT - как объект геометрический, слепленный с помощью разных ухищрений из отрезков и дуг. Из-за этого я и ADT не могу воспринимать серьезно, заскок какой-то в мозгах... Именно поэтому я всегда твердил, что ADT - не отдельный самостоятельный продукт, это всего навсего AutoCAD. Версия AA2008 как раз подтвердила это мое представление. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Ух, пофлудю!
> Vova : лично я удивляюсь уже другому (но это тема отдельного разговора, хотя и связана с автором топика) ![]() ![]() > Profan : Ну не знаю, я AA2008 не видел. И вряд ли увижу ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
> Profan, kpblc
Вы опять ориентируетесь на бытовой перевод терминов. Примитив [primitive], в техническом контексте означает лишь - единицу представления, т.е. нечто, чем можно оперировать, как одним целым. Это совсем не запрещает примитиву быть составным (из других примитивов) - это просто иной уровень представления. В этом смысле, перевод entity, как элемент менее корректен, поскольку элемент [element] подразумевает неделимость, т.е. это нижний уровень примитивов. Перевод, как "объект" - вполне корректен, но менее локализован. Объект [object] - это куда более общее понятие, чем примитив, синоним - "нечто". Если построить шкалу обобщённости понятий, то получится: элемент -> примитив -> объект, т.е. - любой элемент является примитивом, но не наоборот и также любой примитив, это объект, но обратное не обязательно. Назвать так, что бы понравилось всем, видимо не удастся - так просто не бывает. ![]() Видимо, я ортодокс. ![]() |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
Цитата:
в лайаутах данная команда не работает, в модели работает
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
Цитата:
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
Цитата:
1 Общие данные 2. Схема расположения фундаментной плиты 3. Схема армирования фундаментной плиты 4. Спецификация фундаментной плиты на отм. -3.600 5. Схема расположения колонн 6. Колонны Км1, Км2, Км3 7. Спецификация колонн 8. Схема расположения стен подвала 9. Спецификация стен подвала 10. Схема опалубки плиты перекрытия и балок на отм. -0.100 11. Спецификация балок на отм. -0.100 12. Схема нижнего армирования плиты перекрытия на отм. -0.100 13. Схема верхнего армирования плиты перекрытия на отм. -0.100 Спецификация арматуры плиты на отм. -0.100 14. Схема расположения балок на отм. 3.200 Балка Бм1, Бм2 15. Балка Бм3-Бм6 16. Спецификация балок на отм. 3.200 17 Схема опалубки плиты перекрытия на отм. 3.200 18 Схема нижнего армирования плиты перекрытия на отм. 3.200 19 Схема верхнего армирования плиты перекрытия на отм. 3.200 Спецификация арматуры плиты на отм. 3.200 20 Схема расположения балок на отм. 6.500 Балка Бм1, Бм2 21 Балка Бм3-Бм5 22 23 Спецификация балок на отм. 6.500 Схема опалубки плиты перекрытия на отм. 6.500 24 25 Схема нижнего армирования плиты перекрытия на отм. 6.500 Схема верхнего армирования плиты перекрытия на отм. 6.500 26 Спецификация арматуры плиты на отм. 6.500 27 Схема расположения кирпичной кладки на отм. -0.100 28 29 Схема расположения кирпичной кладки на отм. -0.100 Спецификация кирпичной кладки 30 Схема расположения кирпичной кладки на отм.6.500 31 Спецификация арматуры кладки и сейсмопояса на отм.6.500 32 Схема расположения мауэрлатов лежней и балок 33 Схема расположения стропильных ног 34 Сечения 1-1, 2-2. Узел А 35 Спецификация деревянных элементов
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
> Alaspher : Я тоже, честно говоря, предпочитаю определение "примитив"
![]() ![]() > dextron3 : Уй, мать моя женщина... #25: Команда _etransmit отвергается сразу. Понятно... #26: Используй ADT. И еще раз посмотри на пост #16. только внимательно!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
Уважаемые знатоки ЛИСПа, не отвлекетесь ли Вы на минутку от обсуждения сущности entity и не ответите ли на пару вопросов по основной теме?
![]() 1. Допустим есть файл с двумя листами формата А2 и А3х3 (каждый в своем лайоте, но точные их координаты неизвестны). Штампы по форме 3 из 21.101-97, в них нужно изменить текст во второй графе (название объекта). Форматки у меня сделаны блоками с соотв именами, поэтому расположение графы на листе вычисляю по точке вставки и имени блока. Второй вариант - блок форматки с аттрибутами - оно конечно проще всего. Find&Replace конечно работает, но текст на листах может быть разным. Вопрос: есть еще какие способы такое сделать? Естественно в автоматическом режиме. 2. Не в тему, но давно интересует вопрос - можно ли заблокировать один из объектов в чертеже от изменения координат? Прикол с текстом, дефпоинтом и нулевым слоем знаю, вот только текст не печатается ![]() PS: мне кажется название "объект Автокада" вполне корректное. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да переделайте вы один раз форматки на поля, и все вопросы отпадут, ведь форматку в каждом листе небось не чертите, а готовую вставляете, что тут сложного и никакого лиспа не надо.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
>Дима_
Если я сделаю с полями связанными со свойствами подшивки, то как отправить такой чертеж на другой комп? Как задать расположению подшивки относительный путь? "_etransmit" подшивки подшивает, но пути не переделывает, поэтому связь все равно теряется. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Варианта А - вместе с подшивкой - я так и делю, проблем не вызывает (даже если файла подшивки нет, то просто при загрузке - выбрать игнорировать и все остается как было).
Вариант Б - ссылку на текст где-то в модели (отдельная непечатанная область, можно даже на невидимом слое). Вариант С - если так парит потеря даных - DWF (PDF) - точно ничего не пропадет. Удачи.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
>Олег К.
Проще всего, всёже с переопределением блока см. пост №8. Если же надо иметь разное заполнение, то, как сам же и сказал - F&R. Ну и поля с подшивками вполне рабочие инструменты. Защитить от редактирования примитив не блокируя слой, думаю - не получится. |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
Цитата:
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
А черт... Я так надеялся, что dextron3 все же сам начнет копаться...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
VVA спасибо!!!
это ты в оранжевой книжке по автокаду подсмотрел? теперь можно создать готовые лайауты с узлами КЖ и просто подставляй планы, и название объекта меняй и готово
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
Цитата:
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Цитата:
![]() ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
2serg01 & Дима_ - чет я про поля в Word не вкурил - там все точно так же, примочка то с полями виндозная. также в свойствах документа создаем во вкладке "прочие" любые нужные нам поля... разница только в том что Word имеет кнопку принудительного обновления полей (F9)
2гуру - а VVA случайно не является автором оранжевой книжки? 2all - по крайней мере теперь известны два способа создания САПР на базе AutoCAD, один из них прочитать одноименную книгу... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
А второй?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
какие-то вы нецелеустремленные...
второй способ требует определенного труда, в основном он заключается в каждодневном ежечасном повторении мантры "нужен лисп", ибо как известно Gutta cavat lapidem non vi, sed saepe cadendo (капля долбит камень не силой удара, а частотой падения) ДА, труд и только труд, совместный самозабвенный труд добровольных помощников на мое благо способен изменить моё благосостояние, главное не лениться и регулярно повторять мантры |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Ну ты не учитываешь один маленький момент: воду можно вообще отвести в другую сторону
![]() ![]() Я пока в раздумках ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Хорошо быть целеустремленным в начале пути. Но чем дальше идешь по пути создания САПР, тем цель становиться все отдаленнее и туманнее. Сейчас мне эта цель видится гораздо дальше, чем 15 лет назад, где-то в районе туманности Андромеды.
Цитата:
|
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
Цитата:
>> да в общем-то всем Если некто не хочет изучать ЛИСП и писать программы сам - его проблеммы. Но ведь на форуме не только гуру собрались, некоторые еще учатся. Хоть намеками давайте понять в каком направлении решать задачу или какие функции использовать. Цитата:
![]() |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Код:
Код:
![]() *ВАРНИНГ* Толком не тестировал - претензии не принимаются! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
> 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
Смоленск
Сообщений: 308
|
>> ВСЕМ (к посту 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
С.-Петербург
Сообщений: 40,411
|
> Олег К. : вопрос решается стандартными средствами - поля, sheetsetmanager (mitjaj опередил
![]() Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
Блоки и поля уже разобрали, с ними все понятно. Подшивки - надо посмотреть поближе, никогда не пользовался (отсталые мы :? )
>> "Кулик Алексей aka kpblc" На фига? Во-первых, для самообразования. Как я понял, используются функции VBA - это для меня сложновато, не дорос еще. Получается простым ЛИСПом такая задача не решается. Во-вторых, зачем это конкретно понадобилось: срочно в полностью готовые чертежи объекта по требованию заказчика нужно было вставить подписи исполнителей (раньше подписывали только "бумагу"), около 500 листов. В общем, набросал программу вставляющую блоки-подписи в графы штампа. В блоке-форматке находятся только линии и не меняющийся текст, все остальные надписи - текстом вне блока (да, есть у меня динамический блок-форматка с аттрибутами, и форматку с полями сделал, но их внедрение - отдельный разговор). Из блока можно узнать только точку вставки и размер формата; далее вычисляется где находится нужная графа штампа и ssget'ом из нее берется текст фамилии; ну и вставка нужного блока-подписи рядом. Короче, не понравилось мне, не красиво, захотелось улучшить! А тут тема на форуме похожия возникла! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Ну только если для самообразования
![]() Кстати, о соответствии VBA <-> vl-расширение очень хорошо написано на http://www.cad.dp.ua/stats/vla_doc.php - для меня это вообще стартовая страница оочень долго была ![]() По поводу "во-вторых"... Черт, если бы не динамика блока, я бы посоветовал попробовать работать напрямую в него (то есть "подписи" зашарашивать напрямую в описание блока, это вполне реализуемо). Но в динамические блоки я не пробовал такое сделать, поэтому давай забудем про этот метод ![]() Понимаешь, из конкретной вставки блока (хоть простого, хоть динамического) можно получить все что угодно. Если известно имя блока, то задачка в общем-то упрощается. В целях "отладки и пояснения" код сделал в принципе не очень верным - в локальные переменные, в частности, не внес почти ничего ![]() Код:
--- Код отредактировал, убрал откровенные ляпы.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Ни себе чего... Обалдеть можно как красиво!
Я ушел в другой мир, посыпать голову пеплом и жалеть себя ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
>> Кулик Алексей aka kpblc, Alaspher
Стоп, стоп, стоп. Я в таком темпе работать не могу - основной работы до черта. Хоть и подключен все время к форуму, бывает за день даже в список тем некогда заглянуть. Вы правы, без примеров не получится, постараюсь за выходные собрать все необходимое (прогу подредактировать придется), в понедельник выложу сюда. Мне уже не горит, просто интересно. Насколько я понимаю, подписи в виде полилиний/сплайнов в эл.чертежах юридической силы не имеют (речь о формате dwg). Или у нас с законодательством настолько глухо, что вообще непонятно? Знаю что была подобная тема, но там про электронную подпись спрашивали и ни к чему не пришли. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
В прицепленном архиве сама прога и необходимые файлы, краткие пояснения в текстовике. Три файла с блоками форматов - просто посмотреть, можно ли с такими работать.
Программа была написана "по-быстрому" для себя, поэтому использовал только те функции в которых уверен и отсутствуют некоторые проверки. Собственно вопрос: можно ли в данной ситуации избавиться от SSGETa и соотв не перебирать листы? Да и вообще интересны рекомендации. [ATTACH]1185173197.rar[/ATTACH] |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
"Пройти" по листам не активируя их можно. В том числе можно и оперировать примитивами. Простейший пример прохода есть в постах 74 и 75. Там происходит выборка вставок блоков, но это не принципиально - можно обработать любой примитив. Из описания примитива можно выдернуть всё что нужно. Это, что касается активации и ssget - и то и другое можно обойти.
В той программе, которая сейчас сделана, есть одна проблема - она сделана "по-быстрому, для себя", то есть любая переделка сразу приведёт к эффекту домино - всё посыплется. Собственно, если браться за переделку, то переделывать надо почти всё, иначе лучше не мучаться - работает и слава богу. В конце концов, может лучше написать чтонибудь совсем другое, что ещё не автоматизировано. В блоках, всё может быть и так - опять же критерий правильности - работоспособность и удобство. С точки зрения чистоты решения, я бы предпочёл, во первых - выделить штампы в отдельный блок (не динамик), а во вторых - неизменную (в каждом файле) часть сделать постоянными атрибутами, а изменяемую обычными. Многострочные надписи можно сделать и мультисторочным текстом (при изменении переопределять блок). Можно, не значит - нужно. Но повторю - если работает и устраивает, то лучше потратить время на другую задачу. Через год - другой может многое поменяться и не факт, что понадобится эта программа. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
ИМХО, ИМХО... Без проверок (попросту не было времени) и тестировок. Олег, попробуй код (но учти, за последствия не отвечаю!
![]() Код:
> Alashper : У Олега задача, как я понял, достаточно проста. Надо вычислить для каждого блока форматки (а маска *format*) атрибуты фамилий (маска family[0-9]) и по указанному смещению (20) поставить на каждую фамилию свой блок "подписи". P.S. Если задачка не та, то сорри.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Задача-то по изменению части основных надписей актуальная. Очень часто в последний момент что-то изменяется, например наименование стройки или обозначение. И надо быстро изменить.
Но решать надо принципиально не так, как в исходной "постановке". Это "строительство моста вдоль реки". 1. Основную надпись надо делать только блоками - обычными, не динамическими, не связывая с рамками. Вариантов блоков несколько - по ГОСТ. 2.Блоки с фиксированными именами. 3. Вся переменная часть - в атрибутах. Никаких многострочных и простых текстов. Количество атрибутов соответствует количеству строк - для наименования стройки - три атрибута и т.д. При соблюдении этих условий задача изменения (и не только эта) решается легко, причем независимо от того, где нарисованы "штампы" - в модели или в лэйоутах. И независимо от версии Автокада. Выбираются блоки с известными именами и в них изменяются значения известных атрибутов. Все делается функцией, в которую требуемые замены передаются аргументами. Для универсальности данные лучше поместить во внешний файл. В ruCAD форматки рисуются программно, "штампы" в блоках. В папках проекта лежат файлы format.ini, в которых все записано. Изменив, например, название объекта, можно "щелкнуть по кнопке" и изменить, в соответствии с образцом, все основные надписи. Задачу надо правильно ставить изначально, чтобы потом не изощряться в "пронизывании". |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
|
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
>> ВСЕМ
Спасибо, что откликнулись. Добавлю некоторые пояснения к сложившейся ситуации. В представленном архиве есть шаблон форматок применяемый сейчас в нашей конторе - там в блоке только линии и неизменяемый текст, все остальное текстом вне блока. Отсюда и сложность обработки. Еще в архиве есть примеры форматок в виде блоков с атрибутами и полями, они могли бы использоваться, но нет, пользователи (..... ,,,, ..) говорят слишком сложно для них, делай как по проще (но мне-то как раз проще блок с атрибутами). Вообще администрирование КАДа не основная моя работа, занимаюсь в свободное время, денег за это ессно не платят и биться головой об стену не собираюсь. Раньше форматы рисовали вообще линиями и текстом, вставка подписей даже в таком варианте не прошла бы. Ладно, это все отступление от темы. Теперь о сложностях. Пользователи умудряются смещать тексты в штампе (хоть и в пределах графы, но все же) и даже весь блок форматки. Приходится ориентироваться на листе по точке вставки блока формата. Жаль нельзя заблокировать определенный объект то изменения его координат. В графе «фамилия» пишется только фамилия без инициалов, иногда возможны совпадения. Для правильной вставки подписи в таком случае введена проверка должности. Мда-а, из “песни” слов не выкинешь. Если изменять прогу под атрибуты (к примеру) – придется перелопачивать всю. Кстати, прога оказалась не на один раз, можно еще повозиться. >> Alaspher, ShaggyDoc Есть у меня именно такая форматка – блок с атрибутами, почему не использую объяснил выше. Показывал юзерам программу рисования формата из РуКАДа – слишком сложно, (… ,,,,,,,,). Если делать штамп отдельным блоком – стоит ли его включать в блок форматки или оставить отдельно? Еще есть боковой штамп согласования – тоже отдельно? А вообще, не все ли равно где находятся атрибуты: в полном блоке формата, или в отдельном блоке штампа? В данном случае дин.блоки не рассматриваются. Понял, что штампы с полями не подходят – в одном файле могут находиться листы, которые делали разные люди (поэтажные планы или схемы сетей). >> Кулик Алексей aka kpblc Программу пока не тестировал. Как я понял для правильной работы нужен список lst (и ежу понятно), фамилия является атрибутом – не подходит под исходную постановку вопроса, но возможно сработает для варианта ShaggyDocа. Берется точка вставки этого атрибута, далее смещение на 20 единиц. Получается точки вставки атрибута и блока подписи должны находиться в пересечении левой и нижней линий штампа (соответствующих). Переделывать ничего не прошу, основа есть – сам додумаю. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
полный оффтоп
Цитата:
>> ShaggyDoc Скорее всего вопрос не к Вам, но когда наконец заработает форум РуКАДа? |
|||
![]() |
|
|||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Цитата:
Цитата:
Варианты реальные - а) рисование плоской аксонометрии "как на ватмане". Отработано давно. То есть проводим линии сами под нужным углом и вставляем в нужное место нужные УГО. б) рисование однолинейной схемы в 3D по реальным трассам с последующим построением плоской проекции под 45. Программы преобразования есть. Но тут очень много нюансов, в результате которых после "автоматического" проецирования ручной работы еще больше будет. А в некоторых случаях можно. http://cad.kurganobl.ru/253.html Цитата:
Вот схожу в отпуск ("брошу пить, возьмусь за вас" (С)) , весь этот треп убью вместе с некоторыми активистками, и открою настоящий форум заново. |
||||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
Странно, на почту не приходят сообщения о обновлении темы, только у меня такое?
>> ShaggyDoc Да я только за, использовать программу рисования форматов. Но приходится работать с теми кто есть, и то встречаются экземпляры "Я как научился чертить, так и буду. И ваш СТП мне не указ". Свои нервы мне дороже. Согласен, каждую форматку в отдельный блок = много блоков (у меня получилось около 35), зато можно по имени блока узнать формат листа и использовать в программах. Цитата:
Система РуКАД (RC2+SP4) давно используется ОВшниками - довольны. Вот только при работе компа под профилем юзера с ограниченными правами возникают ошибки. С аксонометрией в частности. По форуму РуКАДа - давно пора, не Вам же одному на все вопросы отвечать. Активисток не бейте, их мало осталось ![]() Совсем обнаглею и спрошу: как стать "доверенным пользователем" системы РуКАД-3D, или хотябы тестером? |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
2 Олег К.
так какие проблемы - заставить программу, которая рисует форматку, рисовать её в виде блока с добавлением соответствующих атрибутов (имя формата там путь к файлу...) а по аксонометрии здесь я выкладывал примитивнейшую программку для облегчения процесса, но так как со стороны интерес угас доводить её до ума не стал |
|||
![]() |
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,149
|
Цитата:
![]() ![]() ![]()
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Аксонометрия (там, где спрашивается выбор объектов, начало псевдокоординат и рисуется аксонометрия) вообще ничего никуда не пишет. Разумеется, могут быть какие-то ошибки, но никак они не могут быть связаны с правами пользователя. Это чистая арифметика, а программа очень простая. Цитата:
|
|||
![]() |