using c3d 2012 and vs2008
I almost have my first net sub working. This insert a civil alignment from 2 screen points. It places the alignment object in the drawing however if I hit
return to repeat the command autodesk editor crashes. am I not closing the transaction coorectly.
Thank you
john
<CommandMethod("AlignpickNET")> _
Public Sub MyAddALignpickNET()
Dim civdoc As CivilDocument = CivilApplication.ActiveDocument
Dim alignstyle As ObjectId = civdoc.Styles.AlignmentStyles(0)
Dim alignlblstyle As ObjectId = civdoc.Styles.LabelSetStyles.AlignmentLabelSetStyles(0)
Dim layer As ObjectId = civdoc.Settings.DrawingSettings.ObjectLayerSettings.GetObjectLayerSetting(Autodesk.Civil.Settings.SettingsObjectLayerType.Alignment).LayerId
Dim alignid As ObjectId = Alignment.Create(civdoc, "MyFirstNETAlign", ObjectId.Null, layer, alignstyle, alignlblstyle)
Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
Dim promptPtOp1 As PromptPointOptions = New PromptPointOptions(vbCrLf + "Select start runway : ")
promptPtOp1.LimitsChecked = True
promptPtOp1.AllowNone = False
Dim promptPtRes1 As PromptPointResult = ed.GetPoint(promptPtOp1)
Dim promptPtOp2 As PromptPointOptions = New PromptPointOptions(vbCrLf + "Select end runway : ")
promptPtOp2.UseBasePoint = True
promptPtOp2.BasePoint = promptPtRes1.Value
promptPtOp2.LimitsChecked = True
promptPtOp2.AllowNone = False
Dim promptPtRes2 As PromptPointResult = ed.GetPoint(promptPtOp2)
Dim pt1 As Point3d = Nothing
Dim pt2 As Point3d = Nothing
pt1 = promptPtRes1.Value
pt2 = promptPtRes2.Value
Using tr As Transaction = Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction()
Dim align As Alignment = tr.GetObject(alignid, OpenMode.ForWrite)
align.Entities.AddFixedLine(pt1, pt2)
tr.Commit()
tr.Dispose()
End Using
End Sub