|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
27.07.2011, 10:24 | #1 | |
Как изменить свойства отдельно взятого объекта в VBA?
Регистрация: 24.07.2011
Сообщений: 13
|
||
Просмотров: 5579
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Ну допустим длинну как таковую не изменить т.к. длинна характеристика вычисляемая, но изменить координату начальной или конечной точки разумеется можно - надо изменить свойства StartPoint и/или EndPoint.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 24.07.2011
Сообщений: 13
|
Да, это верно. Если быть точнее, я хотел спросит, как получить доступ к этому конкретному объекту не по клику мышки, а по его имени? Как узнать это имя?
|
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Что значит "это имя" - у Вас есть объект модели (листа, блока) в нем есть последовательность ссылок на объекты - какой из них "этот" и как его получить знать можете только Вы - можно "попросить" указать мышкой, можно "отсортировать" по определенным признакам (слой, цвет, длинна, координаты и пр.) А можно просто взять первый из последовательности - что Вам нужно-то?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 24.07.2011
Сообщений: 13
|
На сколько я представляю, у каждого объекта есть свой уникальный идентификатор. Как я прочтиал, для текущего сеанса это свойство ObjectId, для любого момента времени это свойство Handle. Отсюда я делаю вывод, что зная ObjectID или Handle данной линии, я могу обратиться свойствам именно этой линии. Получается очень странно, что я обращаюсь к объекту по отфильтровывая его по совокупности неуникальных признаков (типа длины и цвета), а не обращаюсь к нему по его уникальному имени. Конечно, может acad просто так реализован - тут уж ничего не поделаешь, но это очень необычно.
|
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Разумеется есть, только чтоб его получить - надо обратиться к объекту (который надо как-то выбрать) - зачем он Вам? Вы можете просто сохранить ссылку на конкретный объект, т.к. если Вы "сохраните" только ObjectID Вам, чтоб его (сам объект) найти, придется опять-таки фильровать все объекты по "уникальному" признаку.
з.ы. я если честно совсем не улавливаю ход Ваших мыслей.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Регистрация: 24.07.2011
Сообщений: 13
|
Цитата:
Даю обобщённый пример: человек открыват определённый готовый dwg, у него там какой-то чертёж, а сам он в акаде еле шарит. Ему надо издать скажем ещё 50 аналогичных документов, которые буду отличаться 5-6 геометрическими характеристиками какой-то детали. Чтобы не двигать всё руками, предполагается написать приложение VBA, которое по заданным значениям переменных характеристик перестраивало бы чертёж. Грубо говоря из прямоугольника со сторонами 2 и 3 сделать прямоуголник со сторонами 5 и 6, написавав в диалоге "5" и "6". Очевидно, что есть два пути: - пишем процедуру, которая строит чертёж с нуля по заданным параметрам; - берём готовый шаблонный чертёж и меняем характеристики нужных объектов; Второе имха более рационально, вот я и пытаюсь узнать, как средствами VBA получить доступ к конкретным уже существующим объектам. Типа "хочу удлиннить эту линию!" Пишу что-то типа: линия.имя_линии.конец = (100,500) |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Я бы сделал (да и не раз уже делал) так - берется шаблон (блоки?)- а всё изменяемое пересоздается программно - т.к. создать по параметрам в абсолютном большинстве случаев проще чем "подправить" (т.к. надо учитывать, что там уже направлено).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
2 penb
Если я вас правильно понял, то вам нужно искать в справке информацию по методам: HandleToObject и ObjectIDToObject Там очень понятные и подробные примеры на нужную вам тему. ЗЫ. Хотя я бы порекомендовал обратиться к Динамическим блокам. Они созданы специально для решения подобных вашей задач без всякого программирования. Последний раз редактировалось Boxa, 01.08.2011 в 12:27. Причина: Для ЗЫ |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возможно ли изменить границы допустимого места размещения объекта кап. строительства? | endimion | Архитектура | 16 | 08.08.2011 21:44 |
Слои в автокаде. при добавлении нового слоя не могу изменить имя и свойства слоя | oleole | AutoCAD | 6 | 02.11.2010 23:28 |
VBA. Размораживание слоя, построение объекта в нем, замораживание слоя = ошибка | Alexey_02 | Программирование | 3 | 06.03.2009 22:33 |
Свойства объекта | STe1S | AutoCAD | 6 | 24.03.2006 10:38 |