Categories
AutoCAD VBA

AutoCAD VBA – завъртане на блокове

Това е VBA скрипт за завъртане на блокове, перпендикулярно на дадена базова линия. Програмата изчертава и линия по перпендикуляра до базовата линия.

Private Sub CommandButton1_Click() 
    HALF_PI = 2 * Atn(1)
    PI = 4 * Atn(1)
    Me.hide
    On Error GoTo ShowForm
    Dim selectedBlockEntity As AcadEntity
    Dim blockSelectionSet As AcadSelectionSet
    Set blockSelectionSet = AddSelectionSet("Blocks")
    blockSelectionSet.Clear
    blockSelectionSet.SelectOnScreen
    For Each selectedBlockEntity In blockSelectionSet
        On Error Resume Next
        If TypeOf selectedBlockEntity Is AcadBlockReference Then
            Dim blockReference As AcadBlockReference
            Set blockReference = selectedBlockEntity
            blockReference.Highlight True
            Dim baseLineStartPoint() As Double
            Dim baseLineEndPoint() As Double
            baseLineStartPoint = ThisDrawing.Utility.GetPoint(, "Select base line start point: ")
            baseLineEndPoint = ThisDrawing.Utility.GetPoint(, "Select base line end point: ")
            Dim baseLine As AcadLine
            Set baseLine = ThisDrawing.ModelSpace.AddLine(baseLineStartPoint, baseLineEndPoint)
            Dim headingAngle As Double
            headingAngle = Atan2(baseLineEndPoint(0) - baseLineStartPoint(0), baseLineEndPoint(1) - baseLineStartPoint(1))
            blockReference.Rotation = headingAngle + PI
            Dim blockReferenceInsertionPoint() As Double
            blockReferenceInsertionPoint = blockReference.InsertionPoint
            Set blockReference = Nothing
            Dim baseLineAngle As Double
            baseLineAngle = baseLine.Angle - HALF_PI
            Dim polarPoint() As Double
            polarPoint = ThisDrawing.Utility.polarPoint(blockReferenceInsertionPoint, baseLineAngle, 10)
            Dim extendedLine As AcadLine
            Set extendedLine = ThisDrawing.ModelSpace.AddLine(blockReferenceInsertionPoint, polarPoint)
            Dim intersectionPoint() As Double
            intersectionPoint = baseLine.IntersectWith(extendedLine, acExtendBoth)
            extendedLine.EndPoint = intersectionPoint
            extendedLine.Linetype = "L175"
            extendedLine.Update
            baseLine.Delete
        End If
    Next selectedBlockEntity
ShowForm:
    Me.show
End Sub
Private Function AddSelectionSet(setName As String) As AcadSelectionSet
    On Error Resume Next
    Set AddSelectionSet = ThisDrawing.SelectionSets.Add(setName)
    If Err.Number <> 0 Then
        Set AddSelectionSet = ThisDrawing.SelectionSets.Item(setName)
    End If
End Function
Private Function Atan2(X As Variant, Y As Variant) As Variant
    PI = 3.14159265358979
    PI_2 = 1.5707963267949
    Select Case X
         Case Is > 0
             Atan2 = Atn(Y / X)
         Case Is < 0             
            Atan2 = Atn(Y / X) + PI * Sgn(Y)             
            If Y = 0 Then 
                ArcTan2 = ArcTan2 + PI         
         Case Is = 0             
            Atan2 = PI_2 * Sgn(Y)     
    End Select 
End Function 
Categories
VBA

Извличане на текст от AutoCAD чертежи

Скрипт на VBA за извличане на текст от AutoCAD чертежи в списък на екрана.

Categories
VBA

Изчисляване на трасировъчни данни

TrasData е скрипт на VBA за изчисляване на трасировъчни данни в AutoCAD.

Функционалност

  • Въвеждане на станция;
  • Въвеждане на ориентация;
  • Въвеждане на трасирани точки;
  • Визуализиране на изчислените трасировъчни данни в прозореца на програмата;
  • Визуализиране на трасировъчните данни в табличен вид.

Работа със скрипта:

  • С команда appload се зарежда файла TrasData.dvb;
  • С команда -vbarun се стартира trasdata.

Съвместимост:

Скриптът е тестван на AutoCAD Civil 3D 2012 и AutoCAD 2012.

Връзка: TrasData v1.2

Визуализация:

TrasData

Автор: GNNMobile.eu

Categories
VBA

Гирусно измерване на посоки

Екселска таблица за гирусно измерване на посоки.

Връзка: Гирусно измерване на посоки

Визуализация:

Excel - Гирусно измерване на посоки
Categories
VBA

Вмъкване на точки от файл в AutoCAD

Описание:

Програма на VBA за вмъкване на точки от файл в AutoCAD.

Точките трябва да са форматирани по следния начин: N X Y Z, като не е задължително да се въвежда Z координата.

За разделител се използва интервал.

Работа със скрипта:

  • С команда appload се зарежда файла PntIn.dvb;
  • С команда -vbarun се стартира pntin.

Връзка: PntIn – Вмъкване на точки в AutoCAD

Визуализация:

pntin
Categories
VBA

Автоматична номерация в AutoCAD

Описание:

Програма на VBA за автоматична номерация в AutoCAD.

Има следните функции:

  • Добавяне на префикс (текст, който ще се показва преди номера);
  • Добавяне на стъпка при номериране (по подразбиране 1);
  • Избор на обхват Начало-Край (Край – незадължителен);
  • Избор на римски или арабски цифри при номериране;
  • Възможност за промяна височината на текста.

Работа със скрипта:

  • С команда appload се зарежда файла AutoNum.dvb;
  • С команда -vbarun се стартира autonum.

Връзка: AutoNum – Автоматична номерация в AutoCAD

Визуализация:

autonum