|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Использование блоков и атрибутов и доступ к ним через VBA
Регистрация: 08.11.2011
Сообщений: 30
|
||
Просмотров: 3950
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
У каждого BlockReference есть свойства - Xscale, YScale, ZScale. К ним обращаться будет намного более выгодно, чем запрашивать значения атрибутов, которые, кстати, и могут не соответствовать реальным значениям.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Его можно получить у AcadAttribute.
А зачем его получать? Завязывать на это свойство логику программы неверно, по-моему. Потому что, это вспомогательное свойство для пользователя, при вводе значения атрибута. Опираться вернее всего на свойство TagString атрибута. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Ну все же написано, или перевести? делай атрибуты с постоянным значением и не парься по поводу PromptString, это строка приглашения когда вставляешь свой блок
|
|||
![]() |
|
||||
Регистрация: 08.11.2011
Сообщений: 30
|
Цитата:
То есть толщина материала, например ДСП - 18мм, которая меня не интересует, будет попадать то в Xscale, то в YScale или ZScale. Например, вытянув размеры из изделия, я могу получить такое: Xscale, YScale, ZScale 1. 500 700 18 2. 350 18 440 3. 18 380 500 ... И меня будут интересовать размеры деталей для раскроя: 500х700, 350х440, 380х500. Пока придумал решить эту ситуацию следующим способом - перебирать все 3 размера по каждой детали, и отбрасывать тот размер, где будет 18 мм. Но это не универсальный способ, потому что не все детали имеют толщину 18мм, иногда это 19 мм, стекло - 4 мм. То есть нужно еще вводить дополнительный критерий. Пока думал, что это может быть название материала, в котором будет указана его толщина, например: "18978 ДСП Бук Шоколадный 18мм", то есть я смогу вытянуть толщину из названия. Материалы буду разбрасывать по слоям, или есть лучше вариант? Вот так я вижу решение. Буду благодарен за какие-либо еще советы относительно решение озвученной в начале поста ситуации. Vildar, gomer Спасибо за помощь. Я наверное не правильно понял, что такое PromptString. Я думал, что PromptString содержит значение того, что пользователь вводит в поле Prompt при создании атрибута. Насколько я понял, это не так? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Как вариант я бы использовал функции наподобие:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Можно ли суммировать данные атрибутов от одинаковых блоков? | Максим_Александрович | AutoCAD | 5 | 14.10.2011 09:31 |
Доступ к палитре инструментов AutoCAD через объектную модель | remlin | Программирование | 4 | 14.05.2008 22:14 |
Измнение через ексель (через макрос в VBA) аттрибутов динамического блока | VitaminC | Программирование | 4 | 20.10.2007 14:52 |
VBA. Сканирование блоков | basboy | Программирование | 1 | 29.04.2005 13:16 |
Можно ли через VBA динамически двигать объекты? | {Smirnoff} | Программирование | 4 | 11.12.2003 01:14 |