Schöck
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Зеркальное отображение группы примитивов в VBA

Зеркальное отображение группы примитивов в VBA

Ответ
Поиск в этой теме
Непрочитано 12.02.2010, 18:45 #1
Зеркальное отображение группы примитивов в VBA
Kostia8_8
 
Регистрация: 30.09.2009
Сообщений: 11

Добрый день Можно ли программно выбрать все примитивы,входящие в некую прямоугольную область(заданную опять же в программе),и отзеркалить их относительно выбранной прямой?
Отзеркаливать выбранный объект методом Mirror я разобрался как,но выбирать так каждый объект чертежа както не оптимально)
Пробовал выбирать примитивы в области методом Select объекта SelectionSet,но запутался,и ничего не отображает..
Просмотров: 1705
 
Непрочитано 13.02.2010, 23:56
1 | #2
Олег (jr.)

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


Цитата:
Сообщение от Kostia8_8 Посмотреть сообщение
Добрый день Можно ли программно выбрать все примитивы,входящие в некую прямоугольную область(заданную опять же в программе),и отзеркалить их относительно выбранной прямой?
Отзеркаливать выбранный объект методом Mirror я разобрался как,но выбирать так каждый объект чертежа както не оптимально)
Пробовал выбирать примитивы в области методом Select объекта SelectionSet,но запутался,и ничего не отображает..
Попробуй так


Код:
[Выделить все]
Option Explicit

Sub WPMirror()
    Dim oEnt As AcadEntity
    Dim points(0 To 11) As Double
    Dim p1, p2, sp, ep
    Dim i As Integer, j As Integer

    p1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "Specify a first corner point: ")

    p2 = ThisDrawing.Utility.GetCorner(p1, vbCrLf & "Specify an opposite corner: ")

    points(0) = CDbl(p1(0))
    points(1) = CDbl(p1(1))
    points(2) = CDbl(p1(2))

    points(3) = CDbl(p2(0))
    points(4) = CDbl(p1(1))
    points(5) = CDbl(p1(2))

    points(6) = CDbl(p2(0))
    points(7) = CDbl(p2(1))
    points(8) = CDbl(p1(2))

    points(9) = CDbl(p1(0))
    points(10) = CDbl(p2(1))
    points(11) = CDbl(p1(2))

    Dim oSset As AcadSelectionSet

    With ThisDrawing.SelectionSets
    
        While .Count > 0
        
            .Item(0).Delete
            
        Wend
        
        Set oSset = .Add("$MirrorSet$")
        
    End With

    Dim mode As Integer

    mode = acSelectionSetWindowPolygon

    oSset.SelectByPolygon mode, points

    sp = ThisDrawing.Utility.GetPoint(, vbCrLf & "Specify a first of mirror line: ")

    ep = ThisDrawing.Utility.GetPoint(sp, vbCrLf & "Specify a second point of mirror line: ")

    For Each oEnt In oSset

        oEnt.Mirror sp, ep

    Next

End Sub
~'J'~
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 14.02.2010, 11:41
#3
Kostia8_8


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


Олег (jr.), и опять Большое спасибо
Kostia8_8 вне форума  
 
Непрочитано 14.02.2010, 12:16
#4
Олег (jr.)

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


Цитата:
Сообщение от Kostia8_8 Посмотреть сообщение
Олег (jr.), и опять Большое спасибо
Учи базис!

Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Зеркальное отображение группы примитивов в VBA

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP для поиска групп (наборов) одинаковых примитивов и замена их блоком ElectroBOG LISP 20 23.07.2010 16:00
VBA. 3D. Ориентация блоков (примитивов) в пространстве? Как определить угол поворота? shumilovvv Программирование 2 15.05.2009 12:18
Как создать массив для группы примитивов в Bricscad? Tonic Программирование 8 19.12.2007 09:22