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

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

Замена отрезка на блок с учетом поворота

Ответ
Поиск в этой теме
Непрочитано 06.05.2016, 16:13 #1
Замена отрезка на блок с учетом поворота
gizmo_zx
 
Проектировщик ЭО,ЭМ, ЭОС
 
Нижний Новгород
Регистрация: 18.07.2007
Сообщений: 256

Бодрого дня.
Есть куча отрезков.
Длинна одинаковая.
Свойства одинаковые.
Отличия только - координаты начало и конца.
Может кто видел программку по замене этих отрезков на блок (справа "_opora_x1") у учетом угла поворота.
т.е. блок вставляется в начало координат отрезка, и поворачиватся на угол с учетом координат конца отрезка.

Может у кого завалялась заготовка?

Миниатюры
Нажмите на изображение для увеличения
Название: Буфер обмена01.jpg
Просмотров: 37
Размер:	31.4 Кб
ID:	169982  

Вложения
Тип файла: dwg
DWG 2013
Чертеж1.dwg (81.5 Кб, 11 просмотров)

Просмотров: 3975
 
Автор темы   Непрочитано 13.05.2016, 13:43
#2
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 256
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


Велосипед ездит, но колеса все равно квадратные.

Код:
[Выделить все]
Public Sub dialux_replace1()
Dim oSset As AcadSelectionSet
Dim oEnt As AcadEntity
  Dim dblLen, povorot As Double
  Dim varStart As Variant
  Dim varEnd As Variant
Const PI = 3.14159265358979

Dim varPnt, varPnt2, varPnt3, varPnt4, varPnt5 As Variant

On Error Resume Next
Set oSset = ThisDrawing.SelectionSets.Item("$Attribs$")
If Err Then
Err.Clear
Set oSset = ThisDrawing.SelectionSets.Add("$Attribs$")
End If

On Error GoTo Err_Control
oSset.Clear

oSset.SelectOnScreen
'MsgBox oSset.Count
For Each oEnt In oSset
    
    ' выбираем только отрезки
    If oEnt.ObjectName = "AcDbLine" Then
        
        ' точки начала и конца отрезка
        varStart = oEnt.StartPoint
        varEnd = oEnt.EndPoint
        
        'ThisDrawing.Utility.Prompt vbCrLf & "Начало:" & varStart(0) & "  " & varEnd(1) & vbCrLf
        ' угол поворота градусы
        'povorot = 180 + Atn((varEnd(1) - varStart(1)) / (varEnd(0) - varStart(0))) * 180 / PI
        
        ' угол поворота радианы
        povorot = Atn((varEnd(1) - varStart(1)) / (varEnd(0) - varStart(0))) - PI / 2
        
        If ThisDrawing.ActiveSpace = acModelSpace Then
          ThisDrawing.ModelSpace.InsertBlock varStart, "_opora_x1", 1, 1, 1, povorot
        Else
'          ThisDrawing.PaperSpace.InsertBlock varCord, sBlockName, _
'          dXScale, dYScale, dZScale, dRotation
        End If
        
        
        'MsgBox ("Поворот" & povorot)
    End If
Next oEnt
Err_Control:
End Sub
gizmo_zx вне форума  
 
Непрочитано 13.05.2016, 14:50
#3
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Читать справку все таки полезно....


Но велосипедостроение увлекательнее...
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Замена отрезка на блок с учетом поворота

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Летние Олимпийские игры 2012. Болеем за наших! T-Yoke Разное 303 13.09.2012 11:56
Невозможность добавить в блок дополнительный внутренний блок, если таковой с тем-же именем в главном уже есть Vova Баги и пожелания в Autodesk 5 10.11.2009 16:13
Замена цвета блока или блока на блок maximator Программирование 25 24.09.2009 16:02
Болеем за наших на Олимпиаде T-Yoke Разное 472 28.04.2009 17:40
Помогите доделать программу добавления объектов в блок МишаVBA Программирование 1 20.05.2006 01:04