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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Объединение нескольких объектов в одно целое (VBA)

Объединение нескольких объектов в одно целое (VBA)

Ответ
Поиск в этой теме
Непрочитано 24.03.2010, 13:28 #1
Объединение нескольких объектов в одно целое (VBA)
Markiza-2010
 
Студентка
 
Регистрация: 09.03.2010
Сообщений: 16

Здравствуйте! Подскажите, пожалуйста, как мне записать в программе объединение нескольких объектов (цилиндр и 2 параллелипипеда) в одно целое, используя Boolean (Union)?
Код:
[Выделить все]
Sub Manipulyator()
    Dim cylinderObj1 As Acad3DSolid
    Dim radius1 As Double
    Dim center1(0 To 2) As Double
    Dim height1 As Double
    center1(0) = 0: center1(1) = 0: center1(2) = -5
    radius1 = 25
    height1 = 30
    Set cylinderObj1 = ThisDrawing.ModelSpace.AddCylinder(center1, radius1, height1)
     
    Dim boxObj2 As Acad3DSolid
    Dim length2 As Double, width2 As Double, height2 As Double
    Dim center2(0 To 2) As Double
    center2(0) = 0: center2(1) = -10: center2(2) = 25
    length2 = 30: width2 = 10: height2 = 30
    Set boxObj2 = ThisDrawing.ModelSpace.AddBox(center2, length2, width2, height2)
            
    Dim boxObj3 As Acad3DSolid
    Dim length3 As Double, width3 As Double, height3 As Double
    Dim center3(0 To 2) As Double
    center3(0) = 0: center3(1) = 10: center3(2) = 25
    length3 = 30: width3 = 10: height3 = 30
    Set boxObj3 = ThisDrawing.ModelSpace.AddBox(center3, length3, width3, height3)
  End Sub
Просмотров: 3964
 
Непрочитано 24.03.2010, 23:48
#2
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


По очереди объединяй

~'J'~
Олег (jr.) вне форума  
 
Непрочитано 27.03.2010, 19:53
#3
Mikka


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


Допиши в конец своего примера , и не забывай высвобождать ресурсы...

Код:
[Выделить все]
    Dim resultObj   As Acad3DSolid
    
    Set resultObj = cylinderObj1
    Call resultObj.Boolean(acUnion, boxObj2)
    Call resultObj.Boolean(acUnion, boxObj3)
    
    cylinderObj1.Delete
    boxObj2.Delete
    boxObj3.Delete
     
    Set resultObj = Nothing
    Set cylinderObj1 = Nothing
    Set boxObj2 = Nothing
    Set boxObj3 = Nothing
Mikka вне форума  
 
Автор темы   Непрочитано 29.03.2010, 02:33
#4
Markiza-2010

Студентка
 
Регистрация: 09.03.2010
Сообщений: 16


Спасибо! :-)
Markiza-2010 вне форума  
 
Непрочитано 11.12.2011, 22:32
#5
Moker


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


Здравствуйте, а скажите пожалуйста, как сделать то же самое, но только с объектами, у которых нет конкретного имени. Есть только ObjectID... я пробовал через SendCommand, но акад отказывается понимать номера объектов...

Я вот так пробовал
ThisDrawing.SendCommand "_union" & vbCr & "MatSol(3, 0).ObjectID, MatSol(3, 1).ObjectID" & vbCr

Где MatSol – массив в который записаны ObjectID нужных мне объектов.

Что я делаю не так, скажите пожалуйста ?

И может быть есть более просто решение ? У меня есть несколько объектов разных цветов, необходимо соединить объекты по цветам. С фильтром вроде разобрался, но как сделать цикл для объектов ?

Спасибо
Moker вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Объединение нескольких объектов в одно целое (VBA)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA. Многократный ввод данных и изменение положения объектов Markiza-2010 Программирование 6 28.06.2010 02:30
Нахождение точек пересечения объектов с заданной погрешностью на VBA helpstud Программирование 3 07.05.2009 17:28
Выбор объектов в VBA Бродяга Программирование 19 12.03.2007 09:33
Выделение объектов мышью из под макроса на VBA Автон Программирование 2 30.03.2006 06:45
Объединение (группировка) объектов Кулик Алексей aka kpblc Программирование 8 29.09.2005 13:32