public override bool Run(FeatureContext context) { LineStyle lineStyle = new LineStyle(); lineStyle.SetLineWidth(0.5f); lineStyle.SetColor(ColorValue.BLUE); lineStyle.SetLineWidth(1.5f); LineStyle lineStyle2 = new LineStyle(); lineStyle2.SetLineWidth(0.5f); lineStyle2.SetColor(ColorValue.GREEN); lineStyle2.SetLineWidth(2); TopoShape arc = GlobalInstance.BrepTools.MakeEllipseArc(Vector3.ZERO, 100, 50, 45, 270, Vector3.UNIT_Z); context.ShowGeometry(arc); { GeomCurve curve = new GeomCurve(); curve.Initialize(arc); double paramStart = curve.FirstParameter(); double paramEnd = curve.LastParameter(); double step = (paramEnd - paramStart) * 0.1; for (double uu = paramStart; uu <= paramEnd; uu += step) { Vector3 dir = curve.DN(uu, 1); Vector3 pos = curve.Value(uu); // 切线 { TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir); SceneNode node = context.ShowGeometry(line); node.SetLineStyle(lineStyle); } // 法线 { Vector3 dirN = dir.CrossProduct(Vector3.UNIT_Z); TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dirN); SceneNode node = context.ShowGeometry(line); node.SetLineStyle(lineStyle2); } } } return(true); }
public override bool Run(FeatureContext context) { // build two surfaces TopoShape arc = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, 100, 0, 135, Vector3.UNIT_Z); TopoShape cir = GlobalInstance.BrepTools.MakeCircle(new Vector3(-200, 0, 0), 50, Vector3.UNIT_X); TopoShape surf1 = GlobalInstance.BrepTools.Extrude(arc, 100, Vector3.UNIT_Z); TopoShape surf2 = GlobalInstance.BrepTools.Extrude(cir, 400, Vector3.UNIT_X); SceneNode n1 = context.ShowGeometry(surf1); { FaceStyle fs1 = new FaceStyle(); fs1.SetColor(new ColorValue(0, 0, 0.5f, 0.5f)); fs1.SetTransparent(true); n1.SetFaceStyle(fs1); } SceneNode n2 = context.ShowGeometry(surf2); { FaceStyle fs2 = new FaceStyle(); fs2.SetColor(new ColorValue(0, 0.5f, 0.5f, 0.5f)); fs2.SetTransparent(true); n2.SetFaceStyle(fs2); } // compute section wire TopoShape wire = GlobalInstance.BrepTools.SurfaceSection(surf1, surf2); SceneNode sectionNode = context.ShowGeometry(wire); LineStyle lineStyle = new LineStyle(); lineStyle.SetLineWidth(4); lineStyle.SetColor(ColorValue.RED); sectionNode.SetLineStyle(lineStyle); return(true); }
private void MainForm_Load(object sender, EventArgs e) { mDefaultLineStyle = new LineStyle(); mDefaultLineStyle.SetColor(255, 0, 0); mDefaultLineStyle.SetLineWidth(2); renderView.ExecuteCommand("PickClearMode", "Single"); }
public override bool Run(FeatureContext context) { LineStyle lineStyle = new LineStyle(); lineStyle.SetLineWidth(0.5f); lineStyle.SetColor(ColorValue.RED); var points = new List <Vector3>(); points.Add(new Vector3(0, 0, 0)); points.Add(new Vector3(50, 0, 0)); points.Add(new Vector3(100, 0, 0)); points.Add(new Vector3(0, 50, 0)); points.Add(new Vector3(50, 50, 5)); points.Add(new Vector3(100, 50, -5)); points.Add(new Vector3(0, 150, 5)); points.Add(new Vector3(50, 150, -5)); points.Add(new Vector3(100, 150, 0)); TopoShape face = GlobalInstance.BrepTools.MakeSurfaceFromPoints(points, 3, 3); context.ShowGeometry(face); GeomSurface surface = new GeomSurface(); surface.Initialize(face); double ufirst = surface.FirstUParameter(); double uLarst = surface.LastUParameter(); double vfirst = surface.FirstVParameter(); double vLast = surface.LastVParameter(); double ustep = (uLarst - ufirst) * 0.1; double vstep = (vLast - vfirst) * 0.1; for (double ii = ufirst; ii <= uLarst; ii += ustep) { for (double jj = vfirst; jj <= vLast; jj += vstep) { var data = surface.D1(ii, jj); Vector3 pos = data[0]; Vector3 dirU = data[1]; Vector3 dirV = data[2]; Vector3 dir = dirV.CrossProduct(dirU); //dir.Normalize(); { TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir * 0.01f); SceneNode node = context.ShowGeometry(line); node.SetLineStyle(lineStyle); } } } return(true); }
public FindWireContext(FeatureContext context) { _Context = context; _LineStyle.SetLineWidth(2); _LineStyle.SetColor(255, 0, 0); _FaceStyle.SetColor(new ColorValue(0.5f, 0.5f, 0.5f, 0.5f)); _FaceStyle.SetTransparent(true); }
public CADBrower(System.Windows.Forms.TreeView _treeView, AnyCAD.Presentation.RenderWindow3d _renderView) { treeView = _treeView; renderView = _renderView; faceStyle = new FaceStyle(); holeStyle = new LineStyle(); holeStyle.SetLineWidth(3); holeStyle.SetColor(0, 256, 0); System.Windows.Forms.TreeNode node = treeView.Nodes.Add("AnyCAD.net"); nodeStack.Push(node); }
public DrawLineEditor(AddLineEvent callback) { SetId("AD::DrawLine"); OnAddLineEvent = callback; LineStyle lineStyle = new LineStyle(); lineStyle.SetPatternStyle((int)EnumLinePattern.LP_DashedLine); lineStyle.SetColor(255, 0, 100); lineStyle.SetLineWidth(2); tempLineNode.SetLineStyle(lineStyle); }
public override bool Run(FeatureContext context) { TopoShape shape = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, 100, 10, 180, Vector3.UNIT_Z); SceneNode node = context.ShowGeometry(shape); LineStyle ls = new LineStyle(); ls.SetLineWidth(2); ls.SetColor(0, 255, 0); ls.SetPatternStyle((int)EnumLinePattern.LP_DashedLine); node.SetLineStyle(ls); return(true); }
public override bool Run(FeatureContext context) { TopoShape oCircle1 = GlobalInstance.BrepTools.MakeCircle(Vector3.ZERO, 20, Vector3.UNIT_Z); TopoShape Pipe01_Surf = GlobalInstance.BrepTools.Extrude(oCircle1, 100, Vector3.UNIT_Z); context.ShowGeometry(Pipe01_Surf); TopoShape oCircle2 = GlobalInstance.BrepTools.MakeCircle(new Vector3(0.0f, 0.0f, 50.0f), 10, Vector3.UNIT_Y); TopoShape Pipe02_Surf = GlobalInstance.BrepTools.Extrude(oCircle2, 80, Vector3.UNIT_Y); { SceneNode node2 = context.ShowGeometry(Pipe02_Surf); FaceStyle fs = new FaceStyle(); fs.SetColor(new ColorValue(0.5f, 0.5f, 0.5f, 0.5f)); fs.SetTransparent(true); node2.SetFaceStyle(fs); } // Compute the intersection curve TopoShape Inters1 = GlobalInstance.BrepTools.SurfaceSection(Pipe01_Surf, Pipe02_Surf); if (Inters1 != null) { SceneNode node = context.ShowGeometry(Inters1); LineStyle ls = new LineStyle(); ls.SetLineWidth(3); ls.SetColor(ColorValue.RED); node.SetLineStyle(ls); // Get the curve parameters GeomCurve curve = new GeomCurve(); if (curve.Initialize(Inters1)) { LineStyle ls2 = new LineStyle(); ls2.SetColor(ColorValue.GREEN); double start = curve.FirstParameter(); double end = curve.LastParameter(); for (double ii = start; ii <= end; ii += 0.1) { List <Vector3> rt = curve.D1(ii); LineNode ln = new LineNode(); ln.SetLineStyle(ls2); ln.Set(rt[0], rt[0] + rt[1]); context.ShowSceneNode(ln); } } } return(true); }
public override bool Run(FeatureContext context) { TopoShape cylinder = GlobalInstance.BrepTools.MakeCylinder(Vector3.ZERO, Vector3.UNIT_Z, 100, 200, 270); TopoShape section = GlobalInstance.BrepTools.BodySection(cylinder, new Vector3(0, 0, 50), Vector3.UNIT_Z); context.ShowGeometry(cylinder); SceneNode node = context.ShowGeometry(section); LineStyle ls = new LineStyle(); ls.SetLineWidth(3.0f); ls.SetColor(255, 0, 0); node.SetLineStyle(ls); return(true); }
public override bool Run(FeatureContext context) { TopoShape arc = GlobalInstance.BrepTools.MakeArc(new Vector3(-100, 0, 0), new Vector3(100, 0, 0), Vector3.ZERO, Vector3.UNIT_Z); TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(100, 0, 0), new Vector3(100, 200, 0)); TopoShapeGroup group = new TopoShapeGroup(); group.Add(arc); group.Add(line); TopoShape wire = GlobalInstance.BrepTools.MakeSpline(group); TopoShape splitter1 = GlobalInstance.BrepTools.MakePoint(new Vector3(0, -100, 0)); TopoShape splitter2 = GlobalInstance.BrepTools.MakePoint(new Vector3(100, 100, 0)); TopoShapeGroup spliterGroup = new TopoShapeGroup(); spliterGroup.Add(splitter1); spliterGroup.Add(splitter2); TopoShape result = GlobalInstance.BrepTools.MakeSplit(wire, spliterGroup); TopoExplor exp = new TopoExplor(); TopoShapeGroup itmes = exp.ExplorSubShapes(result); for (int ii = 0; ii < itmes.Size(); ++ii) { SceneNode node = context.ShowGeometry(itmes.GetAt(ii)); LineStyle ls = new LineStyle(); ls.SetLineWidth(3.0f); ls.SetColor((ii + 1) * 50, ii * 20, ii * 10); node.SetLineStyle(ls); } return(true); }
private void surfaceToolStripMenuItem_Click(object sender, EventArgs e) { LineStyle lineStyle = new LineStyle(); lineStyle.SetLineWidth(0.5f); lineStyle.SetColor(ColorValue.RED); Vector3List points = new Vector3List(); points.Add(new Vector3(0, 0, 0)); points.Add(new Vector3(50, 0, 0)); points.Add(new Vector3(100, 0, 0)); points.Add(new Vector3(0, 50, 0)); points.Add(new Vector3(50, 50, 5)); points.Add(new Vector3(100, 50, -5)); points.Add(new Vector3(0, 150, 5)); points.Add(new Vector3(50, 150, -5)); points.Add(new Vector3(100, 150, 0)); TopoShape face = GlobalInstance.BrepTools.MakeSurfaceFromPoints(points, 3, 3); renderView.ShowGeometry(face, ++shapeId); GeomeSurface surface = new GeomeSurface(); surface.Initialize(face); float ufirst = surface.FirstUParameter(); float uLarst = surface.LastUParameter(); float vfirst = surface.FirstVParameter(); float vLast = surface.LastVParameter(); float ustep = (uLarst - ufirst) * 0.1f; float vstep = (vLast - vfirst) * 0.1f; for (float ii = ufirst; ii <= uLarst; ii += ustep) { for (float jj = vfirst; jj <= vLast; jj += vstep) { Vector3List data = surface.D1(ii, jj); Vector3 pos = data.Get(0); Vector3 dirU = data.Get(1); Vector3 dirV = data.Get(2); Vector3 dir = dirV.CrossProduct(dirU); dir.Normalize(); { TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir * 10.0f); SceneNode node = renderView.ShowGeometry(line, ++shapeId); node.SetLineStyle(lineStyle); } } } TopoShapeProperty property = new TopoShapeProperty(); property.SetShape(face); float area = property.SurfaceArea(); TextNode text = new TextNode(); text.SetText(String.Format("Surface Area: {0}", area)); text.SetPosition(new Vector3(100, 100, 0)); renderView.SceneManager.ClearNodes2d(); renderView.SceneManager.AddNode2d(text); renderView.RequestDraw(); }
private void curveToolStripMenuItem_Click(object sender, EventArgs e) { renderView.View3d.SetStandardView(3); LineStyle lineStyle = new LineStyle(); lineStyle.SetLineWidth(0.5f); lineStyle.SetColor(ColorValue.BLUE); LineStyle lineStyle2 = new LineStyle(); lineStyle2.SetLineWidth(0.5f); lineStyle2.SetColor(ColorValue.GREEN); TopoShape arc = GlobalInstance.BrepTools.MakeEllipseArc(Vector3.ZERO, 100, 50, 45, 270, Vector3.UNIT_Z); renderView.ShowGeometry(arc, ++shapeId); { GeomeCurve curve = new GeomeCurve(); curve.Initialize(arc); float paramStart = curve.FirstParameter(); float paramEnd = curve.LastParameter(); float step = (paramEnd - paramStart) * 0.1f; for (float uu = paramStart; uu <= paramEnd; uu += step) { Vector3 dir = curve.DN(uu, 1); Vector3 pos = curve.Value(uu); // 切线 { TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dir); SceneNode node = renderView.ShowGeometry(line, ++shapeId); node.SetLineStyle(lineStyle); } // 法线 { Vector3 dirN = dir.CrossProduct(Vector3.UNIT_Z); TopoShape line = GlobalInstance.BrepTools.MakeLine(pos, pos + dirN); SceneNode node = renderView.ShowGeometry(line, ++shapeId); node.SetLineStyle(lineStyle2); } } } TopoShapeProperty property = new TopoShapeProperty(); property.SetShape(arc); float len = property.EdgeLength(); TextNode text = new TextNode(); text.SetText(String.Format("Arc Length: {0}", len)); text.SetPosition(new Vector3(100, 100, 0)); renderView.SceneManager.ClearNodes2d(); renderView.SceneManager.AddNode2d(text); renderView.RequestDraw(); }
private void surfaceSectionToolStripMenuItem_Click(object sender, EventArgs e) { TopoShape oCircle1 = GlobalInstance.BrepTools.MakeCircle(Vector3.ZERO, 20, Vector3.UNIT_Z); TopoShape Pipe01_Surf = GlobalInstance.BrepTools.Extrude(oCircle1, 100, Vector3.UNIT_Z); renderView.ShowGeometry(Pipe01_Surf, ++shapeId); TopoShape oCircle2 = GlobalInstance.BrepTools.MakeCircle(new Vector3(0.0f, 0.0f, 50.0f), 10, Vector3.UNIT_Y); TopoShape Pipe02_Surf = GlobalInstance.BrepTools.Extrude(oCircle2, 80, Vector3.UNIT_Y); renderView.ShowGeometry(Pipe02_Surf, ++shapeId); TopoShape Inters1 = GlobalInstance.BrepTools.SurfaceSection(Pipe01_Surf, Pipe02_Surf); if (Inters1 != null) { SceneNode node = renderView.ShowGeometry(Inters1, ++shapeId); LineStyle ls = new LineStyle(); ls.SetLineWidth(3); ls.SetColor(ColorValue.RED); node.SetLineStyle(ls); GeomCurve curve = new GeomCurve(); if (curve.Initialize(Inters1)) { LineStyle ls2 = new LineStyle(); ls2.SetColor(ColorValue.GREEN); float start = curve.FirstParameter(); float end = curve.LastParameter(); for (float ii = start; ii <= end; ii += 0.1f) { List<Vector3> rt = curve.D1(ii); LineNode ln = new LineNode(); ln.SetLineStyle(ls2); ln.Set(rt[0], rt[0] + rt[1]); renderView.ShowSceneNode(ln); } } } renderView.RequestDraw(); }
private void sectionToolStripMenuItem_Click(object sender, EventArgs e) { // build two surfaces TopoShape arc = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, 100, 0, 135, Vector3.UNIT_Z); TopoShape cir = GlobalInstance.BrepTools.MakeCircle(new Vector3(-200,0,0), 50, Vector3.UNIT_X); TopoShape surf1 = GlobalInstance.BrepTools.Extrude(arc, 100, Vector3.UNIT_Z); TopoShape surf2 = GlobalInstance.BrepTools.Extrude(cir, 400, Vector3.UNIT_X); renderView.ShowGeometry(surf1, ++shapeId); //renderView.ShowGeometry(surf2, ++shapeId); // compute section wire TopoShape wire = GlobalInstance.BrepTools.SurfaceSection(surf1, surf2); if (wire == null) return; SceneNode sectionNode = renderView.ShowGeometry(wire, ++shapeId); LineStyle lineStyle = new LineStyle(); lineStyle.SetLineWidth(4); lineStyle.SetColor(ColorValue.RED); sectionNode.SetLineStyle(lineStyle); renderView.RequestDraw(); }