|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.10.2006, 19:23 | #1 | |
VBA AutoCad построение поверхности amrule
СПб
Регистрация: 18.10.2006
Сообщений: 15
|
||
Просмотров: 4811
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
У меня нет MDT, да и VBA я не очень, поэтому если работать не будет, прошу ногами не бить:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Так а если выбрать-таки тот устраивающий объект и первым, и вторым? Потом выяснить, что ж это за объекты и попробовать сделать фильтр на SelectionSet.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Собственно команда как работает? Что возвращает handent сейчас вряд ли имеет критическое значение...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.10.2006
СПб
Сообщений: 15
|
команда работает очень просто
amrule запрашивает Select first wire: выбираешь мышкой нужный объект запрашивает Select second wire: выбираешь строит поверхность. все. вот только нужно без мышки. И видимо вся проблема в этом wire. Потому что для select objects все написанное работает. |
|||
|
||||
Регистрация: 13.06.2005
Сообщений: 314
|
Попробуйте сдедать так, что бы у получалось из командной строки. А потом перенесите в SendCommand эти команды.
Можно предварительно выбирать объекты через группы (командой group) или в VBA: Dim groupColl As AcadGroups Set groupColl = ThisDrawing.Groups Dim Group1 As AcadGroup Dim Group2 As AcadGroup Set Group1 = groupColl.Add("gr1") Set Group2 = groupColl.Add("gr2") Dim Objs1(0) As AcadEntity Dim Objs2(0) As AcadEntity Set Objs1(0) = polin(1) Set Objs2(0) = polin(2) Group1.AppendItems Objs1 Group2.AppendItems Objs2 При выборе объектов из командной строки писать букву g и имя группы: ThisDrawing.SendCommand "_amrule g gr1 g gr2 " |
|||
|
||||
Регистрация: 13.06.2005
Сообщений: 314
|
А как вообще из командной строки тогда удастся выбрать? У меня нет этой команды. Попробуйте вводом координат точек, которые пренадлежат polin(1) и polin(2). Например:
ThisDrawing.SendCommand "_amrule 0,0,0 0,0,10 ". Так не получится? Возмите две конкретные точки. Если сработает, то в программе: Код:
|
|||