|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Научите работать со слоями
Москва
Регистрация: 04.04.2008
Сообщений: 97
|
||
Просмотров: 12005
|
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
2-ое: всё содержимое слоя скопировать на другой слой. Или сделать копию уже существующего слоя.
Просто я только с месяц его изучаю - всех тонкостей ещё не знаю. По поводу первого пункта - просто думал обходиться без командной строки. Вот и подумал на ActivX. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Если без ActiveX и без ком.строки, то надо использовать (entmake) или (entmakex) - см. DXF Reference из справки.
Для изменения свойств объектов надо чтобы исходный слой был не заблокирован и не заморожен; потом либо команда _.change, либо модифицировать точечную пару с ключом 8 (см. entmode и entupd), либо работать через ActiveX.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Profan, читай #4:
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
entmakex уже просто не помню, посему activeX:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Здесь конечно с vl-cmdf. Только сейчас увидел что надо без командных методов. Но не зря же я программировал, поэтому выложу код.
По второму пункту конечно посложнее: Код:
"Старый_слой" должен существовать |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
А зачем только слой программно копировать? В Диспетчере слоев установил текущим старый слой и нажал кнопку создания нового слоя. Этот слой получит свойства старого слоя. Остается его только переименовать, нажав клавишу F2. К тому же видно состояние старого слоя.
|
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Ну, ответ на этот вопрос знает только Mazai
Сразу скажу, что мне этого не надо ![]() Добавлено: А вообще-то тема грамотно названа, да ещё и находится в разделе "Программирование". Думаю, это неплохое подспорье для начинающих. Последний раз редактировалось Makswell, 30.04.2008 в 12:49. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Makswell, #12: вариант с переменной величиной в любой части точечной пары обязательно потребует cons. Это так, в качестве уточнения...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Интересная тема, тоже хочется поучавствовать...
![]() Вообще-то, использование vla методов и методов dxf, сильно различается. Очень часто, по объему и сложности кода, а так же по скорости выполнения. Предлагаю самим сравнить: Код:
Код:
Код:
Код:
![]() |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
62 код: отрицательное значение = выключение слоя.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
|
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Здравствуйте.
Появился ещё вопрос. Хочу получить пояснение к слою. Из приведённого ниже кода видно, что его значение хранится в тотечной паре с DXF-кодом 1000 Цитата:
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Потому что сначала надо брать (cdr (assoc -3 lst))...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
А вот ещё с чем я столкнулся. Пробую написать самостоятельно макрос, который бы устанавливал текущий слой по выбранному объекту и отключал бы все остальные слои кроме текущего. Но почему-то в написанном макросе не получается указать объект для текущего слоя. Что в нём не так?
Код:
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,409
|
Попробуй (я код не проверял):
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
ТО же, что и у Алексея, но покороче.
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
Всё работает. Спасибо!
Но я всё же хочу разобраться... Во всех макросах при включении или отключении слоёв мы выбираем все слои - "*". А если нам надо именно попытаться указать объект. То есть если вместо выбора "*" нам надо перейти в режим выбора объекта на слое. У меня не получилось сдлелать это законченным макросом. Вот, например, если нам надо написать макрос отключения одного слоя используя вариант выбора объекта на нём, то как он должен выглядеть? Или тут надо использовать Лисп? Вот мой неработающий макрос: Код:
Последний раз редактировалось Mazai, 30.06.2008 в 10:48. Причина: выложил свой макрос |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
инженер Регистрация: 04.02.2005
Киев
Сообщений: 23
|
Подскажите можно ли в Акаде сделать: слои в слое?
Рассказываю на примере: есть один слой называется "здание" в нем хочу чтобы были подслои - "1этаж", "2 этаж"... потом есть еще один слой называтся - "трубы" в нем хочу чтобы были подслои - "вода", "пар".... И если я замораживаю один слой "здание", то соответственно замораживаются и все "этажи". Благодарен за ответ. |
|||
![]() |
|
||||
Подобного уровня вопросы легко решаются самостоятельно банальным поиском по справочнику Полещука.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
Код:
Последний раз редактировалось Олег (jr.), 24.05.2013 в 15:11. Причина: ошибка в коде |
|||
![]() |
|
||||
проектировщик Регистрация: 25.05.2007
г. Чебоксары
Сообщений: 206
![]() |
Добрый вечер!
Есть у меня файл с архитектурными планами: У меня на чертеже есть слой "Двери арх". В этом слое есть примитивы: отрезки и текст. Мне нужно во всем файле текст из слоя "Двери арх" разом перекинуть в слой "Марки дверей". Простым выделением текста одного слоя и переводом его в другой слой не получается. Каждый архитектурный план это отдельный блок. Приходится заходить в каждый блок, выделять текст и перекидывать в нужный мне слой, что долго. Поэтому у меня возник вопрос: Есть ли возможность родными средствами Автокада или программно перевести конкретные примитивы (это может быть текст или Мтекст или таблица или другой примитив) одного слоя в другой слой, если даже они находятся на разных блоках. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Программно можно
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
проектировщик Регистрация: 25.05.2007
г. Чебоксары
Сообщений: 206
![]() |
VVA, спасибо большое. Это то что нужно. Но это локальное решение задачи.
А если мыслить глобально: чтобы была возможность выбора: 1. Примитивов (текст, мтекст, таблиц и т.д) находящихся в этом файле (выбор из списка). 2. Исходного слоя находящейся в этом файле (выбор из списка). 3. Конечного слоя находящейся в этом файле (выбор из списка). |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Клавиша Del в автокаде перестает работать :(( | Barbarian | AutoCAD | 6 | 27.06.2008 15:01 |
Какой учеб. центр в Киеве учит работать с продук. Autodesk | Silavsale | Разное | 2 | 03.12.2007 19:01 |
Как можно работать с "прочими" свойствами рисунка? | Pungarev | AutoCAD | 6 | 22.06.2007 10:47 |
Перестали работать лиспы в 2006 | solo | LISP | 6 | 16.08.2006 12:19 |
Object reactor никак не хочет работать | Startrek | Программирование | 18 | 14.08.2004 15:17 |