public override bool Execute() { var nodes = NodeBuilderUtils.CopyPaste(Dependency[0].ReferenceBuilder.Node); var nb = new NodeBuilder(Dependency[1].ReferenceBuilder.Node); var sketchNodes = new List <Node>(); foreach (var point in nodes) { var transformation = point.Set <TransformationInterpreter>(); transformation.CurrTransform.SetMirror(nb.Dependency[1].TransformedPoint3D.GpPnt); var node = NodeBuilderUtils.FindSketchNode(point); if (node != null) { sketchNodes.Add(node); } var nb1 = new NodeBuilder(point); nb1.ExecuteFunction(); } if (sketchNodes.Count > 0) { var document = sketchNodes[0].Root.Get <DocumentContextInterpreter>().Document; foreach (var sketchNode in sketchNodes) { int shapeIndex = 0; if (NodeUtils.SketchHas3DApplied(document, sketchNode, out shapeIndex)) { sketchNode.Children[2].Set <MeshTopoShapeInterpreter>().Shape = AutoGroupLogic.RebuildSketchFace(sketchNode, document); } } } return(true); }
private void PasteNode(DataPackage objectData) { if (_nodes.Count <= 0) { return; } if (_nodes[0] == null) { return; } var newChild = NodeBuilderUtils.CopyPaste(_nodes[0]); //if(newChild != null) // newChild.Set<StringInterpreter>().Value += " Copy"; }
private void MakeArrayPattern(int rows, int columns, double rowDistance, double colomnsDistance, int reverseRows, int reverseColomns, bool previewMode) { var indexColomns = 1; Document document = null; var sketchNodes = new List <Node>(); for (var indexRows = 0; indexRows < rows; indexRows++) { for (; indexColomns < columns; indexColomns++) { var affectedPoints = NodeBuilderUtils.CopyPaste(_selectedNodes[0]); foreach (var child in affectedPoints) { var node = NodeBuilderUtils.FindSketchNode(child); var transformInterpreter = child.Set <TransformationInterpreter>(); transformInterpreter.ApplyGeneralArrayPattern(_axis, _ColumnAxis, indexRows * rowDistance * reverseRows, indexColomns * colomnsDistance * reverseColomns); if (node != null) { sketchNodes.Add(node); } var nb = new NodeBuilder(child); nb.ExecuteFunction(); } } indexColomns = 0; } if (sketchNodes.Count > 0) { document = sketchNodes[0].Root.Get <DocumentContextInterpreter>().Document; int shapeIndex = 0; foreach (var sketchNode in sketchNodes) { if (NodeUtils.SketchHas3DApplied(document, sketchNode, out shapeIndex)) { sketchNode.Children[2].Set <MeshTopoShapeInterpreter>().Shape = AutoGroupLogic.RebuildSketchFace(sketchNode, document); } } } if (!previewMode) { CommitFinal("Apply Array Pattern"); UpdateView(); RebuildTreeView(); } }
private void MakeCircularPattern(int number, double angle, double heigth, int reverse, bool previewMode) { var sketchNodes = new List <Node>(); for (var index = 1; index < number; index++) { var affectedPoints = NodeBuilderUtils.CopyPaste(_selectedNodes[0]); foreach (var child in affectedPoints) { var node = NodeBuilderUtils.FindSketchNode(child); var transformInterpreter = child.Get <TransformationInterpreter>(); transformInterpreter.ApplyGeneralCircularPattern(_axis, index * angle, index * heigth * reverse); if (node != null) { sketchNodes.Add(node); } var nb = new NodeBuilder(child); nb.ExecuteFunction(); } } if (sketchNodes.Count > 0) { var document = sketchNodes[0].Root.Get <DocumentContextInterpreter>().Document; int shapeIndex = 0; foreach (var sketchNode in sketchNodes) { if (NodeUtils.SketchHas3DApplied(document, sketchNode, out shapeIndex)) { sketchNode.Children[2].Set <MeshTopoShapeInterpreter>().Shape = AutoGroupLogic.RebuildSketchFace(sketchNode, document); } } } if (!previewMode) { CommitFinal("Apply Circular Pattern"); UpdateView(); RebuildTreeView(); } }