Помогите начинающему разобраться с блоками - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите начинающему разобраться с блоками

Помогите начинающему разобраться с блоками

Ответ
Поиск в этой теме
Непрочитано 14.03.2007, 09:58
Помогите начинающему разобраться с блоками
Diman111
 
промышл проектант
 
Изовсехщелей
Регистрация: 26.05.2005
Сообщений: 323

Вопрос. Есть желание написать свою програмку для работы с блоками, для чего нужно понять как с ними работать. С примитивами типа линий все ясно - entget entmake. с блоками неясно как добраться до атрибутов.

(setq prim (entget(cdr(entsel))))

в описании кодов нет прямой ссылки на атрибут. Разжуйте пожалуйстка как посредством Лиспа и dxf добраться до атрибутов и узнать их количество

все что написано в литературе - tblsearch next object - не совсем понятен принцип работы именно с блоками и атрибутами в блоках.
Просмотров: 9771
 
Непрочитано 22.12.2007, 14:27
#21
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Да не надо мучиться с попытками постоянно удалять неиспользуемые блоки!
Вот уже 18 лет успешно использую простую схему:

1. В библиотеки собираются маленькие блоки однотипного назначения. В одной библиотеки - трубопроводная арматура для схем, в другой - топографические знаки и т.п. Если пользователю понадобилась, например, задвижка, то через минуту может понадобиться вентиль из этой же библиотеки.

2. Имеется функция проверки наличия определения блока в чертеже. Ей передается имя библиотеки (относительное) и имя блока. Если этого блока нет, вставляется вся библиотека. Теперь все определения блоков из нее имеются в чертеже.

3. В момент вставки библиотеки функцией command на этапе запроса точки вставки выполняется автоматическое прерывание. Теперь все определения блоков есть, но вставок нет. В чертеже при этом куча "лишних", пока не использованных блоков.

4. "Лишние" блоки лежат, никого не трогают. Да, занимают некоторое место, но это мелочь.

5. Команда PURGE может выполняться или не выполняться в любой момент.Но уже независимо от вставок.

6. Для "больших" блоков, например 3D моделей, где каждый блок может весить по 1Мб и более использование библиотек нецелесообразно.

А вот для маленьких "блочишек" очень даже хорошо. Некоторые библиотеки у меня живут еще с AutoCAD-10. В одной из библиотек 150 блочков общим весом 200 Кб. Если эти блоки разложить в отдельные файлы, то в сумме они потянут около 5Мб, так как в каждый отдельный файл записывается больше общей информации, чем описания примитивов.

7. Вставка конкретного одного блока из другого файла через DBX возможна, но ненадежна. Работать будет, но в присутствии автора. А нужны абсолютные гарантии, так как именно на работе с маленькими библиотечными блочками очень многое держится. Сами вставки блоков реализуются во множестве вариантов (однократная, многократная, с привязкой к линиям и т.п.).
ShaggyDoc вне форума  
 
Непрочитано 22.12.2007, 15:21
#22
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


+1 К посту №21 Функцию можно посмотреть здесь

> Олег К #20 А потом появяться в библиотеке динамические блоки. Отгребешь гемора еще больше. ИМХО лучше оставить их в покое до окончания работы, а потом сделать пурже.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.12.2007, 12:07
#23
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 308


Ну конечно же я читал "САПР на базе...". И программа составлена именно по такому принципу. Просто понадобилось подробнее разобраться с определенным куском кода, вот и отделил его от остального. Началось все здесь создание собственной подписи???, где-то с середины страницы.
Для чего это понадобилось:
По требованию начальства в dwg-файлах в форматках проставляются подписи исполнителей (dwg остаются только в нашем архиве, заказчикам - картинки с них). Надоело блоки вставлять вручную, написал программу, которая в нужные места вставляет нужные подписи. Поскольку все блоки подписей хранятся в одном файле (показалось нецелесообразным делать их отдельными), в обрабатываемом файле оказывается много ненужных блоков. Вот их то и зачищаю в конце работы программы. Ведь в данном файле они никогда уже не понадобятся.
Блоки не динамические и без атрибутов.
В первом варианте вставка/удаление были реализованы через command, сейчас переделываю под vla-функции.
Олег К. вне форума  
 
Непрочитано 24.12.2007, 14:27
#24
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Если уж кому-то, как выражаются в определенных кругах, "хочется самому себе срок подписать", то делайте так.

А вообще-то именно для таких "подписей" библиотека и не нужна. Пусть каждый лично свою личную подпись ставит. Это дело легко автоматизировать - один щелчок, и подпись на месте. Причем лучше, если она вставляется как XREF только с компьютера владельца. Ушел DWG "налево" - и подписей не будет, а на момент делания "картинки" - подпись на месте.

Иначе будет как у незабвенной Серны Михайловны - "факсимиле", которые кто угодно и куда угодно будет ставить. Универсальная "роспись" за любого человека.
ShaggyDoc вне форума  
 
Непрочитано 24.12.2007, 16:09
#25
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 308


Да понимаю я что так не делается. Осталось убедить в этом начальство, хотя скорее сами убедятся, когда вляпаются. Ссылки на подписи уже лучше, но ведь нужно каждому исполнителю объяснить как этим пользоваться. Ну допустим, если использовать кнопку, никто даже не догадается как это делается. НО! На чертеже бывает до 10-ти разных подписей, получается каждый должен открыть этот файл на своем компе и вставить личную подпись, да еще на каждом листе. Честное слово, вручную подписывать быстрее оказывается. Если каждая подпись находится только на компе подписывающегося, да еще вставляется с относительным путем, то с какого компа, спрашивается, распечатывать этот файл?
Чертежи все равно хранятся на файловом сервере. Мне кажется, банк подписей стоит хранить там же и вставлять ссылками. А пока работаю с тем что есть. Нет у меня права заставлять делать так, как лучше, могу только рекомендовать. Большинству же эти рекомендации до ...

И второй момент. Подобная "электронная подпись" не имеет юридической силы.

Ну вот, теперь обсуждение можно продолжить в теме с которой и начались мои вопросы .
Впрочем, по подписям уже много тем было, нечего повторяться.
Олег К. вне форума  
 
Непрочитано 24.12.2007, 19:12
#26
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Порекомендуйте "начальству" заранее натиражировать своих подписей с печатью на чистых листах. Типа, чтобы потом не перетрудиться. Лучше если совместная подпись с бухгалтером.

Да, подобная подпись силы не имеет. Но тогда зачем выдаете документацию, не имеющей юридической силы? Впрочем, это все равно не доходит до сознания пока жареный петух не клюнет.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите начинающему разобраться с блоками