我在vb中绘制xline时遇到问题。网
它似乎在说,我如何设置xline的起始点存在问题。
谁能给我一个例子,如何在vb中绘制一个xline。网
这是我的一些
- [size=2][color=#0000ff]Dim [/color][/size][size=2]PEO1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityOptions = [/size][size=2][color=#0000ff]New [/color][/size][size=2]PromptEntityOptions(VBCR & "Select top of batter: ")
- peo1.SetRejectMessage(" Invalid entity! Select LWPoly, 2DPoly, 3DPoly, Line, Arc or Spline only!")
- peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline2d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline3d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](Line),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](spline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo1.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](arc),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PER1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityResult = ED.GetEntity(PEO1)
- [/size][size=2][color=#0000ff]If [/color][/size][size=2]PER1.Status <> PROMPTSTATUS.OK [/size][size=2][color=#0000ff]Then Exit Function
- [/color][/size][size=2]TopCurve = trans.GetObject(per1.ObjectId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PEO2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityOptions = [/size][size=2][color=#0000ff]New [/color][/size][size=2]PromptEntityOptions(VBCR & "Select bottom of batter: ")
- peo2.SetRejectMessage(" Invalid entity! Select LWPoly, 2DPoly, 3DPoly, Line, Arc or Spline only!")
- peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline2d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](polyline3d),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](Line),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](spline),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- peo2.AddAllowedClass([/size][size=2][color=#0000ff]GetType[/color][/size][size=2](arc),[/size][size=2][color=#0000ff]True[/color][/size][size=2])
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PER2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptEntityResult = ED.GetEntity(PEO2)
- [/size][size=2][color=#0000ff]If [/color][/size][size=2]PER2.Status <> PROMPTSTATUS.OK [/size][size=2][color=#0000ff]Then Exit Function
- [/color][/size][size=2]BottomCurve = trans.GetObject(per2.ObjectId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead)
- [/size]
- [size=2][color=#0000ff]Dim [/color][/size][size=2]PDO [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptDoubleOptions = [/size][size=2][color=#0000ff]new [/color][/size][size=2]PromptDoubleOptions(vbcr & "Specify distance between batter ticks: ")
- PDO.AllowNegative = [/size][size=2][color=#0000ff]False
- [/color][/size][size=2]PDO.AllowZero = [/size][size=2][color=#0000ff]False
- [/color][/size][size=2]PDO.AllowArbitraryInput = [/size][size=2][color=#0000ff]False
- [/color][/size][size=2]PDO.AllowNone = [/size][size=2][color=#0000ff]False
- [/color][/size][size=2]PDO.DefaultValue = 5
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]PDR [/size][size=2][color=#0000ff]As [/color][/size][size=2]PromptDoubleResult = ed.GetDouble(PDO)
- [/size][size=2][color=#0000ff]If [/color][/size][size=2]PDR.Status <> Promptstatus.OK [/size][size=2][color=#0000ff]Then Exit Function
- [/color][/size]
- [size=2][color=#0000ff]Dim [/color][/size][size=2]TopCurveLen [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]Long [/color][/size][size=2]= topcurve.GetDistanceAtParameter(topcurve.EndParam)[/size]
- [color=#008000][/color]
- [size=2][color=#0000ff]Dim [/color][/size][size=2]DistBetween [/size][size=2][color=#0000ff]as [/color][/size][size=2][color=#6f002f]Integer [/color][/size][size=2]= PDR.Value
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]StepLength1 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]double [/color][/size][size=2]= DistBetween
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]StepLength2 [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#6f002f]double [/color][/size][size=2]= (steplength1 / 2)
- [/size]
- [size=2][color=#0000ff]Dim [/color][/size][size=2]StartPt1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Point3d()
- StartPt1 = topCurve.GetPointAtDist(StepLength1)
- ''msgbox (startpt1.ToString)
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]StartPt2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Point3d()
- StartPt2 = topcurve.GetPointAtDist(StepLength2)
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]EndPt1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Point3D()
- EndPt1 = bottomcurve.GetClosestPointTo(StartPt1, [/size][size=2][color=#0000ff]True[/color][/size][size=2])
- ''msgbox (endpt1.ToString)
- [/size][size=2][color=#0000ff]Dim [/color][/size][size=2]EndPt2 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Point3d = BottomCurve.GetClosestPointTo(StartPt2, [/size][size=2][color=#0000ff]true[/color][/size][size=2])
- [/size]
- [size=2][color=#0000ff]Dim [/color][/size][size=2]Xline1 [/size][size=2][color=#0000ff]As [/color][/size][size=2]Xline = [/size][size=2][color=#0000ff]New [/color][/size][size=2]Xline()
- xline1.StartPoint = startpt1[/size][size=2][color=#008000]'PROBLEM HERE
- [/color][/size][size=2]xline1.EndPoint = ENDPT1[/size][size=2][color=#008000]'PROBLEM HERE
- [/color][/size][size=2]Xline1.Visible = [/size][size=2][color=#0000ff]True
- [/color][/size][size=2]AcadBTR.AppendEntity(xLINE1)
- Trans.AddNewlyCreatedDBObject(Xline1, [/size][size=2][color=#0000ff]True[/color][/size][size=2])
- Trans.Commit()
- [/size]
我是vb新手。所以请友善一点。
任何示例材料或网站也会有所帮助 |