// NCG CAM 16.0.10 // 24 April 2019 entityList main(const entity& ekBoundaryPlan, const entityList& elSelectedPlans) { bool bDisplayDialogs = false; // Allow empty toolpaths in Post Processor plans when running macros AllowEmptyToolPaths(true); entity ekTriangulatedSurfaces = GetSinglet(elSelectedPlans, 0); // Detect invalid input if (!IsTessellatedSurfaces(ekTriangulatedSurfaces)) { LogFile(4, "The selected plan is not a set of surfaces"); return[e:]; } entity ekBoundary1 = SelectBoundaryPlan("\"Bounding Box 2\""); if (IsNullKey(ekBoundary1)) return [e: ]; entity ekBoundary2 = SelectBoundaryPlan("\"Bounding Box 4\""); if (IsNullKey(ekBoundary2)) return [e: ]; entity ekBoundary3 = SelectBoundaryPlan("\"Bounding Box 5\""); if (IsNullKey(ekBoundary3)) return [e: ]; entity ekBoundary4 = SelectBoundaryPlan("\"Bounding Box 8\""); if (IsNullKey(ekBoundary4)) return [e: ]; entity ekBoundary5 = SelectBoundaryPlan("\"Bounding Box 9\""); if (IsNullKey(ekBoundary5)) return [e: ]; entity ekBoundary6 = SelectBoundaryPlan("\"Copy of Silhouette Boundary 1\""); if (IsNullKey(ekBoundary6)) return [e: ]; entity ekBoundary7 = SelectBoundaryPlan("\"Copy of Silhouette Boundary 1\""); if (IsNullKey(ekBoundary7)) return [e: ]; // Transform Tessellation Plan entity ekPlan1 = CreatePlan(5197, [s: "Geometry"], [e: ekTriangulatedSurfaces], [s: "Workplane", "WorkPlaneTransformationType", "WorkPlaneTransformationParameterReal1", "WorkplaneFormulae", "CombineTransformedGeometry"], [s: "[r: 0, 0, 0, 1, -90]", "2", "-90", "[s: \"0\", \"0.0\", \"0.0\", \"1.0\", \"-90\"]", "false"], bDisplayDialogs); // Meta Plan entity ekPlan2 = CreatePlan(5158, [s: "SourcePlan"], [e: ekPlan1], [s: "MetaOperation", "OutputID", "MetaIndices"], [s: "1", "6810", "[i: 45, 38, 46]"], bDisplayDialogs); // Meta Plan entity ekPlan3 = CreatePlan(5158, [s: "SourcePlan"], [e: ekPlan1], [s: "MetaOperation", "OutputID", "MetaIndices"], [s: "1", "6810", "[i: 47, 40, 44]"], bDisplayDialogs); // Meta Plan entity ekPlan4 = CreatePlan(5158, [s: "SourcePlan"], [e: ekPlan1], [s: "MetaOperation", "OutputID", "MetaIndices"], [s: "1", "6810", "[i: 42]"], bDisplayDialogs); // Meta Plan entity ekPlan5 = CreatePlan(5158, [s: "SourcePlan"], [e: ekPlan1], [s: "MetaOperation", "OutputID", "MetaIndices"], [s: "2", "6810", "[i: 42]"], bDisplayDialogs); // Meta Plan entity ekPlan6 = CreatePlan(5158, [s: "SourcePlan"], [e: ekPlan1], [s: "MetaOperation", "OutputID", "MetaIndices"], [s: "1", "6810", "[i: 43]"], bDisplayDialogs); // Meta Plan entity ekPlan7 = CreatePlan(5158, [s: "SourcePlan"], [e: ekPlan1], [s: "MetaOperation", "OutputID", "MetaIndices"], [s: "2", "6810", "[i: 43]"], bDisplayDialogs); // Raster Passes Plan entity ekPlan13 = CreatePlan(5124, [s: "ConstraintBoundaries", "Surfaces", "ProtectedSelectedSurfaces"], [e: ekBoundary4, ekPlan1, ekPlan4], [s: "ToolCornerRadius", "MachStepover", "ToolHolderDefinition", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolName", "ToolCuttingFeedrate", "CutterName", "ToolHolderName", "DatabasesForHolder", "DatabaseIDsForHolder", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius"], [s: "6", "0.3", "[r: 11.5, 0, 20, 50, 20, 60, 40, 60, 40, 65]", "0", "14", "1", "12", "13", "3713", "0", "3", "\"MM12 BN [MM12-12012-B90-MD05 F30] Minimaster MM12 85 deg shank\"", "0.0601", "\"MM12 BN [MM12-12012-B90-MD05 F30]\"", "\"Minimaster MM12 85 deg shank\"", "[s: \"Premac\"]", "[i: 60]", "[r: 12, 0, 12, 2]", "2", "12", "12", "12", "0.2", "ToolThicknessXY()", "0", "3", "false", "557", "1", "0", "14", "0", "0"], bDisplayDialogs); // Raster Passes Plan entity ekPlan14 = CreatePlan(5124, [s: "ConstraintBoundaries", "Surfaces", "ProtectedSelectedSurfaces"], [e: ekBoundary5, ekPlan1, ekPlan6], [s: "ToolCornerRadius", "MachStepover", "ToolHolderDefinition", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolName", "ToolCuttingFeedrate", "CutterName", "ToolHolderName", "DatabasesForHolder", "DatabaseIDsForHolder", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "PassesExtensionStyle", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius"], [s: "6", "0.3", "[r: 11.5, 0, 20, 50, 20, 60, 40, 60, 40, 65]", "0", "14", "1", "12", "13", "3713", "0", "3", "\"MM12 BN [MM12-12012-B90-MD05 F30] Minimaster MM12 85 deg shank\"", "0.0601", "\"MM12 BN [MM12-12012-B90-MD05 F30]\"", "\"Minimaster MM12 85 deg shank\"", "[s: \"Premac\"]", "[i: 60]", "[r: 12, 0, 12, 2]", "2", "12", "12", "12", "0.2", "ToolThicknessXY()", "0", "3", "false", "557", "1", "0", "1", "14", "0", "0"], bDisplayDialogs); // Raster Linker Plan entity ekPlan15 = CreatePlan(5163, [s: "MachiningPasses"], [e: ekPlan13], [s: "LinkDirectionStyle"], [s: "0"], bDisplayDialogs); // Raster Linker Plan entity ekPlan16 = CreatePlan(5163, [s: "MachiningPasses"], [e: ekPlan14], [s: "LinkReverseDirection", "LinkReverseOrder", "LinkDirectionStyle", "SurfaceRampStyle"], [s: "true", "true", "0", "0"], bDisplayDialogs); // Waterline Passes Plan entity ekPlan17 = CreatePlan(5174, [s: "ConstraintBoundaries", "Surfaces", "ProtectedSelectedSurfaces"], [e: ekBoundary2, ekPlan1, ekPlan2], [s: "ToolCornerRadius", "PosZLo", "Stepdown", "ToolHolderDefinition", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolCuttingFeedrate", "CutterName", "DatabaseForTool", "DatabaseIDForTool", "DatabasesForHolder", "DatabaseIDsForHolder", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolLibraryCatalogue", "ToolLibraryToolTipID", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius", "ConstraintBoundariesSource"], [s: "0.8", "-53", "1.5", "[r: ]", "0", "70", "1", "10", "14", "1909", "0", "2", "0.12", "\"25 Seco\"", "\"Premac\"", "103", "[s: \"\"]", "[i: -1]", "[r: 25, 0, 25, 60]", "3", "\"Premac\"", "19", "25", "25", "25", "0.2667", "ToolThicknessXY()", "0", "5", "false", "515", "0", "0", "70", "0", "0", "2"], bDisplayDialogs); // Waterline Passes Plan entity ekPlan18 = CreatePlan(5174, [s: "ConstraintBoundaries", "Surfaces", "ProtectedSelectedSurfaces"], [e: ekBoundary3, ekPlan1, ekPlan3], [s: "ToolCornerRadius", "PosZLo", "Stepdown", "ToolHolderDefinition", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolCuttingFeedrate", "CutterName", "DatabaseForTool", "DatabaseIDForTool", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolLibraryCatalogue", "ToolLibraryToolTipID", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius", "ConstraintBoundariesSource"], [s: "0.8", "-53", "1.5", "[r: ]", "0", "70", "1", "10", "14", "1909", "0", "2", "0.12", "\"25 Seco\"", "\"Premac\"", "103", "[r: 25, 0, 25, 60]", "3", "\"Premac\"", "19", "25", "25", "25", "0.2667", "ToolThicknessXY()", "0", "5", "false", "515", "0", "0", "70", "0", "0", "2"], bDisplayDialogs); // Waterline Linking Plan entity ekPlan19 = CreatePlan(5148, [s: "MachiningPasses"], [e: ekPlan17], [s: "HorizontalLeadInRadius"], [s: "6"], bDisplayDialogs); // Waterline Linking Plan entity ekPlan20 = CreatePlan(5148, [s: "MachiningPasses"], [e: ekPlan18], [s: "HorizontalLeadInRadius"], [s: "6"], bDisplayDialogs); // Core Roughing Passes Plan entity ekPlan21 = CreatePlan(5216, [s: "ConstraintBoundaries", "Surfaces"], [e: ekBoundary1, ekPlan1], [s: "ToolCornerRadius", "PosZLo", "ToolHolderDefinition", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolName", "ToolCuttingFeedrate", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius"], [s: "1.5", "-15", "[r: ]", "0", "110", "1", "1.5", "14", "1492", "0", "2", "\"High Feed 32 [32x1.5 120, 0]\"", "0.4", "[r: 32, 0, 32, 108.5]", "3", "32", "32", "32", "0.3", "ToolThicknessXY()", "0.5", "24", "false", "1343", "0", "0", "110", "0", "0"], bDisplayDialogs); // Core Roughing Linking Plan entity ekPlan22 = CreatePlan(5217, [s: "MachiningPasses"], [e: ekPlan21], [s: ], [s: ], bDisplayDialogs); // Collection of plans entity ekCollection23 = CreateCollectionEx([e: ekPlan22], 5109); // Plan of Plans Plan entity ekPlan24 = CreatePlan(5175, [s: "CollectionOfPlansIn"], [e: ekCollection23], [s: ], [s: ], bDisplayDialogs); // 2D Stock Model Plan entity ekPlan26 = CreatePlan(5211, [s: "ConstraintBoundaries", "MachiningPassesIn"], [e: ekBoundary6, ekPlan24], [s: "Tolerance"], [s: "0.02"], bDisplayDialogs); // Area Clearance Passes Plan entity ekPlan27 = CreatePlan(5173, [s: "ConstraintBoundaries", "Surfaces", "ProtectedSurfaces"], [e: ekBoundary6, ekPlan1, ekPlan26], [s: "ToolCornerRadius", "PosZLo", "PosZHi", "ToolHolderDefinition", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolName", "ToolCuttingFeedrate", "CutterName", "ToolHolderName", "DatabasesForHolder", "DatabaseIDsForHolder", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius"], [s: "6", "-21", "0", "[r: 11.5, 0, 20, 50, 20, 60, 40, 60, 40, 65]", "0", "14", "1", "12", "13", "3713", "0", "3", "\"MM12 BN [MM12-12012-B90-MD05 F30] Minimaster MM12 85 deg shank\"", "0.0601", "\"MM12 BN [MM12-12012-B90-MD05 F30]\"", "\"Minimaster MM12 85 deg shank\"", "[s: \"Premac\"]", "[i: 60]", "[r: 12, 0, 12, 2]", "2", "12", "12", "12", "0.2", "ToolThicknessXY()", "0.2", "3", "false", "557", "1", "0", "14", "0", "0"], bDisplayDialogs); // Area Clearance Linking Plan entity ekPlan28 = CreatePlan(5149, [s: "MachiningPasses"], [e: ekPlan27], [s: ], [s: ], bDisplayDialogs); // Collection of plans entity ekCollection29 = CreateCollectionEx([e: ekPlan28, ekPlan15, ekPlan16], 5109); // Plan of Plans Plan entity ekPlan30 = CreatePlan(5175, [s: "CollectionOfPlansIn"], [e: ekCollection29], [s: ], [s: ], bDisplayDialogs); // Stock Model Plan entity ekPlan32 = CreatePlan(5141, [s: "ConstraintBoundaries", "MachiningPassesIn"], [e: ekBoundary7, ekPlan30], [s: "Tolerance"], [s: "0.02"], bDisplayDialogs); // Area Clearance Passes Plan entity ekPlan33 = CreatePlan(5173, [s: "ConstraintBoundaries", "Surfaces", "ProtectedSurfaces"], [e: ekBoundary7, ekPlan1, ekPlan32], [s: "ToolCornerRadius", "PosZHi", "Stepdown", "ToolHolderDefinition", "OverThickness", "ToolTaperAngle", "ToolBodyLength", "ToolHolderThickness", "ToolFluteLength", "ToolToolNumber", "ToolSpindleSpeed", "ToolCoolant", "ToolToolType", "ToolCuttingFeedrate", "CutterName", "ToolHolderName", "DatabasesForHolder", "DatabaseIDsForHolder", "ToolBodyDefinition", "ToolNumberOfTeeth", "ToolShankDiameter", "ToolCutterDiameter", "FluteDiameter", "ToolStepDown", "ToolThicknessZ", "ToolThicknessXY", "ToolStepOver", "ToolBottomCutting", "ToolRampDown", "ToolShankThickness", "AdvancedTool", "ToolOverallLength", "ToolUpperDiameter", "ToolProfileRadius"], [s: "0.75", "0", "0.1", "[r: 0, 0, 38, 0, 43, 2, 43, 40]", "-0.1", "0", "30", "1", "0.75", "2", "15000", "0", "2", "0.04", "\"High Feed 3 [3x0.75] 182ML030R075Z4-MEGA-64\"", "\"41 SD Collet\"", "[s: \"Premac\"]", "[i: 122]", "[r: 3, 0, 2.7, 1.25, 2.7, 11.25, 6, 17.25, 6, 29.25]", "4", "6", "3", "3", "0.2", "ToolThicknessXY()", "0.2", "0.6", "false", "500", "0", "0", "60", "0", "0"], bDisplayDialogs); // Area Clearance Linking Plan entity ekPlan34 = CreatePlan(5149, [s: "MachiningPasses"], [e: ekPlan33], [s: "MinProfileDiameter"], [s: "0"], bDisplayDialogs); return [e: ekPlan22, ekPlan19, ekPlan20, ekPlan28, ekPlan15, ekPlan16, ekPlan34]; }