上面代码的第二部分
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] PEO2 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetEditorInput.PromptEntityOptions = [/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] AcadNetEditorInput.PromptEntityOptions(vbCr & [/size][size=2][color=#a31515][size=2][color=#a31515]"Select bottom Curve: "[/color][/size][/color][/size][size=2])[/size]
- [size=2]PEO2.SetRejectMessage([/size][size=2][color=#a31515][size=2][color=#a31515]" Invalid entity! Select LWPoly, 2DPoly, 3DPoly, Line, Arc, Circle or Spline only!"[/color][/size][/color][/size][size=2])[/size]
- [size=2]PEO2.AddAllowedClass([/size][size=2][color=#0000ff][size=2][color=#0000ff]GetType[/color][/size][/color][/size][size=2](AcadNetDbServices.Curve), [/size][size=2][color=#0000ff][size=2][color=#0000ff]False[/color][/size][/color][/size][size=2])[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] PER2 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetEditorInput.PromptEntityResult = ED.GetEntity(PEO2)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]If[/color][/size][/color][/size][size=2] PER2.Status <> AcadNetEditorInput.PromptStatus.OK [/size][size=2][color=#0000ff][size=2][color=#0000ff]Then[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Exit[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size]
- [/color][/size][size=2]BottomCurve = Trans2.GetObject(PER2.ObjectId, AcadNetDbServices.OpenMode.ForRead)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] TopCurveLen [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Double[/color][/size][/color][/size][size=2] = TopCurve.GetDistanceAtParameter(TopCurve.EndParam)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] DistBetween [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Double[/color][/size][/color][/size][size=2] = PDR.Value[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Divstep [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Double[/color][/size][/color][/size][size=2] = PDR.Value[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] StepLength1 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Double[/color][/size][/color][/size][size=2] = 0[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Toolong1 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Boolean[/color][/size][/color][/size][size=2] = [/size][size=2][color=#0000ff][size=2][color=#0000ff]False[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]While[/color][/size][/color][/size][size=2] Toolong1 = [/size][size=2][color=#0000ff][size=2][color=#0000ff]False[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Trans3 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetDbServices.Transaction = DB.TransactionManager.StartTransaction()[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] AcadBT [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetDbServices.BlockTable[/size]
- [size=2]AcadBT = Trans3.GetObject(DB.BlockTableId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] BTRSpace [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetDbServices.BlockTableRecord = Trans3.GetObject(DB.CurrentSpaceId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] AcadBTR [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetDbServices.BlockTableRecord[/size]
- [size=2][color=#008000][size=2][color=#008000]''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]If[/color][/size][/color][/size][size=2] StepLength1 <= TopCurveLen [/size][size=2][color=#0000ff][size=2][color=#0000ff]Then[/color][/size]
- [/color][/size][size=2][color=#008000][size=2][color=#008000]''''''''''''''''''''''''''''''''''''''''''''''''''''''''''[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] StartPt1 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetGeometry.Point3d = TopCurve.GetPointAtDist(StepLength1)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Vector1 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetGeometry.Vector3d = TopCurve.GetFirstDerivative(StartPt1)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Vector1Perp [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetGeometry.Vector3d = Vector1.GetPerpendicularVector()[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Vector1PerpNeg [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetGeometry.Vector3d = Vector1Perp.Negate()[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] EndPt1 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetGeometry.Point3d = BottomCurve.GetClosestPointTo(StartPt1, Vector1Perp, [/size][size=2][color=#0000ff][size=2][color=#0000ff]False[/color][/size][/color][/size][size=2])[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Dim[/color][/size][/color][/size][size=2] Line1 [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] AcadNetDbServices.Line = [/size][size=2][color=#0000ff][size=2][color=#0000ff]New[/color][/size][/color][/size][size=2] AcadNetDbServices.Line()[/size]
- [size=2]Line1.StartPoint = StartPt1[/size]
- [size=2]Line1.EndPoint = EndPt1[/size]
- [size=2]BTRSpace.AppendEntity(Line1)[/size]
- [size=2]Trans3.AddNewlyCreatedDBObject(Line1, [/size][size=2][color=#0000ff][size=2][color=#0000ff]True[/color][/size][/color][/size][size=2])[/size]
- [size=2]StepLength1 = StepLength1 + Divstep[/size]
- [size=2]Line1.Dispose()[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Else[/color][/size]
- [/color][/size][size=2]Toolong1 = [/size][size=2][color=#0000ff][size=2][color=#0000ff]True[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]If[/color][/size]
- [/color][/size][size=2]Trans3.Commit()[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]While[/color][/size]
- [/color][/size][size=2]Trans2.Commit()[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Catch[/color][/size][/color][/size][size=2] ex [/size][size=2][color=#0000ff][size=2][color=#0000ff]As[/color][/size][/color][/size][size=2] Autodesk.AutoCAD.Runtime.Exception[/size]
- [size=2]MsgBox([/size][size=2][color=#a31515][size=2][color=#a31515]"error"[/color][/size][/color][/size][size=2])[/size]
- [size=2][/size][size=2]MsgBox([/size][size=2][color=#a31515][size=2][color=#a31515]"Error during execution! "[/color][/size][/color][/size][size=2] & ex.Message)[/size]
- [size=2][color=#0000ff][size=2][color=#0000ff]Finally[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Try[/color][/size]
- [/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Sub[/color][/size]
- [size=2][color=#0000ff]End[/color][/size][/color][/size][size=2][color=#0000ff][size=2][color=#0000ff]Class[/color][/size]
- [/color][/size]
|