// 押し出し public void Extrude(uint id, Vector3d v, double d, int divide) { CadFigure tfig = Controller.DB.GetFigure(id); if (tfig == null || tfig.Type != CadFigure.Types.POLY_LINES) { return; } v = v.UnitVector(); v *= -d; CadMesh cm = MeshMaker.CreateExtruded(tfig.GetPoints(16), v, divide); HeModel hem = HeModelConverter.ToHeModel(cm); CadFigureMesh fig = (CadFigureMesh)Controller.DB.NewFigure(CadFigure.Types.MESH); fig.RecalcNormal(); fig.SetMesh(hem); CadOpeList root = new CadOpeList(); CadOpe ope; ope = new CadOpeAddFigure(Controller.CurrentLayer.ID, fig.ID); root.Add(ope); ope = new CadOpeRemoveFigure(Controller.CurrentLayer, tfig.ID); root.Add(ope); Session.AddOpe(root); Controller.CurrentLayer.AddFigure(fig); Controller.CurrentLayer.RemoveFigureByID(tfig.ID); Session.PostRemakeObjectTree(); }
private void test003() { CadFigure tfig = GetTargetFigure(); if (tfig == null || tfig.Type != CadFigure.Types.POLY_LINES) { return; } CadMesh cm = MeshMaker.CreateExtruded(tfig.GetPoints(16), Vector3d.UnitZ * -20); HeModel hem = HeModelConverter.ToHeModel(cm); CadFigureMesh fig = (CadFigureMesh)Controller.DB.NewFigure(CadFigure.Types.MESH); fig.SetMesh(hem); CadOpe ope = new CadOpeAddFigure(Controller.CurrentLayer.ID, fig.ID); Controller.HistoryMan.foward(ope); Controller.CurrentLayer.AddFigure(fig); Controller.UpdateObjectTree(true); }