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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Можно ли заменить свойство цвета на ByLayer во всех блоках чертежа?

Можно ли заменить свойство цвета на ByLayer во всех блоках чертежа?

Ответ
Поиск в этой теме
Непрочитано 02.10.2008, 11:16 #1
Можно ли заменить свойство цвета на ByLayer во всех блоках чертежа?
dep
 
ЛССР
Регистрация: 07.12.2004
Сообщений: 12

Всем добрый день.

Столкнулся с такой проблемой:

Необходимо сделать план помещения в серо-черных тонах, чтобы потом чертить поверх плана и это было хорошо видно.

Для этого меняю свойства цвета всего чертежа на ByLayer, а уже там ставлю нужный мне цвет.

Но в данном случае в чертеже очень много разных блоков, внутри которых штриховка.

Есть ли возможность заменить свойствойство цвета во всех блоках разом?
Просмотров: 3969
 
Непрочитано 02.10.2008, 11:21
#2
Кулик Алексей aka kpblc
Moderator

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


Если не программно - то только руками.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.10.2008, 11:40
#3
VVA

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


Так наверное правильней
Если не программно - то только руками.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.10.2008, 11:47
#4
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если не программно - то только руками.
Offtop: Вообще, фраза сильная - трудно опровегнуть
Makswell вне форума  
 
Автор темы   Непрочитано 02.10.2008, 11:50
#5
dep


 
Регистрация: 07.12.2004
ЛССР
Сообщений: 12


Цитата:
Сообщение от VVA Посмотреть сообщение
Так наверное правильней
Если не программно - то только руками.
Большое спасибо. Кажется, именно то что нужно. Буду тестить.
dep вне форума  
 
Непрочитано 02.10.2008, 14:47
#6
ShaggyDoc

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


И если уж изменять цвет в блоках, то не на ByLayer, а на ByBlock.
ShaggyDoc вне форума  
 
Непрочитано 02.10.2008, 18:22
#7
andrew_ro

Светопрозрачные конструкции, проектирование
 
Регистрация: 29.07.2008
Сообщений: 47


Всем привет.
Наверно не совсем в тему задам вопрос, но тем не менее. А как после взрыва блока програмно присвоить примитивам, ранее входившим в блок, свойства ByLayer для типа и веса линий? Если конкретно: имеем динамический блок, состоящий из 3-4 полилиний и штриховки, расположенных на своих специфических слоях (это составное сечение из различных деталей). Полилинии созданы со свойствами: цвет-послою; тип линий-поблоку; вес линий-по блоку. Для штриховки свойства такие: цвет-по слою; тип линий-по блоку; вес линий задан напрямую (напр.0,25мм). После взрыва нужно все свойста "по блоку" заменить на "по слою" у всех примитивов. Свойства, заданные напрямую, меняться не должны. Возможно ли это?
Только прошу не обсуждать способ задания свойст примитивов внутри блока: он давно отработан и самый большой здесь недостаток-вручную менять свойства взорванных объектов.
andrew_ro вне форума  
 
Непрочитано 02.10.2008, 18:42
#8
VVA

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


andrew_ro, Попробуй
1. BURST
2. Не _explode, а _Xplode
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.10.2008, 19:04
#9
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


На VBA, наверное, можно так:
Код:
[Выделить все]
Private Sub CommandButton1_Click()
Dim explodedObjects As Variant
Dim objBlk As Object, obj As Variant
Dim varPoint As Variant
UserForm1.Hide
ThisDrawing.Utility.GetEntity objBlk, varPoint, "Выберите блок"
If TypeOf objBlk Is AcadBlockReference Then
  explodedObjects = objBlk.Explode
  objBlk.Delete
  For Each obj In explodedObjects
   If obj.color = acByBlock Then obj.color = acByLayer
   If obj.Linetype = "ByBlock" Then obj.Linetype = "ByLayer"
   If obj.Lineweight = acLnWtByBlock Then obj.Lineweight = acLnWtByLayer
  Next
End If
UserForm1.Show
End Sub
AlexV вне форума  
 
Непрочитано 03.10.2008, 08:38
#10
andrew_ro

Светопрозрачные конструкции, проектирование
 
Регистрация: 29.07.2008
Сообщений: 47


VVA
AlexV
К сожалению сейчас совсем нет времени протестировать. Займусь этим на выходных. Спасибо.
andrew_ro вне форума  
 
Непрочитано 06.10.2008, 08:34
#11
andrew_ro

Светопрозрачные конструкции, проектирование
 
Регистрация: 29.07.2008
Сообщений: 47


VVA
При взрыве BURST меняет только тип линий на ByLayer, вес линий остается прежний. А вообще идея интересная: сначало менять свойства всего блока и затем взрывать его.
AlexV - как раз то, что нужно.
andrew_ro вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Можно ли заменить свойство цвета на ByLayer во всех блоках чертежа?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несвойственные Автокаду вещи Vova AutoCAD 49 01.02.2012 19:33
Мониторы LCD CRT Разное 94 17.06.2008 10:51