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

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

Изменение параметров примитивов составляющих сложный блок.

Ответ
Поиск в этой теме
Непрочитано 16.04.2009, 23:11 #1
Изменение параметров примитивов составляющих сложный блок.
Theodor
 
Петрозаводск
Регистрация: 16.04.2009
Сообщений: 334

Есть сложный блок, состоящий из более мелких динамических блоков и многострочных текстов. Не могу добраться к управлению видимостями мелких подблоков и мультитекстам. Как правильно обращаться к набору примитивов большого блока (VBA)
Просмотров: 3325
 
Непрочитано 17.04.2009, 02:12
#2
Кулик Алексей aka kpblc
Moderator

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


Управление видимостями внутри дин.блока разбирал Supermax - ищи его темы (особенно "Добавление VisibilitySet в блок" или что-то такого типа). На сайте Полещука есть статья от Supermax'a - тоже полезно.
В текущей постановке задачи она непонятна абсолютно: надо добавлять новые параметры? редактировать значения имеющихся? что-то еще? Конкретизируй вопрос.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.04.2009, 15:05
#3
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Ну, мне все понятно. Название темы вполне конкретное. Надо влезть в блок, извлечь из него другой блок и в нем поменять видимость элементов. Но вот беда, все вхождения Большого блока тут же поменяют у себя то, что ты сделал в одном из них. Только атрибуты и динамические свойства могут быть изменены в каждом вхождении по своему, а вот свойства блока в блоке - уже отразится на всех вхождениях. Увы.
VBA при этом, стоит в сторонке и нервно курит. Только AutoLisp рулит.
Supermax вне форума  
 
Непрочитано 17.04.2009, 15:37
#4
Кулик Алексей aka kpblc
Moderator

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


И VBA, и VisualLisp позволят изменить значения динамических параметров любого динамического блока, если разговор именно про это.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.04.2009, 17:31
#5
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 334


В общем вы все поняли верно. Есть большой блок. Внутри есть динамические блоки с видимостями. Вот как сменить видимость у одного из подблоков - это вроде простая задача, но не могу реализовать.

Основные сложности
- как из большого блока получить набор всех динамических блоков внутри
- как получить набор всех мультитекстов
- как обращаться к основным свойствам подблока (если конечно в этом есть какая-то хитрость) и как обратиться к расширеным свойствам (видимостям)

Мне кажется что все это можно легко решить на VBA.

Умоляю! Не пугайте меня моим незнанием лиспа - все равно некогда изучать.


Как только разберусь почему у меня глючит вставка текста програграмы в форум, то закину начало проблемы.
Theodor вне форума  
 
Непрочитано 19.04.2009, 21:29
#6
Кулик Алексей aka kpblc
Moderator

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


Ну, как-то так, наверное.
Код:
[Выделить все]
Option Explicit

Public Sub test()
Dim objEnt As AcadEntity, ptPick As Variant
Dim objBlock As AcadBlockReference
On Error GoTo 0
  ThisDrawing.Utility.GetEntity objEnt, ptPick, "Select a block"
  If UCase(objEnt.ObjectName) Like "*BLOCK*" Then
    Set objBlock = objEnt
    If objBlock.IsDynamicBlock Then
      On Error Resume Next
      Dim BlockDynProps As Variant
      For Each BlockDynProps In objBlock.GetDynamicBlockProperties
        If BlockDynProps.PropertyName = "Lane Count" Then
          BlockDynProps.Value = "6"
          Exit For
        End If
      Next BlockDynProps
    End If
  End If
End Sub
Или наподобие.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Изменение параметров примитивов составляющих сложный блок.

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение параметров дин блока ch-viktor Программирование 5 23.05.2008 21:38
список свойств параметров примитивов leonardo23 AutoCAD 7 10.01.2007 09:02
программное объединение примитивов в блок 127.0.0.1 Программирование 1 13.02.2006 15:10
Mesh изменение параметров m и n. Нужна помощь... ss20_sasha AutoCAD 8 27.09.2005 17:23
объединение нескольких примитивов в блок Александер Программирование 8 03.08.2005 09:45