Тема: Как разбить блоки?
Хочется разбить блоки в чертеже, чтоб потом его передавать заказщикам. Попытался сделать просто -
(command "explode" "all" "") запустить n раз, но эта команда не разбивает все блоки почему то?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Хочется разбить блоки в чертеже, чтоб потом его передавать заказщикам. Попытался сделать просто -
(command "explode" "all" "") запустить n раз, но эта команда не разбивает все блоки почему то?
Короче, сам разобрался
(setq I 0.0) (setq ss (ssget "_X" '((0 . "INSERT")))) (if (not(null ss))(progn (repeat (sslength SS) (command "._EXPLODE" (ssname SS I)) (setq I (1+ I)) ) ;еще раз (для вложенных) (if (not(null ss))(progn (setq I 0.0 ss nil) (setq ss (ssget "_X" '((0 . "INSERT")))) (repeat (sslength SS) (command "._EXPLODE" (ssname SS I)) (setq I (1+ I)) ));end if end progn ));end if end progn ) ;Солиды: (setq I 0.0) (setq ss (ssget "_X" '((0 . "3DSolid")))) (if (not(null ss))(progn (repeat (sslength SS) (command "._EXPLODE" (ssname SS I)) (setq I (1+ I)) ));end if end progn
Когда расколотишь solidы, у тебя вместо них, по-моему, получатся 3dface. Вопрос - а на фига? Потом же они просто место занимают...
Кстати, вложений может быть и не 2...
Это я так, люблю, знаешь ли, задавать неудобные вопросы...
---
Сугубо имхо.
> dvim
Тут как раз не помешала бы рекурсия или цикл с проверкой было ли что-то вообще расчленено или нет.
> Александр Ривилис
Вот вариант окончательного расчленения с любой степенью вложенности, но только на незаблокированных слоях...
(setq f t NAMES nil) (while (setq t1 (tblnext "Layer" f)) (setq f nil) (if (= (cdr (assoc 70 t1)) 0) (if NAMES (setq NAMES (strcat (cdr (assoc 2 t1)) "," NAMES)) (setq NAMES (cdr (assoc 2 t1)))))) (while (setq sset (ssget "_x" (list '(0 . "INSERT") (cons 8 NAMES)))) (foreach a1 (mapcar (function vlax-ename->vla-object) (vl-remove-if (function listp) (mapcar (function cadr) (ssnamex sset)))) (vla-explode a1)(vla-delete a1)(vlax-release-object a1)))
Предложение(поправка)
Взрывать explode это конечно класно. Только я бы советовал использовать для этих целей burst из Express. burst не только взрывает, но и сохраняет все визуальные свойства (цвет, тип линий, толщина) вложенных объектов блока после взрывания.
Я бы делал так
1) запоминал состояние слоёв в переменную
2) включил бы все слои
3) выбирал и взрывал (burst) все блоки пока они не закончатся.
4) вернул в исходноё состояния слои.
5) пуржил
Этот алгоритм мало чем отличается от предложенных выше.
А вообще не парился бы и перегнал бы чертежи в формат DWF или даже в PDF. Заказчикам дал бы ссылку на бесплатный просмотрщик DWF, а если у них есть акад то пускай устанавливают с диска.
Тут просто задача сильно проще )
Есть чертежи, делаемые по стандартам- тамм более 2 включений нет. (Ну сделаю 3...)
Чтобы Солиды раскалывались - "прямое требование заказчика", что тут еще сказать.
Интересно, на форуме обсуждалось создание неразбиваемых блоков, как бы написать скрипт для переработки всех блоков чертежа в неразбиваемые.
"А вообще не парился бы и перегнал бы чертежи в формат DWF или даже в PDF. Заказчикам дал бы ссылку на бесплатный просмотрщик DWF, а если у них есть акад то пускай устанавливают с диска"
Уровень тех, кто должен работать несопоставим с такими сложностями. (Я бы и сам потребовал dwg, мало ли что )
> dvim
Попробуй _minsert (уж точно не разобьешь с наскоку, по крайней мере, мне не удалось).
А так - обратись к Эдуарду, если он еще тут вообще обретается, у него были программки на такое дело.
Уровень тех, кто должен работать несопоставим с такими сложностями
Много ума не надо. Два раза кликнуть на файл, открывается просмотрщик, и потом распечатать. А если уровень тех несопоставим с такими сложностями то тогда точно не напартачат в твоих чертежах и не обвинят тебя в лаже.
(Я бы и сам потребовал dwg, мало ли что )
И после того, как некий Иванов Иван(совпадение имён случайное), подправит и тебе даст на подпись - твои действия. А как же защита авторских прав.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум работает на PunBB, при поддержке Informer Technologies, Inc