|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.10.2010, 12:28 | #1 | |
как переместить блоки на определённый слой
Регистрация: 30.06.2010
Сообщений: 38
|
||
Просмотров: 9650
|
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
digar, Посмотри команду _Xplode
Или так как и делаешь Раз вопрос в теме программирования, то предположу, что объекты меняешь программно. Тогда покажи код.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Предположу, что digar хочет сей код не показать, а получить.. А так, в принципе, все правильно:
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Я честно говоря не знаток языков программирования, исключая разве что VBA.. Но на VBA при применении Explode к вхождению блока получается массив из объектов - примитивов, входивших в блок (например, ...explodedObjects = blckObj.Explode). Соответственно можно перебирать в цикле не все объекты ModelSpace, а только из этой объектной переменной explodedObjects. Ну и само вхождение не убивается методом Explode, его надо еще Delete, иначе он просто "продублируется" примитивами из состава блока..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Зачем так замороченно? Разве не проще будет зайти в описание блока и поменять все что хочется? Зачем вставлять блок и оставлять его на месте? Можно же просто его вставить и тут же удалить, или вообще использовать командные методы (раз уж про ObjectDBX не вспоминаем...)
P.S. На лиспе код не предлагаю, ибо никому не надо, а на VBA уже сто лет как не писал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Регистрация: 30.06.2010
Сообщений: 38
|
Наверно, я что-то не понимаю, поэтому опишу действия подробнее:
на диске имеется файл, содержащий условные обозначения , каждое из которых представляет собой блок с атрибутами или отрезок определённого типа линии. При загрузке этого файла на слой (напримет "ТЕМР"), он загружается как единый блок. Поэтому непонимаю. что значит Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
А сразу вставить на слой "temp" не судьба?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,686
|
Единый блок - это примитив "block reference" (состоящий из примитивов в данном случае файла "basa500.dwg"), он вставляется на слой "темр". После DWGObj.Explode он разбивается на отдельные примитивы, из которых состоял, и у них у каждого свое свойство "слой".
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
digar, Почему игнорируешь пост #4?
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
Регистрация: 30.06.2010
Сообщений: 38
|
VVA спасибо.
Сделал так: Код:
Но есть ещё один вопрос: Если в AutoCAD 2010 загружаю файл командой _INSERT и в диалоге "Вставка блока" указываю "РАСЧЛЕНИТЬ", то после закрытия диалога и указания точки вставки открывается окно для определения файла *.SHX и после его загрузки типы линий отображаются верно. Если я отказываюсь от расчленения и после закрылия диалога вставки выполняю команду _LOAD, которой загружаю тот же файл *.SHX, то типы линий отображаются не верно. В программе (см.//Загружаем *.SHX ЗДЕСЬ БОЛЬШОЙ ВОПРОС ) загружаю требуемый SHX, но результат отображения типов линий случайный - то верно, то нет. Вчём дело? подскажите пожалуйста? Прилагаю архив, содержащий Test.dwg и Test.shx |
|||
|
||||
Регистрация: 30.06.2010
Сообщений: 38
|
Обнаружил одну фичу: если файл *.SHX предварительно скопировать в директорию AutoCAD FONTS, то при вставке блока типы линий отображаются корректно. Но, тогда при инсталляции моей программы (вернее при запуске) необходимо найти все установленные версии AutoCAD и в директориях, где хранятся их шрифты искать нужный мне *.SHX и если его там нет, то скопировать его туда.
Это похоже на чесание левой ногой правого уха, но как иначе сделать НЕ ЗНАЮ. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,855
|
Или добавить каталог расположения шрифтов в пути поддержки AutoCAD'a.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 30.06.2010
Сообщений: 38
|
Решение нашёл:
1) В Автокад на пространстве рисования щёлкаем правой кнопкой мыши и открываем рубрику "Настройка". В появившемся окне, открываем вкладку "Файлы". В списке "Пути доступа, имена файлов и папки" разворачиваем директорию "Пути доступа к вспомогательным файлам. Сюда добавляем директорию, содержащую необходимый *.SHX файл. или 2) При инсталляции программы в реестр (пример для AutoCAD 2010) ROOTKEY HKEY_CURREN_USER Key - Software\Autodeck\AutoCAD\ R18.0\ACAD-8001:491\Profiles\Профиль начальной настройки\General Значение строковой величины ACAD дополнить C:\.....\dir\Sample.SHX; , т.е.добавить полный путь к необходимому файлу |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамические блоки при копировании перестают быть динамическими. | *Voland* | Динамические блоки | 11 | 04.07.2012 10:51 |
Карнизные блоки под перильные ограждения на мосту | Anastasy | Поиск литературы, чертежей, моделей и прочих материалов | 0 | 31.08.2010 14:47 |
Разбиение черечежа откоса на геологические блоки в VBA | Skyper | Программирование | 1 | 18.03.2010 08:54 |
при скрытии слоя блоки остаются видимыми | Shvlad | AutoCAD | 5 | 13.10.2006 11:09 |
Не печатается выбранный нижний слой полностью | maslina | AutoCAD | 11 | 26.04.2006 15:10 |