16/01/2014
Параметры чертежа DWG
В отличие от чертежа AutoCAD, чертеж Civil 3D имеет ряд дополнительных параметров, таких как масштаб чертежа, настройки единиц измерения и другие:
Все эти настройки можно получить и задать с помощью функций .NET API.
Следующий пример демонстрирует, как задавать некоторые настройки чертежа Civil 3D:
Код - VB.NET: [Выделить]
- Imports Autodesk.AutoCAD.ApplicationServices
- Imports Autodesk.AutoCAD.EditorInput
- Imports Autodesk.AutoCAD.Geometry
- Imports Autodesk.AutoCAD.Runtime
- Imports Autodesk.Civil.ApplicationServices
- Imports Autodesk.Civil
- Public Class DWGSettingsClass
- <CommandMethod("AOC_DWGSettings")> Public Sub AOC_DWGSettings()
- Dim a_CivilDoc As CivilDocument
- a_CivilDoc = CivilApplication.ActiveDocument
- 'Единицы измерения и зоны
- With a_CivilDoc.Settings.DrawingSettings
- 'Единицы угловой меры
- .UnitZoneSettings.AngularUnits = AngleUnitType.Degree
- 'Единицы чертежа
- .UnitZoneSettings.DrawingUnits = Settings.DrawingUnitType.Meters
- 'Масштаб
- .UnitZoneSettings.DrawingScale = 1
- 'Система координат
- .UnitZoneSettings.CoordinateSystemCode = "Pulkovo42.GK3d/CM-30E"
- 'Преобразование британской системы единиц в метрическую
- .UnitZoneSettings.ImperialToMetricConversion = Settings.ImperialToMetricConversionType.InternationalFoot
- 'Масштабировать объекты, вставленные из других чертежей
- .UnitZoneSettings.ScaleObjectsFromOtherDrawings = False
- 'Установить соответствующие переменные AutoCAD
- .UnitZoneSettings.MatchAutoCADVariables = False
- End With
- 'Преобразование
- With a_CivilDoc.Settings.DrawingSettings
- 'Применить параметры преобразования
- .ApplyTransformSettings = True
- 'Применить масштабный коэффициент уровня моря
- .TransformationSettings.ApplySeaLevelScaleFactor = True
- 'Отметка
- .TransformationSettings.SeaLevelScaleElevation = 3
- 'Масштабный коэффицент сетки
- .TransformationSettings.GridScaleFactorComputation = Settings.GridScaleFactorType.UserDefined
- 'Масштабный коэффициент
- .TransformationSettings.GridScaleFactor = 1.102
- 'Локальное положение опорной точки
- .TransformationSettings.LocalReferencePoint = New Point2d(100, 200)
- 'Положение опорной точки в координатах сетки
- .TransformationSettings.GridReferencePoint = New Point2d(112, 265)
- 'Локальное положение центра поворота
- .TransformationSettings.LocalRotationPoint = New Point2d(50, 75)
- 'Положение центра поворота в координатах сетки
- .TransformationSettings.GridRotationPoint = New Point2d(305, 150)
- 'Указать угол поворта сетки
- .TransformationSettings.SpecifyRotationType = Settings.SpecifyRotationType.GridRotationAngle
- 'К северу
- .TransformationSettings.RotationToGridNorth = -44.8
- 'Азимут
- .TransformationSettings.RotationToGridAzimuth = 259.7
- End With
- 'Слои объекта (только чтение)
- With a_CivilDoc.Settings.DrawingSettings
- Dim a_ed As Editor
- a_ed = Application.DocumentManager.MdiActiveDocument.Editor
- Dim q_LayerSettings As Autodesk.Civil.Settings.SettingsObjectLayer
- q_LayerSettings = .ObjectLayerSettings.GetObjectLayerSetting(Settings.SettingsObjectLayerType.TinSurface)
- a_ed.WriteMessage(vbLf & "Объект: Поверхность TIN")
- a_ed.WriteMessage(vbLf & "Слой: " & q_LayerSettings.LayerName)
- a_ed.WriteMessage(vbLf & "Модификатор: " & q_LayerSettings.Modifier.ToString)
- a_ed.WriteMessage(vbLf & "Значение: " & q_LayerSettings.ModifierValue)
- a_ed.WriteMessage(vbLf & "Заблокировано: " & q_LayerSettings.Locked.ToString)
- End With
- 'Перечень сокращений
- With a_CivilDoc.Settings.DrawingSettings.AbbreviationsSettings
- 'Текст для точки геометрии трассы
- 'Начало трассы
- .AlignmentGeoPointText.SetAlignmentAbbreviation(Settings.AbbreviationAlignmentType.AlignmentBeginning, "НТ")
- 'Конец трассы
- .AlignmentGeoPointText.SetAlignmentAbbreviation(Settings.AbbreviationAlignmentType.AlignmentEnd, "КТ")
- 'Пересечение прямых участков
- .AlignmentGeoPointText.SetAlignmentAbbreviation(Settings.AbbreviationAlignmentType.TangentTangentIntersect, "ТТ")
- End With
- 'Параметры среды
- With a_CivilDoc.Settings.DrawingSettings
- 'Площадь
- 'Единица
- .AmbientSettings.Area.Unit.Value = AreaUnitType.SquareMeter
- 'Точность
- .AmbientSettings.Area.Precision.Value = 2
- 'Округление
- .AmbientSettings.Area.Rounding.Value = RoundingType.Normal
- 'Знак
- .AmbientSettings.Area.Sign.Value = SignType.Negative
- End With
- End Sub
- End Class
Автор: Алексей Терно
Автор перевода: Алексей Терно
Отредактировано 16.01.2014 в 01:42:33
Автор перевода: Алексей Терно
Обсуждение: http://adn-cis.org/forum/index.php?topic=464
Опубликовано 16.01.2014Отредактировано 16.01.2014 в 01:42:33