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

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

перенос всех линий слоя в блоках в другой слой

Ответ
Поиск в этой теме
Непрочитано 10.02.2012, 13:54 #1
перенос всех линий слоя в блоках в другой слой
Positron
 
Регистрация: 25.06.2009
Сообщений: 147

Собсно в заголовке вопрос - "перенос всех линий(и размеров, штриховок и всего что в слое) слоя в блоках в другой слой"
Столкнулся с таким траблом, выделяя объекты на слоя не выделяются линии в блоке...
Каким образом можно решить сею задачу?


http://forum.dwg.ru/showthread.php?t...F+%F1%EB%EE%E9
Цитата:
Сообщение от Botan Посмотреть сообщение
Ну это лишь пример. Чертеж то крохотный, а "побочных" объектов очень много.
Расскажу что я нашел:
1. Транслятор слоев. Из множества слоев по маске в имени слоя или вручную можно несколько слоев соединить в один ( стена1+стена2+стена3+...=Стена). Вроде всё просто, но непонятна логика назначения слоев объектам Архакадом. Мне то нужны например только несущие стены, окна, перегородки, размеры, подписи, а тут 5 слоев Exterior Walls (в переводе "наружные стены"), а на этих слоях ни одной наружной стены не изображено. Т.е. Инструмент есть, но для арчика не походит.
2. Настрока стандартов, он же нормоконтроль. Вроде как раз таки то что нужно. Создается эталонный файл, согласно которого производится проверка и корректировка, затрагиваются и текстовые и размерные стили, и слои, но использование затрудняется из-за см п.1 (тут 5 слоев Exterior Walls (в переводе "наружные стены"), а на этих слоях ни одной наружной стены не изображено). Т.е. сначала нужно изолировать каждый слой, на листочке писать конечный слой, а дальше используя либо п.1, либо п.2 производить слияние.
3. Вроде простой способ переноса текста и размеров на нужный слой. Выделяем - в панели свойств выбираем нужные объекты - изменяем слой. Но размеры могут быть взорваны, соответсвенно номер не прокатит.
4. Воспользоваться быстрым выбором. Но тут перенос объектов возможен только по графическим признакам, а не по функционалу (стена к стене, окна к окну...) А нужен именно функционал.
++
5. Воспользоваться изоляцией слоя. Выбираем нужный объект - изолируем слой объекта - выделяем все объекты на этом слое - переносим на другой слой - отключаем изоляцию - повторяем...

Но не могу разобратся что и как, вообщем прошу помощи, зашел в тупик ...

Последний раз редактировалось Positron, 10.02.2012 в 13:59.
Просмотров: 5705
 
Непрочитано 10.02.2012, 14:14
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от Positron Посмотреть сообщение
Каким образом можно решить сею задачу?
Берешь коллекцию блоков (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) и поочередно залезая в каждое описание блока меняешь у его примитивов соответствующие слои не забывая что ModelSpace это тоже блок (надо там менять или нет вопрос к тебе, главное это учесть).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 10.02.2012, 15:06
#3
Positron


 
Регистрация: 25.06.2009
Сообщений: 147


м... а есть аналог сего в лиспе? в смысле при большом объеме блоков это реально оч долго...
мне надо перелопатить много чертежей, а там очень много блоков... помогите плиз листиком
Positron вне форума  
 
Непрочитано 10.02.2012, 15:19
1 | #4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,744


Была тема "нормализация блоков" - посмотри там решения.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.02.2012, 15:22
1 | #5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,909
<phrase 1= Отправить сообщение для VVA с помощью Skype™


LISP. Нормализация блоков текущего файла.
BGBLFIX - Нормализация блоков
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.02.2012, 15:26
2 | #6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,843


Цитата:
Сообщение от Positron Посмотреть сообщение
помогите плиз листиком
не реви - ошибок никаких не проверяет - есть ли слои, заблокированны или еще что возиться лень и времени нет
Код:
[Выделить все]
 (vl-load-com)
(defun ch-lay(l1 l2)
  (vlax-for block
            (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object)))
            (vlax-for obj block
                      (if (= (vla-get-layer obj) l1)
                          (vla-put-layer obj l2)))))
запускать (ch-lay имя_заменяемого_слоя имя_нужного_слоя)
p.s. Опс - тогда лучше по вышеприведенным ссылкам.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 10.02.2012, 15:59
#7
Positron


 
Регистрация: 25.06.2009
Сообщений: 147


Цитата:
Сообщение от Дима_ Посмотреть сообщение
не реви - ошибок никаких не проверяет - есть ли слои, заблокированны или еще что возиться лень и времени нет
Код:
[Выделить все]
 (vl-load-com)
(defun ch-lay(l1 l2)
  (vlax-for block
            (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object)))
            (vlax-for obj block
                      (if (= (vla-get-layer obj) l1)
                          (vla-put-layer obj l2)))))
запускать (ch-lay имя_заменяемого_слоя имя_нужного_слоя)
p.s. Опс - тогда лучше по вышеприведенным ссылкам.
Спасибо, лисп работает
Positron вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > перенос всех линий слоя в блоках в другой слой

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать длинну всех выделенных линий ? bdfy AutoCAD 33 21.05.2014 08:31
найти линий одинаковой длины и сменить слой :) PaSokaS Программирование 42 29.05.2005 15:53
Как слой включить сразу во всех видовых экранах ilka_t AutoCAD 4 26.04.2004 11:20
Перенос начала координат во всех видах в однц точку. Mikhail AutoCAD 2 11.11.2003 12:51