public override bool Run(FeatureContext context) { Text3dNode textNode = new Text3dNode(); textNode.SetFontName("FangSong (TrueType)"); textNode.SetText("1234565\nabcdefg\n我爱CAD"); textNode.SetLineSpace(10); Coordinate3 coord = new Coordinate3(); coord.Origion = new Vector3(100, 100, 0); coord.X = new Vector3(1, 1, 0); coord.X.Normalize(); coord.Y = coord.Z.CrossProduct(coord.X); Matrix4 trf = GlobalInstance.MatrixBuilder.ToWorldMatrix(coord); textNode.SetTransform(trf); textNode.Update(); context.ShowSceneNode(textNode); return(true); }
public override bool Run(FeatureContext context) { //1. Create the path float radius = 100; TopoShape arc = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, new Vector3(-radius, -radius, 0), new Vector3(0, -radius, 0), Vector3.UNIT_Z); TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(-radius, -radius, 0), new Vector3(-radius, -radius * 2, 0)); TopoShapeGroup edges = new TopoShapeGroup(); edges.Add(arc); edges.Add(line); TopoShape wire = GlobalInstance.BrepTools.MakeWire(edges); Vector3 dirZ = new Vector3(1, -1, 0); dirZ.Normalize(); Vector3 dirX = dirZ.CrossProduct(Vector3.UNIT_Z); Coordinate3 coord = new Coordinate3(Vector3.ZERO, dirX, Vector3.UNIT_Z, dirZ); TopoShape path = GlobalInstance.BrepTools.Transform(wire, coord); context.ShowGeometry(path); //2. Create the profile List <Vector3> points = new List <Vector3>(); points.Add(new Vector3()); points.Add(new Vector3(200, 0, 0)); points.Add(new Vector3(200, 200, 0)); points.Add(new Vector3(0, 200, 0)); TopoShape polygon = GlobalInstance.BrepTools.MakePolygon(points); // 3. Make body AdvFeatureTools advFT = new AdvFeatureTools(); TopoShape shape = advFT.MakeEvolved(polygon, path, 0, true); context.ShowGeometry(shape); return(true); }
public override void UpdateGeometry() { VisualNode.ClearAll(); Coordinate3 coord = new Coordinate3(); coord.X = -Vector3.UNIT_Y; coord.Y = Vector3.UNIT_Z; coord.Z = Vector3.UNIT_X; Matrix4 trf = GlobalInstance.MatrixBuilder.ToWorldMatrix(coord); foreach (TopoShape edge in Section) { TopoShape shape = GlobalInstance.BrepTools.Extrude(edge, Length, -Vector3.UNIT_Z); shape = GlobalInstance.BrepTools.Transform(shape, trf); VisualNode.AddNode(GlobalInstance.TopoShapeConvert.ToSceneNode(shape, 0.01f)); } }
private void text3DToolStripMenuItem_Click(object sender, EventArgs e) { String fontName = "romand.shx"; FontManager fontMgr = GlobalInstance.FontManager; AnyCAD.Platform.Font font = fontMgr.FindFont(fontName); if(font == null) { font = fontMgr.LoadFont(fontName, "..\\Library\\Font\\romand.shx"); if(font != null) fontMgr.AddFont(font); } foreach (String name in fontMgr.ListFontNames()) { //MessageBox.Show(name); } Text3dNode textNode = new Text3dNode(); textNode.SetFontName("FangSong (TrueType)"); textNode.SetText("1234565\nabcdefg\n我爱你"); textNode.SetLineSpace(10); Coordinate3 coord = new Coordinate3(); coord.Origion = new Vector3(100, 100, 0); coord.X = new Vector3(1, 1, 0); coord.X.Normalize(); coord.Y = coord.Z.CrossProduct(coord.X); Matrix4 trf = GlobalInstance.MatrixBuilder.ToWorldMatrix(coord); textNode.SetTransform(trf); textNode.Update(); renderView.ShowSceneNode(textNode); }
private void evolvedToolStripMenuItem_Click(object sender, EventArgs e) { List<Vector3> points = new List<Vector3>(); points.Add(new Vector3()); points.Add(new Vector3(200, 0, 0)); points.Add(new Vector3(200, 200, 0)); points.Add(new Vector3(0, 200, 0)); TopoShape polygon = GlobalInstance.BrepTools.MakePolygon(points); float radius = 100; TopoShape arc = GlobalInstance.BrepTools.MakeArc(Vector3.ZERO, new Vector3(-radius, -radius, 0), new Vector3(0, -radius, 0), Vector3.UNIT_Z); TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(-radius, -radius, 0), new Vector3(-radius, -radius * 2, 0)); TopoShapeGroup edges = new TopoShapeGroup(); edges.Add(arc); edges.Add(line); TopoShape wire = GlobalInstance.BrepTools.MakeWire(edges); Vector3 dirZ = new Vector3(1,-1,0); dirZ.Normalize(); Vector3 dirX = dirZ.CrossProduct(Vector3.UNIT_Z); Coordinate3 coord = new Coordinate3(Vector3.ZERO, dirX, Vector3.UNIT_Z, dirZ); TopoShape path = GlobalInstance.BrepTools.Transform(wire, coord); renderView.ShowGeometry(path, ++shapeId); AdvFeatureTools advFT = new AdvFeatureTools(); TopoShape shape = advFT.MakeEvolved(polygon, path, 0, true); renderView.ShowGeometry(shape, ++shapeId); }
private void swee2ToolStripMenuItem_Click(object sender, EventArgs e) { AdvFeatureTools advTool = new AdvFeatureTools(); { Coordinate3 coord = new Coordinate3(); coord.Origion = new Vector3(-0.5f, -1, 0); TopoShape profile = GlobalInstance.BrepTools.MakeRectangle(1,2,0.2f, coord); TopoShape path = GlobalInstance.BrepTools.MakeLine(Vector3.ZERO, new Vector3(0, 0, 100)); //define the "S" curve float[] S ={0,40,-80, 1,10,0}; TopoShape sweepBody = advTool.MakeSweep(profile, path, S, true); renderView.ShowGeometry(sweepBody, ++shapeId); } { Primitive2dTools tool2d = new Primitive2dTools(); float radius = 50; TopoShapeGroup group = new TopoShapeGroup(); group.Add(tool2d.MakeArc(new Vector2(0, radius), radius, 0, 45)); group.Add(tool2d.MakeLine(new Vector2(radius, radius), new Vector2(radius * 2, radius))); TopoShape spline = tool2d.ToBSplineCurve(group); TopoShape profile = GlobalInstance.BrepTools.MakeCircle(new Vector3(100, 100, 0), 1, Vector3.UNIT_Z); List<Vector3> pts = new List<Vector3>(); pts.Add(new Vector3(100, 100, 0)); pts.Add(new Vector3(100, 100, 100)); pts.Add(new Vector3(100, 200, 400)); TopoShape path = GlobalInstance.BrepTools.MakeSpline(pts); TopoShape sweepBody = advTool.MakeSweep(profile, path, spline, true); renderView.ShowGeometry(sweepBody, ++shapeId); } }
private void pipeToolStripMenuItem_Click(object sender, EventArgs e) { for (int ii = 0; ii < 3; ++ii) { Vector3 startPt = new Vector3(ii * 100, 0, 0); var points = new System.Collections.Generic.List<Vector3>(); points.Add(startPt); points.Add(startPt + new Platform.Vector3(0, 0, 100)); points.Add(startPt + new Platform.Vector3(50, 50, 150)); TopoShape path = GlobalInstance.BrepTools.MakePolyline(points); TopoShape section = GlobalInstance.BrepTools.MakeCircle(startPt, 10, Vector3.UNIT_Z); TopoShape pipe = GlobalInstance.BrepTools.MakePipe(section, path, ii); renderView.ShowGeometry(pipe, ++shapeId); } for (int ii = 0; ii < 3; ++ii) { Vector3 startPt = new Vector3(ii * 100, 100, 0); var points = new System.Collections.Generic.List<Vector3>(); points.Add(startPt); points.Add(startPt + new Platform.Vector3(0, 0, 100)); points.Add(startPt + new Platform.Vector3(50, 50, 150)); TopoShape path = GlobalInstance.BrepTools.MakePolyline(points); Coordinate3 coord = new Coordinate3(); coord.Origion = startPt - new Vector3(-5,-5,0); TopoShape section = GlobalInstance.BrepTools.MakeRectangle(10, 10, 2, coord); TopoShape pipe = GlobalInstance.BrepTools.MakePipe(section, path, ii); renderView.ShowGeometry(pipe, ++shapeId); } renderView.RequestDraw(); }