Етикет: autocad
Това е 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
С командата ImportStylesandSettings могат да се копират стилове от един AutoCAD Civil 3D чертеж в друг.
Желаните стилове и настройки се избират от диалогов прозорец, показващ всички възможни стилове за копиране от избран чертеж.
С командата ncopy, също достъпна от меню Express -> Blocks, може да се копират обекти от външни референции на чертежи към текущия в AutoCAD.
Командата е много полезна при работа с xref обекти в AutoCAD.
Извличане на текст от AutoCAD чертежи
Скрипт на VBA за извличане на текст от AutoCAD чертежи в списък на екрана.
Изчисляване на трасировъчни данни
TrasData е скрипт на VBA за изчисляване на трасировъчни данни в AutoCAD.
Функционалност
- Въвеждане на станция;
- Въвеждане на ориентация;
- Въвеждане на трасирани точки;
- Визуализиране на изчислените трасировъчни данни в прозореца на програмата;
- Визуализиране на трасировъчните данни в табличен вид.
Работа със скрипта:
- С команда appload се зарежда файла TrasData.dvb;
- С команда -vbarun се стартира trasdata.
Съвместимост:
Скриптът е тестван на AutoCAD Civil 3D 2012 и AutoCAD 2012.
Връзка: TrasData v1.2
Визуализация:
Автор: GNNMobile.eu
Вмъкване на точки от файл в AutoCAD
Описание:
Програма на VBA за вмъкване на точки от файл в AutoCAD.
Точките трябва да са форматирани по следния начин: N X Y Z, като не е задължително да се въвежда Z координата.
За разделител се използва интервал.
Работа със скрипта:
- С команда appload се зарежда файла PntIn.dvb;
- С команда -vbarun се стартира pntin.
Връзка: PntIn – Вмъкване на точки в AutoCAD
Визуализация:
Автоматична номерация в AutoCAD
Описание:
Програма на VBA за автоматична номерация в AutoCAD.
Има следните функции:
- Добавяне на префикс (текст, който ще се показва преди номера);
- Добавяне на стъпка при номериране (по подразбиране 1);
- Избор на обхват Начало-Край (Край – незадължителен);
- Избор на римски или арабски цифри при номериране;
- Възможност за промяна височината на текста.
Работа със скрипта:
- С команда appload се зарежда файла AutoNum.dvb;
- С команда -vbarun се стартира autonum.
Връзка: AutoNum – Автоматична номерация в AutoCAD
Визуализация: