|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.12.2008, 17:05 | #1 | |
Редактирование блока, используя значение его атрибутов
Москва
Регистрация: 04.04.2008
Сообщений: 97
|
||
Просмотров: 6498
|
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Анализируй чужие коды и делай по образу и подобию
http://forum.dwg.ru/showthread.php?t=21492 |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Надо получить перечисление объектов вхождения блока или описания блока?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
Нужно это для задания точного значения, например высоты от уровня моря (блок для создания профиля). Пытаться самостоятельно ручками попасть в нужное значение - долго. То есть я пользуюсь растяжением. Соседнии блоки при это остаются без изменения. Вот мне бы и хотелось растягивать отрезок на указанное значение атребута. Предусмотреть все отметки в ЛукАпе - невозможно, вручную пытаться быстро попасть на нужное значение - долго.
Вся изюминка в данном методе в том, что необходимое значение для растяжения должно будет расчитываться по формуле в зависимости от масштаба профиля и начального значения шкалы. Я знаю, что для этих целей существует Цивил, но что-то похожее можно сообразить и в Автокаде. Вот и ковыряюсь. Мне нужно понять: как можно будет растянуть объекты блока автоматически. Стандартными элементами блока выходит это невозможно, вот и полез в Лисп, но пока не смог понять как достать и изменить необходимые мне свойства. Наверное мне надо получить описание блока. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Ну, а что мешает в окне свойств это значение точно выставить для динамического параметра? Если же значение рассчитывается по формуле и априори будет использоваться программа - лисп там или VBA, то что мешает программно менять дин. параметр? Передавать значение динамическому параметру, изменяя значение атрибута - на мой взгляд, неправильно (не знаю, реализуемо ли, даже если да - можно сделать проще)
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
Вот можно было бы сделать так - в значении аттрибута указывалось бы действительное значение (высота над уровнем моря), а в динамическом параметре указать формулу, в которой бы присутсвовало значение аттрибута...
Подскажите тогда как программно изменить значение динамического параметра? (на Лиспе) |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
ЗЫ: ваша задача с успехом решается если вводить значение самого динамического свойства поле которое доступно (Ctrl+1) вам это пытаются сказать а вы не слышите. |
|||
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
Sleekka, Я понял и услышал все советы. Просто хотел разобраться, как это можно было сделать более автоматизированно, так как вводимое значение должно заранее высчитываться в зависимости от аттрибута.
Сейчас пытаюсь проанализировать код из поста #3 |
|||
|
||||
Есть вариант автоматизации.
http://forum.dwg.ru/showthread.php?t=27431 http://forum.dwg.ru/showpost.php?p=319854&postcount=36 Цепляешь на блок реактор. Как только ты хоть что-то изменишь в свойствах или в атрибутах, он сработает и запустит прогу, которая прочитает значение нужного атрибута или свойства и выставит все что угодно в любое состояние. Блок может быть и не динамическим. Писать можно хоть в хаперлинк или вложенный в блок текст. |
||||
|
||||
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Регистрация: 04.04.2008
Москва
Сообщений: 97
|
Я продолжу.
Supermax, спасибо за наводку. Буду пытаться вникнуть и осилить, это будет не легко. А для тех кто знает как это сделать попроще - выкладываю пример. На чертеже изображён профиль поверхности земли. Высота над уровнем моря. Шкала отсчёта ведётся не от нуля. На профиле отмечены точки поверхности земли и подземных коммуникаций. Идея блока следующая - указываем в атрибуте блока высоту от уровня моря, а в блоке высота подписи меняется в зависимости от указанного значения и нулевого значения шкалы (её тоже можно задать как атрибут). И в результате остаётся только выбрать место на профиле для вставки этого блока. Мне бы понять: как можно связать значение атрибута и динамическое свойство блока, а остальное доработать можно по аналогии. Или тут без реактора не обойтись? -- Во вложении схема вида профиля и разрабатываемый блок (справа от схемы). Один файл сохранён для версии 2004. Последний раз редактировалось Mazai, 19.01.2009 в 17:52. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как изменить свойства атрибутов блока | ALFMario | AutoCAD | 15 | 25.01.2008 00:42 |
Имя блока по его вхождению | Mischa | Программирование | 3 | 14.10.2007 14:57 |
Как поставить значение посадок в размере не разбивая его | vano_13 | AutoCAD | 6 | 26.09.2007 13:18 |