Нужно программно обрезать объекты командой _trim (VBA)
Реклама i
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужно программно обрезать объекты командой _trim (VBA)

Нужно программно обрезать объекты командой _trim (VBA)

Ответ
Поиск в этой теме
Непрочитано 27.11.2006, 14:56 #1
Нужно программно обрезать объекты командой _trim (VBA)
Alexi
 
СПб
Регистрация: 18.10.2006
Сообщений: 15

Нужно в программе обрезать ряд заданных объектов. Не удалось передать в команду _trim имена объектов (объект не выбирается). Пыталась задать их точкой принадлежащей объекту, это работает, но нестабильно, чаще путает объекты. Тогда я попробовала создать группу объектов. Но при задании имени группы команда выдает ошибку Invalid group name.
Код такой

Dim groupColl As AcadGroups
Set groupColl = ThisDrawing.Groups
DimGroup1 As AcadGroup
Dim Group2 As AcadGroup
Set Group1 = groupColl.Add("gr1")
Set Group2 = groupColl.Add("gr2")
Dim Objs1(0 To 1) As AcadEntity
Dim Objs2(0 To 1) As AcadEntity

For i = 0 To 1
Set Objs1(i) = cc(i + 2) ' i+2 Отношения к делу не имеет, так надо
Set Objs2(i) = ll(i + 2)
Next

Group1.AppendItems Objs1

Group2.AppendItems Objs2

sttt = "_trim " & "g" & vbCr & "gr1" & vbCr 'Не работает здесь
ThisDrawing.SendCommand sttt
sttt = vbCr & & "g" & vbCr & "gr2" & vbCr & vbCr
ThisDrawing.SendCommand sttt
Просмотров: 3857
 
Непрочитано 27.11.2006, 15:10
#2
Кулик Алексей aka kpblc
Moderator

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


Для передачи объекта SendCommand'y можно попробовать конструкцию, несколько раз мелькавшую на autocad.ru (вроде нечто такого типа было):
ThisDrawing.SendCommand "_.trim" & vbCr & "(handent " & GetHandle(entity) & ")" & vbCr
При создании группы, по-моему, надо проверять наличие группы с таким же именем.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.11.2006, 15:14
#3
Alexi


 
Регистрация: 18.10.2006
СПб
Сообщений: 15


С этой конструкции я начала. Не находит объект. Пробовала и
Hex(cc.ObjectID)
Группа есть при пошаговой отработке она просматривается по Watches
Alexi вне форума  
 
Непрочитано 27.11.2006, 20:19 Re: Нужно программно обрезать объекты командой _trim (VBA)
#4
C1


 
Регистрация: 13.06.2005
Сообщений: 314


Цитата:
Сообщение от Alexi
Пыталась задать их точкой принадлежащей объекту, это работает, но нестабильно
Возможно включен режим привязки. Его нужно отключать. Можно точки задавать рамкой с небольшим отступом вокруг точки. Помогает и такой фокус: приближать эту рамку до размера экрана. При этом естественно - некоторое мельтешение на экране.
C1 вне форума  
 
Автор темы   Непрочитано 28.11.2006, 09:07
#5
Alexi


 
Регистрация: 18.10.2006
СПб
Сообщений: 15


Спасибо, привязка действительно была включена, без нее лучше, хотя полной стабильности добиться еще не удалось.
Alexi вне форума  
 
Автор темы   Непрочитано 28.11.2006, 10:26
#6
Alexi


 
Регистрация: 18.10.2006
СПб
Сообщений: 15


Спасибо еще раз, с zoom работает вообще прекрасно, привязку можно даже не отключать.
Alexi вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужно программно обрезать объекты командой _trim (VBA)