├── fusion360
├── images
│ ├── F360_PP.png
│ ├── spindle_properties.png
│ └── F360_PP_PROPERTY_TABLE.png
├── README.md
├── LICENSE
└── buildbotics_jet.cps
├── SolidWorks
├── SW_BUILDBOTICS_POST.ctl
├── .~lock.Setting up SolidWorks CAM.docx#
├── Setting up SolidWorks CAM.docx
├── PostProcessorInfoDoc.txt
├── SW_BUILDBOTICS_POST.lng
├── SW_BUILDBOTICS_POST.LIB
├── SW_BUILDBOTICS_POST.LIB.txt
└── SW_BUILDBOTICS_POST.SRC
├── BobCAD
├── Buildbotics_OEM_3x_Mill
│ ├── TableReflection.bmp
│ └── Buildbotics_OEM_3x_Mill.xml
├── README.md
└── Buildbotics_OEM_3x_Mill.BCPst
├── vetric
├── README.md
├── Buildbotics_no_jet_inch.pp
├── Buildbotics_no_jet_mm.pp
├── Buildbotics_inch.pp
└── Buildbotics_mm.pp
├── qcad
├── README.md
├── BuildBoticsNoToolChangerIN.js
├── BuildBoticsNoToolChangerMM.js
├── BuildBoticsMM.js
├── BuildBoticsIN.js
└── BuildBoticsNewIN.js
└── Carveco
├── Buildbotics_Metric.con
└── Buildbotics_Inch.con
/fusion360/images/F360_PP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buildbotics/bbctrl-posts/HEAD/fusion360/images/F360_PP.png
--------------------------------------------------------------------------------
/SolidWorks/SW_BUILDBOTICS_POST.ctl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buildbotics/bbctrl-posts/HEAD/SolidWorks/SW_BUILDBOTICS_POST.ctl
--------------------------------------------------------------------------------
/SolidWorks/.~lock.Setting up SolidWorks CAM.docx#:
--------------------------------------------------------------------------------
1 | ,doug,DougDebian.doug.net,27.10.2022 18:48,file:///home/doug/.config/libreoffice/4;
--------------------------------------------------------------------------------
/fusion360/images/spindle_properties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buildbotics/bbctrl-posts/HEAD/fusion360/images/spindle_properties.png
--------------------------------------------------------------------------------
/SolidWorks/Setting up SolidWorks CAM.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buildbotics/bbctrl-posts/HEAD/SolidWorks/Setting up SolidWorks CAM.docx
--------------------------------------------------------------------------------
/fusion360/images/F360_PP_PROPERTY_TABLE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buildbotics/bbctrl-posts/HEAD/fusion360/images/F360_PP_PROPERTY_TABLE.png
--------------------------------------------------------------------------------
/BobCAD/Buildbotics_OEM_3x_Mill/TableReflection.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buildbotics/bbctrl-posts/HEAD/BobCAD/Buildbotics_OEM_3x_Mill/TableReflection.bmp
--------------------------------------------------------------------------------
/vetric/README.md:
--------------------------------------------------------------------------------
1 | Use this post processor when using Vectric CAD/CAM products. It will be included in future versions of Vectric products. For older versions you can access it by saving it at "File > Open Application Data Folder > My_PostP"
2 | (from the main menu bar of the application)
3 |
4 | # buildbotics_inch.pp
5 | Use this file for Imperial units on late versions of Vectric software
6 | # buildbotics_mm.pp
7 | Use this file for Metric units on late versions of Vectric software
8 | # buildbotics_no_jet_inch.pp
9 | Use this file for Imperial units on older versions of Vectric software. This version has laser jet control removed.
10 | # buildbotics_no_jet_mm.pp
11 | Use this file for Metric units on older versions of Vectric software. This version has laser jet control removed.
12 |
--------------------------------------------------------------------------------
/qcad/README.md:
--------------------------------------------------------------------------------
1 | # BuildBotics Post Processors
2 |
3 | These are post processors for QCAD/CAM that create gcode for the BuildBotics controller.
4 |
5 | There are 4 files:
6 | * BuildBoticsIN.js -- This creates gcode for imperial measurements and assumes the presence of a tool changer.
7 | * BuildBoticsMM.js -- This creates gcode for metric measurements and assumes the presence of a tool changer.
8 | * BuildBoticsNoToolChangerIN.js -- This creates gcode for imperial measurements and assumes there is no tool changer.
9 | * BuildBoticsNoToolChangerMM.js -- This creates gcode for metric measurements and assumes there is no tool changer.
10 |
11 | These files are provided with no restrictions, warranty, or support. If you break something or hurt yourself, you are the only one responsible for it.
12 |
13 | The BuildBotics web site:
14 | https://buildbotics.com/
15 |
16 | The QCAD/CAM web site:
17 | https://www.ribbonsoft.com/en/
18 |
--------------------------------------------------------------------------------
/BobCAD/README.md:
--------------------------------------------------------------------------------
1 | Thanks to Mohammad Hejazi at BobCAD or providing this post processor and these instructions.
2 |
3 | BobCAD requires the machine definition file and the post-processor file together in order to output the correct code.
4 |
5 | ## There are two ways to install post-processor and machine definition.
6 |
7 | ### Manual installation
8 | 1. Make sure BobCAD-CAM is closed
9 | 2. Move the Post Processor file "Buildbotics_OEM_3x_Mill.BCPst" into the default Post Processor folder location for desired BobCAD version. For example, if you are installing the post-processor for BobCAD-CAM V33, the default Post Processor folder location is: C:\BobCAD-CAM Data\BobCAD-CAM V33\Posts\Mill
10 | 3. Move the machine definition folder "Buildbotics_OEM_3x_Mill" into the default MachSim folder location for desired BobCAD version. For example, if you are installing the machine definition for BobCAD-CAM V33, the default MachSim folder location is: C:\BobCAD-CAM Data\BobCAD-CAM V33\MachSim
11 | 4. Once these files are transferred into the respective folders, open BobCAD to test the Post Processor output and update the machining results to ensure the functionality of the Post.
12 |
13 | ### Using Installer file
14 | 1. Download the installer from [here](https://bobcad.awsapps.com/workdocs/index.html#/share/document/0f89403d950a66a2327d16fce693785055212dea7af6431e4baf208641d769a1).
15 | 2. Close BobCAD if it's open
16 | 3. Run the installer
17 | 4. Select the desired BobCAD version
18 | 5. Complete the installation process
19 |
--------------------------------------------------------------------------------
/qcad/BuildBoticsNoToolChangerIN.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This file generated by Chuck Tilbury Sept. 2019
3 | *
4 | * This is a postprocessor for the Masso controller.
5 | */
6 | include("GCodeBase.js");
7 |
8 | function BuildBoticsNoToolChangerIN(cadDocumentInterface, camDocumentInterface) {
9 | GCodeBase.call(this, cadDocumentInterface, camDocumentInterface);
10 |
11 | this.decimals = 4;
12 | this.unit = RS.Inch;
13 | this.outputOffsetPath = true;
14 | this.fileExtensions = ["nc"]
15 | this.lineNumber = 1000;
16 | this.lineNumberIncrement = 10;
17 |
18 |
19 | this.header = [
20 | "(Program name: [PROGRAM_NAME])",
21 | "(Imperial measure)",
22 | "(File: [FILENAME] -- [DATETIME])",
23 | "",
24 | "[N] G20 G17 G90 G80"
25 | ];
26 |
27 | this.footer = [
28 | "[N] M05", // stop the spindle
29 | "[N] G0 X0 Y0", // reset to start location
30 | "[N] M30", // rewind the program
31 | "(end program)",
32 | ""
33 | ];
34 |
35 | this.toolpathHeader = [
36 | "",
37 | "(Begin Tool Path [TOOLPATH_INDEX]: [TOOLPATH_NAME])"
38 | ];
39 |
40 | this.toolpathFooter = [
41 | "(End Tool Path [TOOLPATH_INDEX]: [TOOLPATH_NAME])",
42 | ""
43 | ];
44 |
45 | }
46 |
47 | // Configuration is derived from GCodeBase:
48 | BuildBoticsNoToolChangerIN.prototype = new GCodeBase();
49 |
50 | // Display name shown in user interface:
51 | BuildBoticsNoToolChangerIN.displayName = "BuildBoticsNoToolChanger[in]";
52 |
53 |
--------------------------------------------------------------------------------
/qcad/BuildBoticsNoToolChangerMM.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This file generated by Chuck Tilbury Sept. 2019
3 | *
4 | * This is a postprocessor for the Masso controller.
5 | */
6 | include("GCodeBase.js");
7 |
8 | function BuildBoticsNoToolChangerMM(cadDocumentInterface, camDocumentInterface) {
9 | GCodeBase.call(this, cadDocumentInterface, camDocumentInterface);
10 |
11 | this.decimals = 4;
12 | this.unit = RS.Millimeter;
13 | this.outputOffsetPath = true;
14 | this.fileExtensions = ["nc"]
15 | this.lineNumber = 1000;
16 | this.lineNumberIncrement = 10;
17 |
18 |
19 | this.header = [
20 | "(Program name: [PROGRAM_NAME])",
21 | "(Metric measure)",
22 | "(File: [FILENAME] -- [DATETIME])",
23 | "",
24 | "[N] G21 G17 G90 G80"
25 | ];
26 |
27 | this.footer = [
28 | "[N] M05", // stop the spindle
29 | "[N] G0 X0 Y0", // reset to start location
30 | "[N] M30", // rewind the program
31 | "(end program)",
32 | ""
33 | ];
34 |
35 | this.toolpathHeader = [
36 | "",
37 | "(Begin Tool Path [TOOLPATH_INDEX]: [TOOLPATH_NAME])"
38 | ];
39 |
40 | this.toolpathFooter = [
41 | "(End Tool Path [TOOLPATH_INDEX]: [TOOLPATH_NAME])",
42 | ""
43 | ];
44 |
45 | }
46 |
47 | // Configuration is derived from GCodeBase:
48 | BuildBoticsNoToolChangerMM.prototype = new GCodeBase();
49 |
50 | // Display name shown in user interface:
51 | BuildBoticsNoToolChangerMM.displayName = "BuildBoticsNoToolChanger[mm]";
52 |
53 |
--------------------------------------------------------------------------------
/Carveco/Buildbotics_Metric.con:
--------------------------------------------------------------------------------
1 | ; Buildbotics PostP file
2 | ;
3 | ; === ======== ========================================
4 | ;LA 16/03/21 created for Buildbotics
5 | ;
6 | ;
7 | DESCRIPTION = "Buildbotics (mm) (*.ngc)"
8 | ;
9 | FILE_EXTENSION = "ngc"
10 | ;
11 | UNITS = MM
12 | ;
13 | ; Cariage return - line feed at end of each line
14 | ;
15 | END_OF_LINE = "[13][10]"
16 | ;
17 | ; Spindle Speed
18 | FORMAT = [S|@|S|1.0]
19 | ; Feed Rate
20 | FORMAT = [F|#|F|1.1]
21 | ; Tool moves in x,y and z
22 | FORMAT = [X|#|X|1.3]
23 | FORMAT = [Y|#|Y|1.3]
24 | FORMAT = [Z|#|Z|1.3]
25 | ; Arc Center Coords
26 | FORMAT = [I|@|I|1.3]
27 | FORMAT = [J|@|J|1.3]
28 | ; Home tool positions
29 | FORMAT = [XH|@|X|1.3]
30 | FORMAT = [YH|@|Y|1.3]
31 | FORMAT = [ZH|@|Z|1.3]
32 | ;
33 | ;
34 | ; Set up program header
35 | ;
36 | START = "%"
37 | START = "T[T] (MSG, Insert Tool [T])"
38 | START = "G0 G17 G21 G90 G40 G49 G64"
39 | START = "G0 [ZH]"
40 | START = "G0 [XH] [YH] M03 [S]"
41 | START = "M0(MSG, Click 'Continue' when the spindle is up to speed)"
42 | ;
43 | ; Program moves
44 | ;
45 | FIRST_RAPID_RATE_MOVE = "G0 [X] [Y] [Z]"
46 | ;
47 | FIRST_FEED_RATE_MOVE = "G1 [X] [Y] [Z] [F]"
48 | FEED_RATE_MOVE = "[X] [Y] [Z]"
49 | ;
50 | FIRST_CW_ARC_MOVE = "G2 [X] [Y] [I] [J] [F]"
51 | CW_ARC_MOVE = "G2 [X] [Y] [I] [J]"
52 | ;
53 | FIRST_CCW_ARC_MOVE = "G3 [X] [Y] [I] [J] [F]"
54 | CCW_ARC_MOVE = "G3 [X] [Y] [I] [J]"
55 | ;
56 | NEW_SEGMENT_POST_TOOLCHANGE= "G0 [Z] M03 [S]"
57 | NEW_SEGMENT_POST_TOOLCHANGE= "M0(MSG, Click 'Continue' when the spindle is up to speed)"
58 | ;
59 | ;Setup Toolchange Commands
60 | ;
61 | TOOLCHANGE = "G0 [ZH]"
62 | TOOLCHANGE = "G0 [XH] [YH]"
63 | TOOLCHANGE = "M05"
64 | TOOLCHANGE = "M06 T[T]"
65 | ;
66 | ; End of file
67 | ;
68 | END = "M05"
69 | END = "G0 [ZH]"
70 | END = "G0 [XH] [YH]"
71 | END = "M02"
72 |
--------------------------------------------------------------------------------
/Carveco/Buildbotics_Inch.con:
--------------------------------------------------------------------------------
1 | ; Buildbotics PostP file
2 | ;
3 | ; === ======== ========================================
4 | ;LA 16/03/21 created for Buildbotics
5 | ;
6 | ;
7 | DESCRIPTION = "Buildbotics (inch) (*.ngc)"
8 | ;
9 | FILE_EXTENSION = "ngc"
10 | ;
11 | UNITS = INCH
12 | ;
13 | ; Cariage return - line feed at end of each line
14 | ;
15 | END_OF_LINE = "[13][10]"
16 | ;
17 | ; Spindle Speed
18 | FORMAT = [S|@|S|1.0]
19 | ; Feed Rate
20 | FORMAT = [F|#|F|1.1]
21 | ; Tool moves in x,y and z
22 | FORMAT = [X|#|X|1.3]
23 | FORMAT = [Y|#|Y|1.3]
24 | FORMAT = [Z|#|Z|1.3]
25 | ; Arc Center Coords
26 | FORMAT = [I|@|I|1.3]
27 | FORMAT = [J|@|J|1.3]
28 | ; Home tool positions
29 | FORMAT = [XH|@|X|1.3]
30 | FORMAT = [YH|@|Y|1.3]
31 | FORMAT = [ZH|@|Z|1.3]
32 | ;
33 | ;
34 | ; Set up program header
35 | ;
36 | START = "%"
37 | START = "T[T] (MSG, Insert Tool [T])"
38 | START = "G0 G17 G20 G90 G40 G49 G64"
39 | START = "G0 [ZH]"
40 | START = "G0 [XH] [YH] M03 [S]"
41 | START = "M0(MSG, Click 'Continue' when the spindle is up to speed)"
42 | ;
43 | ; Program moves
44 | ;
45 | FIRST_RAPID_RATE_MOVE = "G0 [X] [Y] [Z]"
46 | ;
47 | FIRST_FEED_RATE_MOVE = "G1 [X] [Y] [Z] [F]"
48 | FEED_RATE_MOVE = "[X] [Y] [Z]"
49 | ;
50 | FIRST_CW_ARC_MOVE = "G2 [X] [Y] [I] [J] [F]"
51 | CW_ARC_MOVE = "G2 [X] [Y] [I] [J]"
52 | ;
53 | FIRST_CCW_ARC_MOVE = "G3 [X] [Y] [I] [J] [F]"
54 | CCW_ARC_MOVE = "G3 [X] [Y] [I] [J]"
55 | ;
56 | NEW_SEGMENT_POST_TOOLCHANGE= "G0 [Z] M03 [S]"
57 | NEW_SEGMENT_POST_TOOLCHANGE= "M0(MSG, Click 'Continue' when the spindle is up to speed)"
58 | ;
59 | ;Setup Toolchange Commands
60 | ;
61 | TOOLCHANGE = "G0 [ZH]"
62 | TOOLCHANGE = "G0 [XH] [YH]"
63 | TOOLCHANGE = "M05"
64 | TOOLCHANGE = "M06 T[T]"
65 | ;
66 | ; End of file
67 | ;
68 | END = "M05"
69 | END = "G0 [ZH]"
70 | END = "G0 [XH] [YH]"
71 | END = "M02"
72 |
--------------------------------------------------------------------------------
/SolidWorks/PostProcessorInfoDoc.txt:
--------------------------------------------------------------------------------
1 | Order of operations for editing Post Processors for SolidWorks
2 |
3 | 1. Open the .scr source file that you want to work on in Ec Edit
4 | 2. Check the LIBRARY paths are correct, the first should point at the local .lib file, the second at the general .lib file usually located in C:\CAMWorksData\UPG\MasterLibraryFiles\MILL.LIB
5 | 3. Open the local.lib file in Ec Edit
6 | 4. once you are done with your editing, save the file in Ec Edit.
7 | 5. Open up UPG and open the source file that you had open in Ec Edit. It is best to have the source file saved on the local machine and not a network drive.
8 | 6. When the source file is open, click 'File' -> 'Compile Source' and then compile
9 | 7. The .ctl file and .lib file will now be updated with the new changes. It is much safer to compile and edit the files on the local machine, then copy them to a directory where Solidworks reads
10 | the ctl files from. For example, I compile the ctl and lib files to C:\CAMWorksData\UPG\ctl, and then manually copy them to C:\ProgramData\SOLIDWORKS\SOLIDWORKS CAM 2019\Posts, which is the
11 | default SolidWorks post directory. If there is already a file in that directory with the same name because you are updating a file that you have used in the past, it is fine to overwrite it.
12 | 8. Open SolidWorks and in the CAM section, click on 'Define Machine'. Inside there, go to the 'Post Processor' tab and click on 'Browse', it should default to the normal directory which is the
13 | same location that you just copied your ctl file to.
14 | 9. Inside there select your updated ctl file (check the timestamp to be sure that you are selecting the new version). It should then add the updated file to the available post processor list.
15 | 10. Click the 'Select' button a few times to ensure it has selected it, and you should see the Active Post Processor file field update with the new file name. If you ever start getting errors in
16 | the post processor generation, it is wise to come back and check that the correct post processor is selsected, it likes to default back to a random one. It is also wise to always click the
17 | Select' button several times to ensure it accept the new post processor.
18 | 11. Now you have your updated post processor accepted into SolidWorks. Go ahead and do all your normal process for creating a post process file, ensureing to save it in a .ns file format.
--------------------------------------------------------------------------------
/fusion360/README.md:
--------------------------------------------------------------------------------
1 | # buildbotics-fusion360-post
2 | Post processor for fusion 360
3 |
4 | Just select 'builbotics.cps' as your post processor from within Fusion 360.
5 |
6 |
7 |
8 | A few new feature were added to the property table in the Fusion 360 post processor dialog.
9 |
10 |
11 |
12 | The "Optional Stop" option was added because the Buildbotics Controller currently ignores
13 | the 'M1' command. This was made optional because 'M1' will be supported in a future release.
14 |
15 | The default value for "Enable tool length compensation" was set to "No" because the Buildbotics
16 | Controller does not current support this capability. It is planned for a future release.
17 |
18 | "Write Simulation Data" was added because this post processor will automatically generate
19 | simulation commands that are compatible with the CutViewer CNC simulator. Setting this to "Yes"
20 | puts this simulation in the comments in the g-code file.
21 |
22 | "Set Z-axis retract height" feature was added to avoid confusion about retract height.
23 |
24 | "Disable coolant control" feature was added so users that want to use the Load1 or Load2 outputs for something other than coolant control, or to just manually control coolant can prevent F360 from generating coolant control commands in the GCode. The default value for this field is "No", meaning that coolant control is not disabled. Set this field to "Yes" to turn off coolant control commands in F360.
25 |
26 | The following two spindle control properties were added by Vincet Schmidt. Thanks Vincent!
27 |
28 |
29 |
30 | > "Spindle Delay" was added to insert a delay, specified in seconds, after the spindle start command has been issued (M3). This is useful if you experience issues with your spindle not reaching the desired speed quickly enough before engaging with the material.
31 |
32 | > "Spindle Confirmation" feature was added to insert a pause with a prompt (M0) after the spindle start command (M3). This lets users manually confirm if the spindle is running correctly before continuing with their program.
33 |
34 | Modified the writeRetact program to simply make a rapid move (G0) to the retract height specified by the "Set Z-Axis retract height value".
35 |
36 | ## Probing support added on 10/10/19
37 | The following types of probing are now supported:
38 | * probing-xy-outer-corner
39 | * probing-x
40 | * probing-y
41 | * probing-z
42 |
--------------------------------------------------------------------------------
/qcad/BuildBoticsMM.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This file generated by Chuck Tilbury Sept. 2019
3 | *
4 | * This is a postprocessor for the Masso controller.
5 | */
6 | include("GCodeBase.js");
7 |
8 | function BuildBoticsMM(cadDocumentInterface, camDocumentInterface) {
9 | GCodeBase.call(this, cadDocumentInterface, camDocumentInterface);
10 |
11 | this.decimals = 4;
12 | this.unit = RS.Millimeter;
13 | this.outputOffsetPath = true;
14 | this.fileExtensions = ["nc"]
15 | this.lineNumber = 1000;
16 | this.lineNumberIncrement = 10;
17 |
18 |
19 | this.header = [
20 | "(Program name: [PROGRAM_NAME])",
21 | "(Metric measure)",
22 | "(File: [FILENAME] -- [DATETIME])",
23 | "",
24 | "[N] G21 G17 G90 G80"
25 | ];
26 |
27 | this.footer = [
28 | "[N] M05", // stop the spindle
29 | "[N] G0 X0 Y0", // reset to start location
30 | "[N] M30", // rewind the program
31 | "(end program)",
32 | ""
33 | ];
34 |
35 | this.toolpathHeader = [
36 | "",
37 | "(Begin Tool Path [TOOLPATH_INDEX]: [TOOLPATH_NAME])"
38 | ];
39 |
40 | this.toolpathFooter = [
41 | "(End Tool Path [TOOLPATH_INDEX]: [TOOLPATH_NAME])",
42 | ""
43 | ];
44 |
45 | }
46 |
47 | // Configuration is derived from GCodeBase:
48 | BuildBoticsMM.prototype = new GCodeBase();
49 |
50 | // Display name shown in user interface:
51 | BuildBoticsMM.displayName = "BuildBotics[mm]";
52 |
53 | /**
54 | * Write tool list in header.
55 | */
56 | BuildBoticsMM.prototype.writeHeader = function() {
57 | this.writeBlock("header");
58 |
59 | // backup member variables:
60 | var tool = this.tool;
61 | var toolDiameter = this.toolDiameter;
62 | var toolRadius = this.toolRadius;
63 |
64 | // write list of tools with tool radius
65 | var toolNames = Cam.getToolNames(this.cadDocument);
66 | toolNames.sort(Array.alphaNumericalSorter);
67 | //toolNames = RS.sortAlphanumerical(toolNames);
68 | for (var i=0; i
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/vetric/Buildbotics_no_jet_inch.pp:
--------------------------------------------------------------------------------
1 | +================================================
2 | +
3 | + Buildbotics - Vectric machine output configuration file
4 | +
5 | +================================================
6 | +
7 | + History
8 | +
9 | + Who When What
10 | + ======== ========== ===========================
11 | + Doug C. 11/5/19 Copied buildbotics_mm, changed to inches, changed accuracy to 1.4, changed G21 to G20
12 | + ======== ========== ===========================
13 |
14 | POST_NAME = "Buildbotics No Jet (inches) (*.gcode)"
15 |
16 | FILE_EXTENSION = "ngc"
17 |
18 | UNITS = "INCHES"
19 |
20 | +------------------------------------------------
21 | + Line terminating characters
22 | +------------------------------------------------
23 |
24 | LINE_ENDING = "[13][10]"
25 |
26 | +------------------------------------------------
27 | + Block numbering
28 | +------------------------------------------------
29 |
30 | LINE_NUMBER_START = 0
31 | LINE_NUMBER_INCREMENT = 10
32 | LINE_NUMBER_MAXIMUM = 9999999
33 |
34 | +================================================
35 | +
36 | + Formatting for variables
37 | +
38 | +================================================
39 |
40 | VAR LINE_NUMBER = [N|A|N|1.0]
41 | VAR SPINDLE_SPEED = [S|A| S|1.0]
42 | VAR FEED_RATE = [F|C|F|1.1]
43 | VAR X_POSITION = [X|C|X|1.4]
44 | VAR Y_POSITION = [Y|C|Y|1.4]
45 | VAR Z_POSITION = [Z|C|Z|1.4]
46 | VAR ARC_CENTRE_I_INC_POSITION = [I|A|I|1.4]
47 | VAR ARC_CENTRE_J_INC_POSITION = [J|A|J|1.4]
48 | VAR X_HOME_POSITION = [XH|A| X|1.4]
49 | VAR Y_HOME_POSITION = [YH|A| Y|1.4]
50 | VAR Z_HOME_POSITION = [ZH|A| Z|1.4]
51 | VAR SAFE_Z_HEIGHT = [SAFEZ|A| Z|1.4]
52 |
53 | +================================================
54 | +
55 | + Block definitions for toolpath output
56 | +
57 | +================================================
58 |
59 | +---------------------------------------------------
60 | + Commands output at the start of the file
61 | +---------------------------------------------------
62 |
63 | begin HEADER
64 |
65 | "%"
66 | "T[T] M6"
67 | "G0 G17 G20 G90 G40 G49 G64 P0.001"
68 | "G0[ZH]"
69 | "G0[XH][YH] M03[S]"
70 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
71 |
72 | +---------------------------------------------------
73 | + Commands output at toolchange
74 | +---------------------------------------------------
75 |
76 | begin TOOLCHANGE
77 |
78 | "G0[ZH]"
79 | "G0[XH][YH]"
80 | "M05"
81 | "M06 T[T]"
82 |
83 | +---------------------------------------------------
84 | + Commands output for a new segment - toolpath
85 | + with same toolnumber but maybe different feedrates
86 | +---------------------------------------------------
87 |
88 | begin NEW_SEGMENT
89 |
90 | "G0[SAFEZ] M03[S]"
91 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
92 |
93 |
94 |
95 | +---------------------------------------------------
96 | + Commands output for rapid moves
97 | +---------------------------------------------------
98 |
99 | begin RAPID_MOVE
100 |
101 | "G0[X][Y][Z]"
102 |
103 |
104 | +---------------------------------------------------
105 | + Commands output for the first feed rate move
106 | +---------------------------------------------------
107 |
108 | begin FIRST_FEED_MOVE
109 |
110 | "G1[X][Y][Z][F]"
111 |
112 |
113 | +---------------------------------------------------
114 | + Commands output for feed rate moves
115 | +---------------------------------------------------
116 |
117 | begin FEED_MOVE
118 |
119 | "G1[X][Y][Z]"
120 |
121 |
122 | +---------------------------------------------------
123 | + Commands output for the first clockwise arc move
124 | +---------------------------------------------------
125 |
126 | begin FIRST_CW_ARC_MOVE
127 |
128 | "G2[X][Y][I][J][F]"
129 |
130 |
131 | +---------------------------------------------------
132 | + Commands output for clockwise arc move
133 | +---------------------------------------------------
134 |
135 | begin CW_ARC_MOVE
136 |
137 | "G2[X][Y][I][J]"
138 |
139 |
140 | +---------------------------------------------------
141 | + Commands output for the first counterclockwise arc move
142 | +---------------------------------------------------
143 |
144 | begin FIRST_CCW_ARC_MOVE
145 |
146 | "G3[X][Y][I][J][F]"
147 |
148 |
149 | +---------------------------------------------------
150 | + Commands output for counterclockwise arc move
151 | +---------------------------------------------------
152 |
153 | begin CCW_ARC_MOVE
154 |
155 | "G3[X][Y][I][J]"
156 |
157 | +---------------------------------------------------
158 | + Commands output at the end of the file
159 | +---------------------------------------------------
160 |
161 | begin FOOTER
162 |
163 | "M5"
164 | "G0[ZH]"
165 | "G0[XH][YH]"
166 | "M2"
--------------------------------------------------------------------------------
/vetric/Buildbotics_no_jet_mm.pp:
--------------------------------------------------------------------------------
1 | +================================================
2 | +
3 | + Buildbotics - Vectric machine output configuration file
4 | +
5 | +================================================
6 | +
7 | + History
8 | +
9 | + Who When What
10 | + ======== ========== ===========================
11 | + Mark 08/10/2019 Written - first draft from sample.
12 | + Doug C. 11/1/2019 Corrected file extension, adds pause after tool change to allow spindle time to start
13 | + Doug C. 11/5/19 Added support for tool changes, removed SUBSTITUTE statement,increased max line count to 9999999
14 | + ======== ========== ===========================
15 |
16 | POST_NAME = "Buildbotics No Jet (mm) (*.gcode)"
17 |
18 | FILE_EXTENSION = "ngc"
19 |
20 | UNITS = "MM"
21 |
22 | +------------------------------------------------
23 | + Line terminating characters
24 | +------------------------------------------------
25 |
26 | LINE_ENDING = "[13][10]"
27 |
28 | +------------------------------------------------
29 | + Block numbering
30 | +------------------------------------------------
31 |
32 | LINE_NUMBER_START = 0
33 | LINE_NUMBER_INCREMENT = 10
34 | LINE_NUMBER_MAXIMUM = 9999999
35 |
36 | +================================================
37 | +
38 | + Formatting for variables
39 | +
40 | +================================================
41 |
42 | VAR LINE_NUMBER = [N|A|N|1.0]
43 | VAR SPINDLE_SPEED = [S|A| S|1.0]
44 | VAR FEED_RATE = [F|C| F|1.1]
45 | VAR X_POSITION = [X|C| X|1.3]
46 | VAR Y_POSITION = [Y|C| Y|1.3]
47 | VAR Z_POSITION = [Z|C| Z|1.3]
48 | VAR ARC_CENTRE_I_INC_POSITION = [I|A| I|1.3]
49 | VAR ARC_CENTRE_J_INC_POSITION = [J|A| J|1.3]
50 | VAR X_HOME_POSITION = [XH|A| X|1.3]
51 | VAR Y_HOME_POSITION = [YH|A| Y|1.3]
52 | VAR Z_HOME_POSITION = [ZH|A| Z|1.3]
53 | VAR SAFE_Z_HEIGHT = [SAFEZ|A| Z|1.3]
54 |
55 | +================================================
56 | +
57 | + Block definitions for toolpath output
58 | +
59 | +================================================
60 |
61 | +---------------------------------------------------
62 | + Commands output at the start of the file
63 | +---------------------------------------------------
64 |
65 | begin HEADER
66 |
67 | "%"
68 | "T[T] M6"
69 | "G0 G17 G21 G90 G40 G49 G64 P0.001"
70 | "G0[ZH]"
71 | "G0[XH][YH] M03[S]"
72 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
73 |
74 | +---------------------------------------------------
75 | + Commands output at toolchange
76 | +---------------------------------------------------
77 |
78 | begin TOOLCHANGE
79 |
80 | "G0[ZH]"
81 | "G0[XH][YH]"
82 | "M05"
83 | "M06 T[T]"
84 |
85 | +---------------------------------------------------
86 | + Commands output for a new segment - toolpath
87 | + with same toolnumber but maybe different feedrates
88 | +---------------------------------------------------
89 |
90 | begin NEW_SEGMENT
91 |
92 | "G0[SAFEZ] M03[S]"
93 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
94 |
95 |
96 |
97 | +---------------------------------------------------
98 | + Commands output for rapid moves
99 | +---------------------------------------------------
100 |
101 | begin RAPID_MOVE
102 |
103 | "G0[X][Y][Z]"
104 |
105 |
106 | +---------------------------------------------------
107 | + Commands output for the first feed rate move
108 | +---------------------------------------------------
109 |
110 | begin FIRST_FEED_MOVE
111 |
112 | "G1[X][Y][Z][F]"
113 |
114 |
115 | +---------------------------------------------------
116 | + Commands output for feed rate moves
117 | +---------------------------------------------------
118 |
119 | begin FEED_MOVE
120 |
121 | "G1[X][Y][Z]"
122 |
123 |
124 | +---------------------------------------------------
125 | + Commands output for the first clockwise arc move
126 | +---------------------------------------------------
127 |
128 | begin FIRST_CW_ARC_MOVE
129 |
130 | "G2[X][Y][I][J][F]"
131 |
132 |
133 | +---------------------------------------------------
134 | + Commands output for clockwise arc move
135 | +---------------------------------------------------
136 |
137 | begin CW_ARC_MOVE
138 |
139 | "G2[X][Y][I][J]"
140 |
141 |
142 | +---------------------------------------------------
143 | + Commands output for the first counterclockwise arc move
144 | +---------------------------------------------------
145 |
146 | begin FIRST_CCW_ARC_MOVE
147 |
148 | "G3[X][Y][I][J][F]"
149 |
150 |
151 | +---------------------------------------------------
152 | + Commands output for counterclockwise arc move
153 | +---------------------------------------------------
154 |
155 | begin CCW_ARC_MOVE
156 |
157 | "G3[X][Y][I][J]"
158 |
159 |
160 |
161 | +---------------------------------------------------
162 | + Commands output at the end of the file
163 | +---------------------------------------------------
164 |
165 | begin FOOTER
166 |
167 | "M5"
168 | "G0[ZH]"
169 | "G0[XH][YH]"
170 | "M2"
--------------------------------------------------------------------------------
/vetric/Buildbotics_inch.pp:
--------------------------------------------------------------------------------
1 | +================================================
2 | +
3 | + Buildbotics - Vectric machine output configuration file
4 | +
5 | +================================================
6 | +
7 | + History
8 | +
9 | + Who When What
10 | + ======== ========== ===========================
11 | + Doug C. 11/5/19 Copied buildbotics_mm, changed to inches, changed accuracy to 1.4, changed G21 to G20
12 | + ======== ========== ===========================
13 |
14 | POST_NAME = "Buildbotics (inches) (*.gcode)"
15 |
16 | FILE_EXTENSION = "ngc"
17 |
18 | UNITS = "INCHES"
19 |
20 | +------------------------------------------------
21 | + Line terminating characters
22 | +------------------------------------------------
23 |
24 | LINE_ENDING = "[13][10]"
25 |
26 | +------------------------------------------------
27 | + Block numbering
28 | +------------------------------------------------
29 |
30 | LINE_NUMBER_START = 0
31 | LINE_NUMBER_INCREMENT = 10
32 | LINE_NUMBER_MAXIMUM = 9999999
33 |
34 | +================================================
35 | +
36 | + Formatting for variables
37 | +
38 | +================================================
39 |
40 | VAR LINE_NUMBER = [N|A|N|1.0]
41 | VAR POWER = [P|C|S|1.0|10.0]
42 | VAR SPINDLE_SPEED = [S|A| S|1.0]
43 | VAR FEED_RATE = [F|C|F|1.1]
44 | VAR X_POSITION = [X|C|X|1.4]
45 | VAR Y_POSITION = [Y|C|Y|1.4]
46 | VAR Z_POSITION = [Z|C|Z|1.4]
47 | VAR ARC_CENTRE_I_INC_POSITION = [I|A|I|1.4]
48 | VAR ARC_CENTRE_J_INC_POSITION = [J|A|J|1.4]
49 | VAR X_HOME_POSITION = [XH|A| X|1.4]
50 | VAR Y_HOME_POSITION = [YH|A| Y|1.4]
51 | VAR Z_HOME_POSITION = [ZH|A| Z|1.4]
52 | VAR SAFE_Z_HEIGHT = [SAFEZ|A| Z|1.4]
53 |
54 | +================================================
55 | +
56 | + Block definitions for toolpath output
57 | +
58 | +================================================
59 |
60 | +---------------------------------------------------
61 | + Commands output at the start of the file
62 | +---------------------------------------------------
63 |
64 | begin HEADER
65 |
66 | "%"
67 | "T[T] M6"
68 | "G0 G17 G20 G90 G40 G49 G64 P0.001"
69 | "G0[ZH]"
70 | "G0[XH][YH] M03[S]"
71 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
72 |
73 | +---------------------------------------------------
74 | + Commands output at toolchange
75 | +---------------------------------------------------
76 |
77 | begin TOOLCHANGE
78 |
79 | "G0[ZH]"
80 | "G0[XH][YH]"
81 | "M05"
82 | "M06 T[T]"
83 |
84 | +---------------------------------------------------
85 | + Commands output for a new segment - toolpath
86 | + with same toolnumber but maybe different feedrates
87 | +---------------------------------------------------
88 |
89 | begin NEW_SEGMENT
90 |
91 | "G0[SAFEZ] M03[S]"
92 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
93 |
94 |
95 |
96 | +---------------------------------------------------
97 | + Commands output for rapid moves
98 | +---------------------------------------------------
99 |
100 | begin RAPID_MOVE
101 |
102 | "G0[X][Y][Z]"
103 |
104 |
105 | +---------------------------------------------------
106 | + Commands output for the first feed rate move
107 | +---------------------------------------------------
108 |
109 | begin FIRST_FEED_MOVE
110 |
111 | "G1[X][Y][Z][P][F]"
112 |
113 |
114 | +---------------------------------------------------
115 | + Commands output for feed rate moves
116 | +---------------------------------------------------
117 |
118 | begin FEED_MOVE
119 |
120 | "G1[X][Y][Z][P]"
121 |
122 |
123 | +---------------------------------------------------
124 | + Commands output for the first clockwise arc move
125 | +---------------------------------------------------
126 |
127 | begin FIRST_CW_ARC_MOVE
128 |
129 | "G2[X][Y][I][J][F][P]"
130 |
131 |
132 | +---------------------------------------------------
133 | + Commands output for clockwise arc move
134 | +---------------------------------------------------
135 |
136 | begin CW_ARC_MOVE
137 |
138 | "G2[X][Y][I][J]"
139 |
140 |
141 | +---------------------------------------------------
142 | + Commands output for the first counterclockwise arc move
143 | +---------------------------------------------------
144 |
145 | begin FIRST_CCW_ARC_MOVE
146 |
147 | "G3[X][Y][I][J][F][P]"
148 |
149 |
150 | +---------------------------------------------------
151 | + Commands output for counterclockwise arc move
152 | +---------------------------------------------------
153 |
154 | begin CCW_ARC_MOVE
155 |
156 | "G3[X][Y][I][J]"
157 |
158 | +---------------------------------------------------
159 | + Commands output when the jet is turned on
160 | +---------------------------------------------------
161 |
162 | begin JET_TOOL_ON
163 |
164 | "M03S0"
165 |
166 | +---------------------------------------------------
167 | + Commands output when the jet is turned off
168 | +---------------------------------------------------
169 |
170 | begin JET_TOOL_OFF
171 |
172 | "M5"
173 |
174 | +---------------------------------------------------
175 | + Commands output when the jet power is changed
176 | +---------------------------------------------------
177 |
178 | begin JET_TOOL_POWER
179 | "[P]"
180 |
181 | +---------------------------------------------------
182 | + Commands output at the end of the file
183 | +---------------------------------------------------
184 |
185 | begin FOOTER
186 |
187 | "M5"
188 | "G0[ZH]"
189 | "G0[XH][YH]"
190 | "M2"
--------------------------------------------------------------------------------
/vetric/Buildbotics_mm.pp:
--------------------------------------------------------------------------------
1 | +================================================
2 | +
3 | + Buildbotics - Vectric machine output configuration file
4 | +
5 | +================================================
6 | +
7 | + History
8 | +
9 | + Who When What
10 | + ======== ========== ===========================
11 | + Mark 08/10/2019 Written - first draft from sample.
12 | + Doug C. 11/1/2019 Corrected file extension, adds pause after tool change to allow spindle time to start
13 | + Doug C. 11/5/19 Added support for tool changes, removed SUBSTITUTE statement,increased max line count to 9999999
14 | + ======== ========== ===========================
15 |
16 | POST_NAME = "Buildbotics (mm) (*.gcode)"
17 |
18 | FILE_EXTENSION = "ngc"
19 |
20 | UNITS = "MM"
21 |
22 | +------------------------------------------------
23 | + Line terminating characters
24 | +------------------------------------------------
25 |
26 | LINE_ENDING = "[13][10]"
27 |
28 | +------------------------------------------------
29 | + Block numbering
30 | +------------------------------------------------
31 |
32 | LINE_NUMBER_START = 0
33 | LINE_NUMBER_INCREMENT = 10
34 | LINE_NUMBER_MAXIMUM = 9999999
35 |
36 | +================================================
37 | +
38 | + Formatting for variables
39 | +
40 | +================================================
41 |
42 | VAR LINE_NUMBER = [N|A|N|1.0]
43 | VAR POWER = [P|C|S|1.0|10.0]
44 | VAR SPINDLE_SPEED = [S|A| S|1.0]
45 | VAR FEED_RATE = [F|C| F|1.1]
46 | VAR X_POSITION = [X|C| X|1.3]
47 | VAR Y_POSITION = [Y|C| Y|1.3]
48 | VAR Z_POSITION = [Z|C| Z|1.3]
49 | VAR ARC_CENTRE_I_INC_POSITION = [I|A| I|1.3]
50 | VAR ARC_CENTRE_J_INC_POSITION = [J|A| J|1.3]
51 | VAR X_HOME_POSITION = [XH|A| X|1.3]
52 | VAR Y_HOME_POSITION = [YH|A| Y|1.3]
53 | VAR Z_HOME_POSITION = [ZH|A| Z|1.3]
54 | VAR SAFE_Z_HEIGHT = [SAFEZ|A| Z|1.3]
55 |
56 | +================================================
57 | +
58 | + Block definitions for toolpath output
59 | +
60 | +================================================
61 |
62 | +---------------------------------------------------
63 | + Commands output at the start of the file
64 | +---------------------------------------------------
65 |
66 | begin HEADER
67 |
68 | "%"
69 | "T[T] M6"
70 | "G0 G17 G21 G90 G40 G49 G64 P0.001"
71 | "G0[ZH]"
72 | "G0[XH][YH] M03[S]"
73 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
74 |
75 | +---------------------------------------------------
76 | + Commands output at toolchange
77 | +---------------------------------------------------
78 |
79 | begin TOOLCHANGE
80 |
81 | "G0[ZH]"
82 | "G0[XH][YH]"
83 | "M05"
84 | "M06 T[T]"
85 |
86 | +---------------------------------------------------
87 | + Commands output for a new segment - toolpath
88 | + with same toolnumber but maybe different feedrates
89 | +---------------------------------------------------
90 |
91 | begin NEW_SEGMENT
92 |
93 | "G0[SAFEZ] M03[S]"
94 | "M0(MSG, Click 'Continue' when the spindle is up to speed)"
95 |
96 |
97 |
98 | +---------------------------------------------------
99 | + Commands output for rapid moves
100 | +---------------------------------------------------
101 |
102 | begin RAPID_MOVE
103 |
104 | "G0[X][Y][Z]"
105 |
106 |
107 | +---------------------------------------------------
108 | + Commands output for the first feed rate move
109 | +---------------------------------------------------
110 |
111 | begin FIRST_FEED_MOVE
112 |
113 | "G1[X][Y][Z][P][F]"
114 |
115 |
116 | +---------------------------------------------------
117 | + Commands output for feed rate moves
118 | +---------------------------------------------------
119 |
120 | begin FEED_MOVE
121 |
122 | "G1[X][Y][Z][P]"
123 |
124 |
125 | +---------------------------------------------------
126 | + Commands output for the first clockwise arc move
127 | +---------------------------------------------------
128 |
129 | begin FIRST_CW_ARC_MOVE
130 |
131 | "G2[X][Y][I][J][F][P]"
132 |
133 |
134 | +---------------------------------------------------
135 | + Commands output for clockwise arc move
136 | +---------------------------------------------------
137 |
138 | begin CW_ARC_MOVE
139 |
140 | "G2[X][Y][I][J]"
141 |
142 |
143 | +---------------------------------------------------
144 | + Commands output for the first counterclockwise arc move
145 | +---------------------------------------------------
146 |
147 | begin FIRST_CCW_ARC_MOVE
148 |
149 | "G3[X][Y][I][J][F][P]"
150 |
151 |
152 | +---------------------------------------------------
153 | + Commands output for counterclockwise arc move
154 | +---------------------------------------------------
155 |
156 | begin CCW_ARC_MOVE
157 |
158 | "G3[X][Y][I][J]"
159 |
160 | +---------------------------------------------------
161 | + Commands output when the jet is turned on
162 | +---------------------------------------------------
163 |
164 | begin JET_TOOL_ON
165 |
166 | "M03S0"
167 |
168 | +---------------------------------------------------
169 | + Commands output when the jet is turned off
170 | +---------------------------------------------------
171 |
172 | begin JET_TOOL_OFF
173 |
174 | "M5"
175 |
176 | +---------------------------------------------------
177 | + Commands output when the jet power is changed
178 | +---------------------------------------------------
179 |
180 | begin JET_TOOL_POWER
181 | "[P]"
182 |
183 | +---------------------------------------------------
184 | + Commands output at the end of the file
185 | +---------------------------------------------------
186 |
187 | begin FOOTER
188 |
189 | "M5"
190 | "G0[ZH]"
191 | "G0[XH][YH]"
192 | "M2"
--------------------------------------------------------------------------------
/SolidWorks/SW_BUILDBOTICS_POST.lng:
--------------------------------------------------------------------------------
1 | program stop :0001:
2 | optional stop :0002:
3 | DRILLING :0003:
4 | SPOT_DRILLING :0004:
5 | PECKING :0005:
6 | TAPPING :0006:
7 | BORING :0007:
8 | HIGH_SPEED_PECKING :0008:
9 | VARIABLE_PECKING :0009:
10 | REVERSE_TAPPING :0010:
11 | REAMING :0011:
12 | REAMING_DWELL :0012:
13 | BORE_DWELL :0013:
14 | BACK_BORING :0014:
15 | FINE_BORING :0015:
16 | MILL_LACE :0016:
17 | MILL_POCKET :0017:
18 | MILL_PROFILING :0018:
19 | MILL_MISC :0019:
20 | MILL_UV_CUT :0020:
21 | MILL_SLICE_CUT :0021:
22 | MILL_ROUGH_CUT :0022:
23 | MILL_CURVE_CUT :0023:
24 | MILL_TOPO_CUT :0024:
25 | MILL_FREEFORM_CUT :0025:
26 | MILL_PENCIL_CUT :0026:
27 | MILL_MACRO :0027:
28 | Machine Name :0028:
29 | :0029:
30 | Controller Type :0030:
31 | :0031:
32 | Z Home :0032:
33 | :0033:
34 | Traverse Rate :0034:
35 | :0035:
36 | System License Number :0036:
37 | :0037:
38 | System License Expiration :0038:
39 | :0039:
40 | :0040:
41 | :0041:
42 | Part Thickness :0042:
43 | ENTER Part Thickness :0043:
44 | Absolute Incremental :0044:
45 | SELECT Absolute Incremental :0045:
46 | Absolute :0046:
47 | Incremental :0047:
48 | Work Coordinate 54 - 59 :0048:
49 | ENTER Work Coordinate 54 - 59 :0049:
50 | Dwell :0050:
51 | ENTER Dwell :0051:
52 | Shift Amount :0052:
53 | ENTER Shift Amount :0053:
54 | Program number :0054:
55 | ENTER Program number :0055:
56 | Material :0056:
57 | ENTER Material Type :0057:
58 | 5axis Arc Deviation :0058:
59 | ENTER 5axis Arc Deviation :0059:
60 | Sub Work Coordinate 1 - 1 :0060:
61 | ENTER Sub Work Coordinate 1 - 100 :0061:
62 | Fixture Offset :0062:
63 | ENTER Fixture Offset :0063:
64 | Coolant :0064:
65 | SELECT Coolant :0065:
66 | Off :0066:
67 | Flood :0067:
68 | Mist :0068:
69 | Through Hole :0069:
70 | Compensation :0070:
71 | SELECT Compensation :0071:
72 | On :0072:
73 | Off :0073:
74 | Left :0074:
75 | Right :0075:
76 | Tool Holder Length :0076:
77 | ENTER Tool Holder Length :0077:
78 | Sign Angle A :0078:
79 | SELECT Sign Angle A :0079:
80 | A+ :0080:
81 | A- :0081:
82 | Program/Optional Stop :0082:
83 | SELECT Program/Optional Stop :0083:
84 | Program Stop :0084:
85 | Optional Stop :0085:
86 | Rigid Tap On or Off :0086:
87 | SELECT Rigid Tap On or Off :0087:
88 | On :0088:
89 | Off :0089:
90 | |(|MACHINE= :0090:
91 | |) :0091:
92 | |(|CONTROLLER= :0092:
93 | |) :0093:
94 | |(|PART|NAME= :0094:
95 | |) :0095:
96 | |(|PROGRAM|NUMBER= :0096:
97 | |) :0097:
98 | |(|MATERIAL= :0098:
99 | |) :0099:
100 | |(|THICKNESS= :0100:
101 | |) :0101:
102 |
--------------------------------------------------------------------------------
/fusion360/LICENSE:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 |
9 | This version of the GNU Lesser General Public License incorporates
10 | the terms and conditions of version 3 of the GNU General Public
11 | License, supplemented by the additional permissions listed below.
12 |
13 | 0. Additional Definitions.
14 |
15 | As used herein, "this License" refers to version 3 of the GNU Lesser
16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU
17 | General Public License.
18 |
19 | "The Library" refers to a covered work governed by this License,
20 | other than an Application or a Combined Work as defined below.
21 |
22 | An "Application" is any work that makes use of an interface provided
23 | by the Library, but which is not otherwise based on the Library.
24 | Defining a subclass of a class defined by the Library is deemed a mode
25 | of using an interface provided by the Library.
26 |
27 | A "Combined Work" is a work produced by combining or linking an
28 | Application with the Library. The particular version of the Library
29 | with which the Combined Work was made is also called the "Linked
30 | Version".
31 |
32 | The "Minimal Corresponding Source" for a Combined Work means the
33 | Corresponding Source for the Combined Work, excluding any source code
34 | for portions of the Combined Work that, considered in isolation, are
35 | based on the Application, and not on the Linked Version.
36 |
37 | The "Corresponding Application Code" for a Combined Work means the
38 | object code and/or source code for the Application, including any data
39 | and utility programs needed for reproducing the Combined Work from the
40 | Application, but excluding the System Libraries of the Combined Work.
41 |
42 | 1. Exception to Section 3 of the GNU GPL.
43 |
44 | You may convey a covered work under sections 3 and 4 of this License
45 | without being bound by section 3 of the GNU GPL.
46 |
47 | 2. Conveying Modified Versions.
48 |
49 | If you modify a copy of the Library, and, in your modifications, a
50 | facility refers to a function or data to be supplied by an Application
51 | that uses the facility (other than as an argument passed when the
52 | facility is invoked), then you may convey a copy of the modified
53 | version:
54 |
55 | a) under this License, provided that you make a good faith effort to
56 | ensure that, in the event an Application does not supply the
57 | function or data, the facility still operates, and performs
58 | whatever part of its purpose remains meaningful, or
59 |
60 | b) under the GNU GPL, with none of the additional permissions of
61 | this License applicable to that copy.
62 |
63 | 3. Object Code Incorporating Material from Library Header Files.
64 |
65 | The object code form of an Application may incorporate material from
66 | a header file that is part of the Library. You may convey such object
67 | code under terms of your choice, provided that, if the incorporated
68 | material is not limited to numerical parameters, data structure
69 | layouts and accessors, or small macros, inline functions and templates
70 | (ten or fewer lines in length), you do both of the following:
71 |
72 | a) Give prominent notice with each copy of the object code that the
73 | Library is used in it and that the Library and its use are
74 | covered by this License.
75 |
76 | b) Accompany the object code with a copy of the GNU GPL and this license
77 | document.
78 |
79 | 4. Combined Works.
80 |
81 | You may convey a Combined Work under terms of your choice that,
82 | taken together, effectively do not restrict modification of the
83 | portions of the Library contained in the Combined Work and reverse
84 | engineering for debugging such modifications, if you also do each of
85 | the following:
86 |
87 | a) Give prominent notice with each copy of the Combined Work that
88 | the Library is used in it and that the Library and its use are
89 | covered by this License.
90 |
91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license
92 | document.
93 |
94 | c) For a Combined Work that displays copyright notices during
95 | execution, include the copyright notice for the Library among
96 | these notices, as well as a reference directing the user to the
97 | copies of the GNU GPL and this license document.
98 |
99 | d) Do one of the following:
100 |
101 | 0) Convey the Minimal Corresponding Source under the terms of this
102 | License, and the Corresponding Application Code in a form
103 | suitable for, and under terms that permit, the user to
104 | recombine or relink the Application with a modified version of
105 | the Linked Version to produce a modified Combined Work, in the
106 | manner specified by section 6 of the GNU GPL for conveying
107 | Corresponding Source.
108 |
109 | 1) Use a suitable shared library mechanism for linking with the
110 | Library. A suitable mechanism is one that (a) uses at run time
111 | a copy of the Library already present on the user's computer
112 | system, and (b) will operate properly with a modified version
113 | of the Library that is interface-compatible with the Linked
114 | Version.
115 |
116 | e) Provide Installation Information, but only if you would otherwise
117 | be required to provide such information under section 6 of the
118 | GNU GPL, and only to the extent that such information is
119 | necessary to install and execute a modified version of the
120 | Combined Work produced by recombining or relinking the
121 | Application with a modified version of the Linked Version. (If
122 | you use option 4d0, the Installation Information must accompany
123 | the Minimal Corresponding Source and Corresponding Application
124 | Code. If you use option 4d1, you must provide the Installation
125 | Information in the manner specified by section 6 of the GNU GPL
126 | for conveying Corresponding Source.)
127 |
128 | 5. Combined Libraries.
129 |
130 | You may place library facilities that are a work based on the
131 | Library side by side in a single library together with other library
132 | facilities that are not Applications and are not covered by this
133 | License, and convey such a combined library under terms of your
134 | choice, if you do both of the following:
135 |
136 | a) Accompany the combined library with a copy of the same work based
137 | on the Library, uncombined with any other library facilities,
138 | conveyed under the terms of this License.
139 |
140 | b) Give prominent notice with the combined library that part of it
141 | is a work based on the Library, and explaining where to find the
142 | accompanying uncombined form of the same work.
143 |
144 | 6. Revised Versions of the GNU Lesser General Public License.
145 |
146 | The Free Software Foundation may publish revised and/or new versions
147 | of the GNU Lesser General Public License from time to time. Such new
148 | versions will be similar in spirit to the present version, but may
149 | differ in detail to address new problems or concerns.
150 |
151 | Each version is given a distinguishing version number. If the
152 | Library as you received it specifies that a certain numbered version
153 | of the GNU Lesser General Public License "or any later version"
154 | applies to it, you have the option of following the terms and
155 | conditions either of that published version or of any later version
156 | published by the Free Software Foundation. If the Library as you
157 | received it does not specify a version number of the GNU Lesser
158 | General Public License, you may choose any version of the GNU Lesser
159 | General Public License ever published by the Free Software Foundation.
160 |
161 | If the Library as you received it specifies that a proxy can decide
162 | whether future versions of the GNU Lesser General Public License shall
163 | apply, that proxy's public statement of acceptance of any version is
164 | permanent authorization for you to choose that version for the
165 | Library.
166 |
--------------------------------------------------------------------------------
/SolidWorks/SW_BUILDBOTICS_POST.LIB:
--------------------------------------------------------------------------------
1 | *-----------------------------------
2 | :ATTRNAME=TOOL QT COMMENT
3 | :ATTRTYPE=POST
4 | :ATTREMARK=
5 | :CODETYPE=FORMAT
6 | :WORD_ADDRESS_BEF=
7 | :MODAL=FALSE
8 | :ATTREND
9 | *-----------------------------------
10 | :ATTRNAME=SEQ CONFIG
11 | :ATTRTYPE=POST
12 | :ATTRVTYPE=INTEGER
13 | :ATTREMARK=Config. seq. numbers
14 | :ATTREND
15 | *----------------------------------------------------------
16 | * Define OUTPUT CODE Attributes
17 | *----------------------------------------------------------
18 | :ATTRNAME=N
19 | :ATTRTYPE=POST
20 | :ATTRVTYPE=INTEGER
21 | :ATTREMARK=Sequence number
22 | :CODETYPE=SELECT_FORMAT
23 | :ATTRCFUNC=CALC_REG_N(SEQ,MAX_SEQUENCE)
24 | :VAR=SEQ_CONFIG
25 | :SELECT=0
26 | :WORD_ADDRESS_BEF=N
27 | :VARB=SEQ
28 | :LEFT_PLACES=4
29 | :RIGHT_PLACES=0
30 | :CANNOT_BE_LEADING
31 | :MUST_BE_TRAILING
32 | :CANNOT_BE_DECIMAL
33 | :CANNOT_BE_SIGNED
34 | :SELECT=1
35 | :WORD_ADDRESS_BEF=N
36 | :VARB=SEQ
37 | :LEFT_PLACES=4
38 | :RIGHT_PLACES=0
39 | :MUST_BE_LEADING
40 | :MUST_BE_TRAILING
41 | :CANNOT_BE_DECIMAL
42 | :CANNOT_BE_SIGNED
43 | :SELECT=2
44 | :WORD_ADDRESS_BEF=N
45 | :VARB=SEQ
46 | :LEFT_PLACES=3
47 | :RIGHT_PLACES=0
48 | :MUST_BE_LEADING
49 | :MUST_BE_TRAILING
50 | :CANNOT_BE_DECIMAL
51 | :CANNOT_BE_SIGNED
52 | :UNITFLAG=NON_CONVERT
53 | :ATTREND
54 | *-----------------------------------
55 | :ATTRNAME=S
56 | :ATTRTYPE=POST
57 | :ATTRVTYPE=INTEGER
58 | :ATTREMARK=Spindle RPM
59 | :CODETYPE=FORMAT
60 | :ATTRCFUNC=CALC_INT_REGISTER(S,MACH,OPR_SPEED,REG_S)
61 | :WORD_ADDRESS_BEF=|S
62 | :LEFT_PLACES=4
63 | :RIGHT_PLACES=0
64 | :CANNOT_BE_DECIMAL
65 | :MUST_BE_TRAILING
66 | :CANNOT_BE_SIGNED
67 | :UNITFLAG=NON_CONVERT
68 | :MODAL=YES
69 | :ATTREND
70 | *-----------------------------------
71 | :ATTRNAME=T
72 | :ATTRTYPE=POST
73 | :ATTRVTYPE=INTEGER
74 | :ATTREMARK=Tool Number
75 | :CODETYPE=FORMAT
76 | :ATTRCFUNC=CALC_INT_REGISTER(T,MACH,TOOL,REG_T2)
77 | :WORD_ADDRESS_BEF=|T
78 | :RIGHT_PLACES=0
79 | :CANNOT_BE_DECIMAL
80 | :CANNOT_BE_SIGNED
81 | :UNITFLAG=NON_CONVERT
82 | :ATTREND
83 | *-----------------------------------
84 | *----------------------------------------------------------
85 | * Define OUTPUT CODE Attributes (G Codes...)
86 | *----------------------------------------------------------
87 | :ATTRNAME=G
88 | :ATTRTYPE=POST
89 | :ATTRVTYPE=INTEGER
90 | :ATTREMARK=G Codes
91 | :CODETYPE=FORMAT
92 | :ATTRCFUNC=CALC_G_GROUP(G,GC,GG,GM,MACH,G_GROUP,ATTRIVALUE,INDEX)
93 | :CODETYPE=FORMAT
94 | :WORD_ADDRESS_BEF=|G
95 | :RIGHT_PLACES=0
96 | :CANNOT_BE_DECIMAL
97 | :CANNOT_BE_SIGNED
98 | :UNITFLAG=NON_CONVERT
99 | :MODAL=YES
100 | :ATTRUSED=1
101 | :ATTREND
102 | *----------------------------------------------------------
103 | * Define OUTPUT CODE Attributes (M Codes...)
104 | *----------------------------------------------------------
105 | :ATTRNAME=M
106 | :ATTRTYPE=POST
107 | :ATTRVTYPE=INTEGER
108 | :ATTREMARK=M Codes
109 | :CODETYPE=FORMAT
110 | :ATTRCFUNC=CALC_M_GROUP(M,MC,MG,MM,MACH,M_GROUP,ATTRIVALUE,INDEX)
111 | :CODETYPE=FORMAT
112 | :RIGHT_PLACES=0
113 | :WORD_ADDRESS_BEF=|M
114 | :CANNOT_BE_DECIMAL
115 | :CANNOT_BE_SIGNED
116 | :UNITFLAG=NON_CONVERT
117 | :MODAL=YES
118 | :ATTRUSED=1
119 | :ATTREND
120 | *----------------------------------------------------------
121 | * Define OUTPUT CODE Attributes (Movement...)
122 | *----------------------------------------------------------
123 | :ATTRNAME=X
124 | :ATTRTYPE=POST
125 | :ATTRVTYPE=DECIMAL
126 | :ATTREMARK=X End
127 | :CODETYPE=FORMAT
128 | :ATTRCFUNC=CALC_ENDPOINT(X,X_POS,GC,GG,G_GROUP,MACH,PREV,REG_X)
129 | :WORD_ADDRESS_BEF=|X
130 | :MODAL=YES
131 | :ATTREND
132 | *-----------------------------------
133 | :ATTRNAME=Y
134 | :ATTRTYPE=POST
135 | :ATTRVTYPE=DECIMAL
136 | :ATTREMARK=Y End
137 | :CODETYPE=FORMAT
138 | :ATTRCFUNC=CALC_ENDPOINT(Y,Y_POS,GC,GG,G_GROUP,MACH,PREV,REG_Y)
139 | :WORD_ADDRESS_BEF=|Y
140 | :MODAL=YES
141 | :ATTREND
142 | *-----------------------------------
143 | :ATTRNAME=Z
144 | :ATTRTYPE=POST
145 | :ATTRVTYPE=DECIMAL
146 | :ATTREMARK=Z End
147 | :CODETYPE=FORMAT
148 | :ATTRCFUNC=CALC_ENDPOINT(Z,ABS_Z_END,GC,GG,G_GROUP,MACH,PREV,REG_Z)
149 | :WORD_ADDRESS_BEF=|Z
150 | :MODAL=YES
151 | :ATTREND
152 | *-----------------------------------
153 | :ATTRNAME=VI
154 | :ATTRTYPE=POST
155 | :ATTRVTYPE=DECIMAL
156 | :ATTREMARK=I Vector
157 | :CODETYPE=FORMAT
158 | :ATTRCFUNC=CALC_ENDPOINT(VI,VECTOR_I,GC,GG,G_GROUP,MACH,PREV,REG_VI)
159 | :WORD_ADDRESS_BEF=|I
160 | :MODAL=YES
161 | :ATTREND
162 | *-----------------------------------
163 | :ATTRNAME=VJ
164 | :ATTRTYPE=POST
165 | :ATTRVTYPE=DECIMAL
166 | :ATTREMARK=J Vector
167 | :CODETYPE=FORMAT
168 | :ATTRCFUNC=CALC_ENDPOINT(VJ,VECTOR_J,GC,GG,G_GROUP,MACH,PREV,REG_VJ)
169 | :WORD_ADDRESS_BEF=|J
170 | :MODAL=YES
171 | :ATTREND
172 | *-----------------------------------
173 | :ATTRNAME=VK
174 | :ATTRTYPE=POST
175 | :ATTRVTYPE=DECIMAL
176 | :ATTREMARK=K Vector
177 | :CODETYPE=FORMAT
178 | :ATTRCFUNC=CALC_ENDPOINT(VK,VECTOR_K,GC,GG,G_GROUP,MACH,PREV,REG_VK)
179 | :WORD_ADDRESS_BEF=|K
180 | :MODAL=YES
181 | :ATTREND
182 | *-----------------------------------
183 | :ATTRNAME=A
184 | :ATTRTYPE=POST
185 | :ATTRVTYPE=DECIMAL
186 | :ATTREMARK=Angle A
187 | :CODETYPE=FORMAT
188 | :ATTRCFUNC=CALC_ROT_ANGLE_A(A,MACH,INC_ROT_TILT_A,REG_A)
189 | :WORD_ADDRESS_BEF=|A
190 | :WORD_ADDRESS_AFT=|
191 | :MODAL=YES
192 | :UNITFLAG=NON_CONVERT
193 | :ATTREND
194 | *-----------------------------------
195 | :ATTRNAME=B
196 | :ATTRTYPE=POST
197 | :ATTRVTYPE=DECIMAL
198 | :ATTREMARK=Angle B
199 | :CODETYPE=FORMAT
200 | :ATTRCFUNC=CALC_ROT_ANGLE_B(B,MACH,INC_ROT_TILT_B,REG_B)
201 | :WORD_ADDRESS_BEF=|B
202 | :WORD_ADDRESS_AFT=|
203 | :MODAL=YES
204 | :UNITFLAG=NON_CONVERT
205 | :ATTREND
206 | *-----------------------------------
207 | :ATTRNAME=X OFFSET
208 | :ATTRTYPE=POST
209 | :ATTRVTYPE=DECIMAL
210 | :ATTREMARK=X End
211 | :CODETYPE=FORMAT
212 | :ATTRCFUNC=CALC_MACRO_ORIGIN(X_OFFSET,REG_X,X_OFFSET)
213 | :WORD_ADDRESS_BEF=|X
214 | :ATTREND
215 | *-----------------------------------
216 | :ATTRNAME=Y OFFSET
217 | :ATTRTYPE=POST
218 | :ATTRVTYPE=DECIMAL
219 | :ATTREMARK=Y End
220 | :CODETYPE=FORMAT
221 | :ATTRCFUNC=CALC_MACRO_ORIGIN(Y_OFFSET,REG_Y,Y_OFFSET)
222 | :WORD_ADDRESS_BEF=|Y
223 | :ATTREND
224 | *-----------------------------------
225 | :ATTRNAME=Z CLEAR
226 | :ATTRTYPE=POST
227 | :ATTRVTYPE=DECIMAL
228 | :ATTREMARK=X End
229 | :CODETYPE=FORMAT
230 | :ATTRCFUNC=CALC_DEC_REGISTER(Z_CLEAR,MACH,OPR_Z_CLEARANCE,REG_Z)
231 | :WORD_ADDRESS_BEF=|R
232 | :MODAL=NO
233 | :ATTREND
234 | *-----------------------------------
235 | :ATTRNAME=Z DEPTH
236 | :ATTRTYPE=POST
237 | :ATTRVTYPE=DECIMAL
238 | :ATTREMARK=X End
239 | :CODETYPE=FORMAT
240 | :ATTRCFUNC=CALC_DEC_REGISTER(Z_DEPTH,MACH,OPR_Z_DEPTH,REG_Z)
241 | :WORD_ADDRESS_BEF=|Z
242 | :MODAL=NO
243 | :ATTREND
244 | *-----------------------------------
245 | :ATTRNAME=SUB PECK
246 | :ATTRTYPE=POST
247 | :ATTRVTYPE=DECIMAL
248 | :ATTREMARK=X End
249 | :CODETYPE=FORMAT
250 | :ATTRCFUNC=CALC_DEC_REGISTER(SUB_PECK,MACH,OPR_Z_SUB_PECK,REG_Q)
251 | :WORD_ADDRESS_BEF=|Q
252 | :MODAL=NO
253 | :ATTREND
254 | *-----------------------------------
255 | :ATTRNAME=I
256 | :ATTRTYPE=POST
257 | :ATTRVTYPE=DECIMAL
258 | :ATTREMARK=X Center
259 | :CODETYPE=FORMAT
260 | :ATTRCFUNC=CALC_CENTER(I,ABS_I_CENTER,GC,GG,G_GROUP,MACH,PREV,REG_X,REG_I,AIC)
261 | :WORD_ADDRESS_BEF=|I
262 | :ATTREND
263 | *-----------------------------------
264 | :ATTRNAME=J
265 | :ATTRTYPE=POST
266 | :ATTRVTYPE=DECIMAL
267 | :ATTREMARK=J Center
268 | :CODETYPE=FORMAT
269 | :ATTRCFUNC=CALC_CENTER(J,ABS_J_CENTER,GC,GG,G_GROUP,MACH,PREV,REG_Y,REG_J,AIC)
270 | :WORD_ADDRESS_BEF=|J
271 | :ATTREND
272 | *-----------------------------------
273 | :ATTRNAME=R
274 | :ATTRTYPE=POST
275 | :ATTRVTYPE=DECIMAL
276 | :ATTREMARK=R Radius
277 | :CODETYPE=FORMAT
278 | :ATTRCFUNC=CALC_RADIUS(R,MACH,REG_R)
279 | :WORD_ADDRESS_BEF=|R
280 | :MODAL=YES
281 | :ATTREND
282 | *-----------------------------------
283 | :ATTRNAME=F
284 | :ATTRTYPE=POST
285 | :ATTRVTYPE=DECIMAL
286 | :ATTREMARK=Feedrate IPM/MPM
287 | :CODETYPE=FORMAT
288 | :ATTRCFUNC=CALC_REG_F(MACH,REG_F,F)
289 | :WORD_ADDRESS_BEF=|F
290 | :CANNOT_BE_SIGNED
291 | :MODAL=YES
292 | :ATTREND
293 | *-----------------------------------
294 | :ATTRNAME=MACRO NAME
295 | :ATTRTYPE=POST
296 | :ATTREMARK=
297 | :CODETYPE=FORMAT
298 | :WORD_ADDRESS_BEF=|(
299 | :VAR=MACRO NAME
300 | :WORD_ADDRESS_AFT=)
301 | :LEFT_PLACES=0
302 | :RIGHT_PLACES=0
303 | :UNITFLAG=NON_CONVERT
304 | :ATTRSPACES=YES
305 | *:MODAL=YES
306 | :ATTRUSED=1
307 | :ATTREND
308 | *-----------------------------------
309 | :ATTRNAME=CURRENT MACRO NAME
310 | :ATTRTYPE=POST
311 | :ATTREMARK=
312 | :CODETYPE=FORMAT
313 | :WORD_ADDRESS_BEF=|(
314 | :VAR=CURRENT MACRO NAME
315 | :WORD_ADDRESS_AFT=)
316 | :LEFT_PLACES=0
317 | :RIGHT_PLACES=0
318 | :UNITFLAG=NON_CONVERT
319 | :ATTRSPACES=YES
320 | *:MODAL=YES
321 | :ATTRUSED=1
322 | :ATTREND
323 | *****
324 | ****
325 | :SECTION=CALC_START_DRILL_CYCLE
326 | :C: TOTAL_Z_FEED=0
327 | :C: TOTAL_Z_RAPID=0
328 | :C: IF SECTIONEXIST(MACRO_RAPID_CALL_MILL) THEN
329 | :C: CALL(CALC_START_DRILL_CYCLE_MACRO)
330 | :C: RETURN
331 | :C: ENDIF
332 | :C: IF OPR_RETRACT_TYPE=CLEARANCE_PLANE THEN Z_POS=OPR_Z_CLEARANCE ENDIF
333 | :C: IF OPR_RETRACT_TYPE=RAPID_PLANE THEN Z_POS=OPR_Z_RAPID_PLANE ENDIF
334 | :C: IF SECTIONEXIST(DRILL_POSITION) THEN
335 | :C: CALL(CALC_DRILL_POSITION)
336 | :C: ELSE
337 | :C: Z_SAVE=ABS_Z_END
338 | :C: ABS_Z_END=Z_POS
339 | :C: CALL(CALC_RAPID_MOVE_MILL)
340 | :C: ABS_Z_END=Z_SAVE
341 | :C: ENDIF
342 | :C: FORCE_XY=0
343 | :C: SAVE_Z=ABS_Z_END ABS_Z_END=Z_POS
344 | :C: IF GC(G_LEN_COMP)<>GC(G_LEN_CANCEL) THEN
345 | :C: IF MACH(REG_Z)=MILL_Z_HOME THEN
346 | :C: IF SECTIONEXIST(FIRST_RAPID_Z_PRELOAD_DOWN_MILL) THEN
347 | :C: CALL(CALC_FIRST_RAPID_Z_PRELOAD_DOWN_MILL)
348 | :C: ELSE
349 | :C: CALL(CALC_FIRST_RAPID_Z_MOVE_DOWN_MILL)
350 | :C: ENDIF
351 | :C: ELSE
352 | :C: CALL(RAPID_Z_MOVE_DOWN_MILL)
353 | :C: ENDIF
354 | :C: ENDIF
355 | :C: ABS_Z_END=SAVE_Z
356 | :C: IF OPR_DRILL_CYCLE_TYPE=DRILLING THEN
357 | :C: CALL(CALC_DRILLING_CYCLE)
358 | :C: GOTO10
359 | :C: ENDIF
360 | :C: IF OPR_DRILL_CYCLE_TYPE=SPOT_DRILLING THEN
361 | :C: CALL(CALC_SPOT_DRILLING_CYCLE)
362 | :C: GOTO10
363 | :C: ENDIF
364 | :C: IF OPR_DRILL_CYCLE_TYPE=PECKING THEN
365 | * this will force it to use drill cycle always
366 | :C: CALL(CALC_DRILLING_CYCLE)
367 | * Comment out the next two lines and replace with above one
368 | *:C: CALL(CALC_NUM_PECKS)
369 | *:C: CALL(CALC_PECKING_CYCLE)
370 | :C: GOTO10
371 | :C: ENDIF
372 | :C: IF OPR_DRILL_CYCLE_TYPE=HIGH_SPEED_PECKING THEN
373 | * this will force it to use drill cycle always
374 | :C: CALL(CALC_DRILLING_CYCLE)
375 | * Comment out the next two lines and replace with above one
376 | *:C: CALL(CALC_NUM_PECKS)
377 | *:C: CALL(CALC_HIGH_SPEED_PECKING_CYCLE)
378 | :C: GOTO10
379 | :C: ENDIF
380 | :C: IF OPR_DRILL_CYCLE_TYPE=VARIABLE_PECKING THEN
381 | * this will force it to use drill cycle always
382 | :C: CALL(CALC_DRILLING_CYCLE)
383 | * Comment out the next two lines and replace with above one
384 | *:C: CALL(CALC_NUM_PECKS)
385 | *:C: CALL(CALC_VARIABLE_PECKING_CYCLE)
386 | :C: GOTO10
387 | :C: ENDIF
388 | :C: IF OPR_DRILL_CYCLE_TYPE=TAPPING THEN
389 | :C: CALL(CALC_TAPPING_CYCLE)
390 | :C: GOTO10
391 | :C: ENDIF
392 | :C: IF OPR_DRILL_CYCLE_TYPE=REVERSE_TAPPING THEN
393 | :C: CALL(CALC_REVERSE_TAPPING_CYCLE)
394 | :C: GOTO10
395 | :C: ENDIF
396 | :C: IF OPR_DRILL_CYCLE_TYPE=FINE_BORING THEN
397 | :C: CALL(CALC_FINE_BORING_CYCLE)
398 | :C: GOTO10
399 | :C: ENDIF
400 | :C: IF OPR_DRILL_CYCLE_TYPE=REAMING THEN
401 | :C: CALL(CALC_REAMING_CYCLE)
402 | :C: GOTO10
403 | :C: ENDIF
404 | :C: IF OPR_DRILL_CYCLE_TYPE=REAMING_DWELL THEN
405 | :C: CALL(CALC_REAM_DWELL_CYCLE)
406 | :C: GOTO10
407 | :C: ENDIF
408 | :C: IF OPR_DRILL_CYCLE_TYPE=BORING THEN
409 | :C: CALL(CALC_BORING_CYCLE)
410 | :C: GOTO10
411 | :C: ENDIF
412 | :C: IF OPR_DRILL_CYCLE_TYPE=BORE_DWELL THEN
413 | :C: CALL(CALC_BORE_DWELL_CYCLE)
414 | :C: GOTO10
415 | :C: ENDIF
416 | :C: IF OPR_DRILL_CYCLE_TYPE=BACK_BORING THEN
417 | :C: CALL(CALC_BACK_BORING_CYCLE)
418 | :C: GOTO10
419 | :C: ENDIF
420 | *
421 | * Time Calculations
422 | *
423 | :C10: Z_DISTANCE=TOTAL_Z_RAPID
424 | :C: IF SECTIONEXIST(OUTPUT_ESTIMATED_TIME) THEN
425 | :C: CALL(CALC_ESTIMATE_RAPID_TIME)
426 | :C: CALL(CALC_ESTIMATE_DRILL_Z_INIT_TIME)
427 | :C: Z_DISTANCE=TOTAL_Z_RAPID
428 | :C: CALL(CALC_ESTIMATE_DRILL_RAPID_TIME)
429 | :C: Z_DISTANCE=TOTAL_Z_FEED
430 | :C: CALL(CALC_ESTIMATE_DRILL_FEED_TIME)
431 | :C: ENDIF
432 | *
433 | *
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
--------------------------------------------------------------------------------
/SolidWorks/SW_BUILDBOTICS_POST.LIB.txt:
--------------------------------------------------------------------------------
1 | *-----------------------------------
2 | :ATTRNAME=TOOL QT COMMENT
3 | :ATTRTYPE=POST
4 | :ATTREMARK=
5 | :CODETYPE=FORMAT
6 | :WORD_ADDRESS_BEF=
7 | :MODAL=FALSE
8 | :ATTREND
9 | *-----------------------------------
10 | :ATTRNAME=SEQ CONFIG
11 | :ATTRTYPE=POST
12 | :ATTRVTYPE=INTEGER
13 | :ATTREMARK=Config. seq. numbers
14 | :ATTREND
15 | *----------------------------------------------------------
16 | * Define OUTPUT CODE Attributes
17 | *----------------------------------------------------------
18 | :ATTRNAME=N
19 | :ATTRTYPE=POST
20 | :ATTRVTYPE=INTEGER
21 | :ATTREMARK=Sequence number
22 | :CODETYPE=SELECT_FORMAT
23 | :ATTRCFUNC=CALC_REG_N(SEQ,MAX_SEQUENCE)
24 | :VAR=SEQ_CONFIG
25 | :SELECT=0
26 | :WORD_ADDRESS_BEF=N
27 | :VARB=SEQ
28 | :LEFT_PLACES=4
29 | :RIGHT_PLACES=0
30 | :CANNOT_BE_LEADING
31 | :MUST_BE_TRAILING
32 | :CANNOT_BE_DECIMAL
33 | :CANNOT_BE_SIGNED
34 | :SELECT=1
35 | :WORD_ADDRESS_BEF=N
36 | :VARB=SEQ
37 | :LEFT_PLACES=4
38 | :RIGHT_PLACES=0
39 | :MUST_BE_LEADING
40 | :MUST_BE_TRAILING
41 | :CANNOT_BE_DECIMAL
42 | :CANNOT_BE_SIGNED
43 | :SELECT=2
44 | :WORD_ADDRESS_BEF=N
45 | :VARB=SEQ
46 | :LEFT_PLACES=3
47 | :RIGHT_PLACES=0
48 | :MUST_BE_LEADING
49 | :MUST_BE_TRAILING
50 | :CANNOT_BE_DECIMAL
51 | :CANNOT_BE_SIGNED
52 | :UNITFLAG=NON_CONVERT
53 | :ATTREND
54 | *-----------------------------------
55 | :ATTRNAME=S
56 | :ATTRTYPE=POST
57 | :ATTRVTYPE=INTEGER
58 | :ATTREMARK=Spindle RPM
59 | :CODETYPE=FORMAT
60 | :ATTRCFUNC=CALC_INT_REGISTER(S,MACH,OPR_SPEED,REG_S)
61 | :WORD_ADDRESS_BEF=|S
62 | :LEFT_PLACES=4
63 | :RIGHT_PLACES=0
64 | :CANNOT_BE_DECIMAL
65 | :MUST_BE_TRAILING
66 | :CANNOT_BE_SIGNED
67 | :UNITFLAG=NON_CONVERT
68 | :MODAL=YES
69 | :ATTREND
70 | *-----------------------------------
71 | :ATTRNAME=T
72 | :ATTRTYPE=POST
73 | :ATTRVTYPE=INTEGER
74 | :ATTREMARK=Tool Number
75 | :CODETYPE=FORMAT
76 | :ATTRCFUNC=CALC_INT_REGISTER(T,MACH,TOOL,REG_T2)
77 | :WORD_ADDRESS_BEF=|T
78 | :RIGHT_PLACES=0
79 | :CANNOT_BE_DECIMAL
80 | :CANNOT_BE_SIGNED
81 | :UNITFLAG=NON_CONVERT
82 | :ATTREND
83 | *-----------------------------------
84 | *----------------------------------------------------------
85 | * Define OUTPUT CODE Attributes (G Codes...)
86 | *----------------------------------------------------------
87 | :ATTRNAME=G
88 | :ATTRTYPE=POST
89 | :ATTRVTYPE=INTEGER
90 | :ATTREMARK=G Codes
91 | :CODETYPE=FORMAT
92 | :ATTRCFUNC=CALC_G_GROUP(G,GC,GG,GM,MACH,G_GROUP,ATTRIVALUE,INDEX)
93 | :CODETYPE=FORMAT
94 | :WORD_ADDRESS_BEF=|G
95 | :RIGHT_PLACES=0
96 | :CANNOT_BE_DECIMAL
97 | :CANNOT_BE_SIGNED
98 | :UNITFLAG=NON_CONVERT
99 | :MODAL=YES
100 | :ATTRUSED=1
101 | :ATTREND
102 | *----------------------------------------------------------
103 | * Define OUTPUT CODE Attributes (M Codes...)
104 | *----------------------------------------------------------
105 | :ATTRNAME=M
106 | :ATTRTYPE=POST
107 | :ATTRVTYPE=INTEGER
108 | :ATTREMARK=M Codes
109 | :CODETYPE=FORMAT
110 | :ATTRCFUNC=CALC_M_GROUP(M,MC,MG,MM,MACH,M_GROUP,ATTRIVALUE,INDEX)
111 | :CODETYPE=FORMAT
112 | :RIGHT_PLACES=0
113 | :WORD_ADDRESS_BEF=|M
114 | :CANNOT_BE_DECIMAL
115 | :CANNOT_BE_SIGNED
116 | :UNITFLAG=NON_CONVERT
117 | :MODAL=YES
118 | :ATTRUSED=1
119 | :ATTREND
120 | *----------------------------------------------------------
121 | * Define OUTPUT CODE Attributes (Movement...)
122 | *----------------------------------------------------------
123 | :ATTRNAME=X
124 | :ATTRTYPE=POST
125 | :ATTRVTYPE=DECIMAL
126 | :ATTREMARK=X End
127 | :CODETYPE=FORMAT
128 | :ATTRCFUNC=CALC_ENDPOINT(X,X_POS,GC,GG,G_GROUP,MACH,PREV,REG_X)
129 | :WORD_ADDRESS_BEF=|X
130 | :MODAL=YES
131 | :ATTREND
132 | *-----------------------------------
133 | :ATTRNAME=Y
134 | :ATTRTYPE=POST
135 | :ATTRVTYPE=DECIMAL
136 | :ATTREMARK=Y End
137 | :CODETYPE=FORMAT
138 | :ATTRCFUNC=CALC_ENDPOINT(Y,Y_POS,GC,GG,G_GROUP,MACH,PREV,REG_Y)
139 | :WORD_ADDRESS_BEF=|Y
140 | :MODAL=YES
141 | :ATTREND
142 | *-----------------------------------
143 | :ATTRNAME=Z
144 | :ATTRTYPE=POST
145 | :ATTRVTYPE=DECIMAL
146 | :ATTREMARK=Z End
147 | :CODETYPE=FORMAT
148 | :ATTRCFUNC=CALC_ENDPOINT(Z,ABS_Z_END,GC,GG,G_GROUP,MACH,PREV,REG_Z)
149 | :WORD_ADDRESS_BEF=|Z
150 | :MODAL=YES
151 | :ATTREND
152 | *-----------------------------------
153 | :ATTRNAME=VI
154 | :ATTRTYPE=POST
155 | :ATTRVTYPE=DECIMAL
156 | :ATTREMARK=I Vector
157 | :CODETYPE=FORMAT
158 | :ATTRCFUNC=CALC_ENDPOINT(VI,VECTOR_I,GC,GG,G_GROUP,MACH,PREV,REG_VI)
159 | :WORD_ADDRESS_BEF=|I
160 | :MODAL=YES
161 | :ATTREND
162 | *-----------------------------------
163 | :ATTRNAME=VJ
164 | :ATTRTYPE=POST
165 | :ATTRVTYPE=DECIMAL
166 | :ATTREMARK=J Vector
167 | :CODETYPE=FORMAT
168 | :ATTRCFUNC=CALC_ENDPOINT(VJ,VECTOR_J,GC,GG,G_GROUP,MACH,PREV,REG_VJ)
169 | :WORD_ADDRESS_BEF=|J
170 | :MODAL=YES
171 | :ATTREND
172 | *-----------------------------------
173 | :ATTRNAME=VK
174 | :ATTRTYPE=POST
175 | :ATTRVTYPE=DECIMAL
176 | :ATTREMARK=K Vector
177 | :CODETYPE=FORMAT
178 | :ATTRCFUNC=CALC_ENDPOINT(VK,VECTOR_K,GC,GG,G_GROUP,MACH,PREV,REG_VK)
179 | :WORD_ADDRESS_BEF=|K
180 | :MODAL=YES
181 | :ATTREND
182 | *-----------------------------------
183 | :ATTRNAME=A
184 | :ATTRTYPE=POST
185 | :ATTRVTYPE=DECIMAL
186 | :ATTREMARK=Angle A
187 | :CODETYPE=FORMAT
188 | :ATTRCFUNC=CALC_ROT_ANGLE_A(A,MACH,INC_ROT_TILT_A,REG_A)
189 | :WORD_ADDRESS_BEF=|A
190 | :WORD_ADDRESS_AFT=|
191 | :MODAL=YES
192 | :UNITFLAG=NON_CONVERT
193 | :ATTREND
194 | *-----------------------------------
195 | :ATTRNAME=B
196 | :ATTRTYPE=POST
197 | :ATTRVTYPE=DECIMAL
198 | :ATTREMARK=Angle B
199 | :CODETYPE=FORMAT
200 | :ATTRCFUNC=CALC_ROT_ANGLE_B(B,MACH,INC_ROT_TILT_B,REG_B)
201 | :WORD_ADDRESS_BEF=|B
202 | :WORD_ADDRESS_AFT=|
203 | :MODAL=YES
204 | :UNITFLAG=NON_CONVERT
205 | :ATTREND
206 | *-----------------------------------
207 | :ATTRNAME=X OFFSET
208 | :ATTRTYPE=POST
209 | :ATTRVTYPE=DECIMAL
210 | :ATTREMARK=X End
211 | :CODETYPE=FORMAT
212 | :ATTRCFUNC=CALC_MACRO_ORIGIN(X_OFFSET,REG_X,X_OFFSET)
213 | :WORD_ADDRESS_BEF=|X
214 | :ATTREND
215 | *-----------------------------------
216 | :ATTRNAME=Y OFFSET
217 | :ATTRTYPE=POST
218 | :ATTRVTYPE=DECIMAL
219 | :ATTREMARK=Y End
220 | :CODETYPE=FORMAT
221 | :ATTRCFUNC=CALC_MACRO_ORIGIN(Y_OFFSET,REG_Y,Y_OFFSET)
222 | :WORD_ADDRESS_BEF=|Y
223 | :ATTREND
224 | *-----------------------------------
225 | :ATTRNAME=Z CLEAR
226 | :ATTRTYPE=POST
227 | :ATTRVTYPE=DECIMAL
228 | :ATTREMARK=X End
229 | :CODETYPE=FORMAT
230 | :ATTRCFUNC=CALC_DEC_REGISTER(Z_CLEAR,MACH,OPR_Z_CLEARANCE,REG_Z)
231 | :WORD_ADDRESS_BEF=|R
232 | :MODAL=NO
233 | :ATTREND
234 | *-----------------------------------
235 | :ATTRNAME=Z DEPTH
236 | :ATTRTYPE=POST
237 | :ATTRVTYPE=DECIMAL
238 | :ATTREMARK=X End
239 | :CODETYPE=FORMAT
240 | :ATTRCFUNC=CALC_DEC_REGISTER(Z_DEPTH,MACH,OPR_Z_DEPTH,REG_Z)
241 | :WORD_ADDRESS_BEF=|Z
242 | :MODAL=NO
243 | :ATTREND
244 | *-----------------------------------
245 | :ATTRNAME=SUB PECK
246 | :ATTRTYPE=POST
247 | :ATTRVTYPE=DECIMAL
248 | :ATTREMARK=X End
249 | :CODETYPE=FORMAT
250 | :ATTRCFUNC=CALC_DEC_REGISTER(SUB_PECK,MACH,OPR_Z_SUB_PECK,REG_Q)
251 | :WORD_ADDRESS_BEF=|Q
252 | :MODAL=NO
253 | :ATTREND
254 | *-----------------------------------
255 | :ATTRNAME=I
256 | :ATTRTYPE=POST
257 | :ATTRVTYPE=DECIMAL
258 | :ATTREMARK=X Center
259 | :CODETYPE=FORMAT
260 | :ATTRCFUNC=CALC_CENTER(I,ABS_I_CENTER,GC,GG,G_GROUP,MACH,PREV,REG_X,REG_I,AIC)
261 | :WORD_ADDRESS_BEF=|I
262 | :ATTREND
263 | *-----------------------------------
264 | :ATTRNAME=J
265 | :ATTRTYPE=POST
266 | :ATTRVTYPE=DECIMAL
267 | :ATTREMARK=J Center
268 | :CODETYPE=FORMAT
269 | :ATTRCFUNC=CALC_CENTER(J,ABS_J_CENTER,GC,GG,G_GROUP,MACH,PREV,REG_Y,REG_J,AIC)
270 | :WORD_ADDRESS_BEF=|J
271 | :ATTREND
272 | *-----------------------------------
273 | :ATTRNAME=R
274 | :ATTRTYPE=POST
275 | :ATTRVTYPE=DECIMAL
276 | :ATTREMARK=R Radius
277 | :CODETYPE=FORMAT
278 | :ATTRCFUNC=CALC_RADIUS(R,MACH,REG_R)
279 | :WORD_ADDRESS_BEF=|R
280 | :MODAL=YES
281 | :ATTREND
282 | *-----------------------------------
283 | :ATTRNAME=F
284 | :ATTRTYPE=POST
285 | :ATTRVTYPE=DECIMAL
286 | :ATTREMARK=Feedrate IPM/MPM
287 | :CODETYPE=FORMAT
288 | :ATTRCFUNC=CALC_REG_F(MACH,REG_F,F)
289 | :WORD_ADDRESS_BEF=|F
290 | :CANNOT_BE_SIGNED
291 | :MODAL=YES
292 | :ATTREND
293 | *-----------------------------------
294 | :ATTRNAME=MACRO NAME
295 | :ATTRTYPE=POST
296 | :ATTREMARK=
297 | :CODETYPE=FORMAT
298 | :WORD_ADDRESS_BEF=|(
299 | :VAR=MACRO NAME
300 | :WORD_ADDRESS_AFT=)
301 | :LEFT_PLACES=0
302 | :RIGHT_PLACES=0
303 | :UNITFLAG=NON_CONVERT
304 | :ATTRSPACES=YES
305 | *:MODAL=YES
306 | :ATTRUSED=1
307 | :ATTREND
308 | *-----------------------------------
309 | :ATTRNAME=CURRENT MACRO NAME
310 | :ATTRTYPE=POST
311 | :ATTREMARK=
312 | :CODETYPE=FORMAT
313 | :WORD_ADDRESS_BEF=|(
314 | :VAR=CURRENT MACRO NAME
315 | :WORD_ADDRESS_AFT=)
316 | :LEFT_PLACES=0
317 | :RIGHT_PLACES=0
318 | :UNITFLAG=NON_CONVERT
319 | :ATTRSPACES=YES
320 | *:MODAL=YES
321 | :ATTRUSED=1
322 | :ATTREND
323 | *****
324 | ****
325 | :SECTION=CALC_START_DRILL_CYCLE
326 | :C: TOTAL_Z_FEED=0
327 | :C: TOTAL_Z_RAPID=0
328 | :C: IF SECTIONEXIST(MACRO_RAPID_CALL_MILL) THEN
329 | :C: CALL(CALC_START_DRILL_CYCLE_MACRO)
330 | :C: RETURN
331 | :C: ENDIF
332 | :C: IF OPR_RETRACT_TYPE=CLEARANCE_PLANE THEN Z_POS=OPR_Z_CLEARANCE ENDIF
333 | :C: IF OPR_RETRACT_TYPE=RAPID_PLANE THEN Z_POS=OPR_Z_RAPID_PLANE ENDIF
334 | :C: IF SECTIONEXIST(DRILL_POSITION) THEN
335 | :C: CALL(CALC_DRILL_POSITION)
336 | :C: ELSE
337 | :C: Z_SAVE=ABS_Z_END
338 | :C: ABS_Z_END=Z_POS
339 | :C: CALL(CALC_RAPID_MOVE_MILL)
340 | :C: ABS_Z_END=Z_SAVE
341 | :C: ENDIF
342 | :C: FORCE_XY=0
343 | :C: SAVE_Z=ABS_Z_END ABS_Z_END=Z_POS
344 | :C: IF GC(G_LEN_COMP)<>GC(G_LEN_CANCEL) THEN
345 | :C: IF MACH(REG_Z)=MILL_Z_HOME THEN
346 | :C: IF SECTIONEXIST(FIRST_RAPID_Z_PRELOAD_DOWN_MILL) THEN
347 | :C: CALL(CALC_FIRST_RAPID_Z_PRELOAD_DOWN_MILL)
348 | :C: ELSE
349 | :C: CALL(CALC_FIRST_RAPID_Z_MOVE_DOWN_MILL)
350 | :C: ENDIF
351 | :C: ELSE
352 | :C: CALL(RAPID_Z_MOVE_DOWN_MILL)
353 | :C: ENDIF
354 | :C: ENDIF
355 | :C: ABS_Z_END=SAVE_Z
356 | :C: IF OPR_DRILL_CYCLE_TYPE=DRILLING THEN
357 | :C: CALL(CALC_DRILLING_CYCLE)
358 | :C: GOTO10
359 | :C: ENDIF
360 | :C: IF OPR_DRILL_CYCLE_TYPE=SPOT_DRILLING THEN
361 | :C: CALL(CALC_SPOT_DRILLING_CYCLE)
362 | :C: GOTO10
363 | :C: ENDIF
364 | :C: IF OPR_DRILL_CYCLE_TYPE=PECKING THEN
365 | * this will force it to use drill cycle always
366 | :C: CALL(CALC_DRILLING_CYCLE)
367 | * Comment out the next two lines and replace with above one
368 | *:C: CALL(CALC_NUM_PECKS)
369 | *:C: CALL(CALC_PECKING_CYCLE)
370 | :C: GOTO10
371 | :C: ENDIF
372 | :C: IF OPR_DRILL_CYCLE_TYPE=HIGH_SPEED_PECKING THEN
373 | * this will force it to use drill cycle always
374 | :C: CALL(CALC_DRILLING_CYCLE)
375 | * Comment out the next two lines and replace with above one
376 | *:C: CALL(CALC_NUM_PECKS)
377 | *:C: CALL(CALC_HIGH_SPEED_PECKING_CYCLE)
378 | :C: GOTO10
379 | :C: ENDIF
380 | :C: IF OPR_DRILL_CYCLE_TYPE=VARIABLE_PECKING THEN
381 | * this will force it to use drill cycle always
382 | :C: CALL(CALC_DRILLING_CYCLE)
383 | * Comment out the next two lines and replace with above one
384 | *:C: CALL(CALC_NUM_PECKS)
385 | *:C: CALL(CALC_VARIABLE_PECKING_CYCLE)
386 | :C: GOTO10
387 | :C: ENDIF
388 | :C: IF OPR_DRILL_CYCLE_TYPE=TAPPING THEN
389 | :C: CALL(CALC_TAPPING_CYCLE)
390 | :C: GOTO10
391 | :C: ENDIF
392 | :C: IF OPR_DRILL_CYCLE_TYPE=REVERSE_TAPPING THEN
393 | :C: CALL(CALC_REVERSE_TAPPING_CYCLE)
394 | :C: GOTO10
395 | :C: ENDIF
396 | :C: IF OPR_DRILL_CYCLE_TYPE=FINE_BORING THEN
397 | :C: CALL(CALC_FINE_BORING_CYCLE)
398 | :C: GOTO10
399 | :C: ENDIF
400 | :C: IF OPR_DRILL_CYCLE_TYPE=REAMING THEN
401 | :C: CALL(CALC_REAMING_CYCLE)
402 | :C: GOTO10
403 | :C: ENDIF
404 | :C: IF OPR_DRILL_CYCLE_TYPE=REAMING_DWELL THEN
405 | :C: CALL(CALC_REAM_DWELL_CYCLE)
406 | :C: GOTO10
407 | :C: ENDIF
408 | :C: IF OPR_DRILL_CYCLE_TYPE=BORING THEN
409 | :C: CALL(CALC_BORING_CYCLE)
410 | :C: GOTO10
411 | :C: ENDIF
412 | :C: IF OPR_DRILL_CYCLE_TYPE=BORE_DWELL THEN
413 | :C: CALL(CALC_BORE_DWELL_CYCLE)
414 | :C: GOTO10
415 | :C: ENDIF
416 | :C: IF OPR_DRILL_CYCLE_TYPE=BACK_BORING THEN
417 | :C: CALL(CALC_BACK_BORING_CYCLE)
418 | :C: GOTO10
419 | :C: ENDIF
420 | *
421 | * Time Calculations
422 | *
423 | :C10: Z_DISTANCE=TOTAL_Z_RAPID
424 | :C: IF SECTIONEXIST(OUTPUT_ESTIMATED_TIME) THEN
425 | :C: CALL(CALC_ESTIMATE_RAPID_TIME)
426 | :C: CALL(CALC_ESTIMATE_DRILL_Z_INIT_TIME)
427 | :C: Z_DISTANCE=TOTAL_Z_RAPID
428 | :C: CALL(CALC_ESTIMATE_DRILL_RAPID_TIME)
429 | :C: Z_DISTANCE=TOTAL_Z_FEED
430 | :C: CALL(CALC_ESTIMATE_DRILL_FEED_TIME)
431 | :C: ENDIF
432 | *
433 | *
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
--------------------------------------------------------------------------------
/fusion360/buildbotics_jet.cps:
--------------------------------------------------------------------------------
1 | /**
2 | Copyright (C) 2012-2019 by Autodesk, Inc.
3 | All rights reserved.
4 |
5 | Grbl post processor configuration.
6 |
7 | $Revision: 42473 905303e8374380273c82d214b32b7e80091ba92e $
8 | $Date: 2019-09-04 00:46:02 $
9 |
10 | FORKID {0A45B7F8-16FA-450B-AB4F-0E1BC1A65FAA}
11 |
12 | Modified for Buildbotics Controller with Jet operation
13 | */
14 |
15 | description = "Buildbotics Jet";
16 | vendor = "Buildbotics LLC";
17 | vendorUrl = "https://buildbotics.com";
18 | legal = "Copyright (C) 2012-2019 by Autodesk, Inc.";
19 | certificationLevel = 2;
20 | minimumRevision = 24000;
21 | highFeedrate = (unit == IN) ? 100 : 2500;
22 |
23 | longDescription = "Generic post for Buildbotics Jet cutting.";
24 |
25 | extension = "nc";
26 | setCodePage("ascii");
27 |
28 | capabilities = CAPABILITY_JET;
29 | tolerance = spatial(0.002, MM);
30 |
31 | minimumChordLength = spatial(0.25, MM);
32 | minimumCircularRadius = spatial(0.01, MM);
33 | maximumCircularRadius = spatial(1000, MM);
34 | minimumCircularSweep = toRad(0.01);
35 | maximumCircularSweep = toRad(180);
36 | allowHelicalMoves = true;
37 | allowedCircularPlanes = undefined; // allow any circular motion
38 |
39 | // user-defined properties
40 | properties = {
41 | writeMachine: true, // write machine
42 | showSequenceNumbers: false, // show sequence numbers
43 | sequenceNumberStart: 10, // first sequence number
44 | sequenceNumberIncrement: 1, // increment for sequence numbers
45 | separateWordsWithSpace: true, // specifies that the words should be separated with a white space
46 | pierceDelay: 1, // specifies the delay to pierce in seconds
47 | useZAxis: false, // specifies to enable the output for Z coordinates
48 | pierceHeight: 0, // specifies the pierce height
49 | useG0: true // toggle between using G0 or G1 with a highFeedrate for rapid movements
50 | //throughPower: 255, // set the Laser Power for though cutting
51 | //etchPower: 50, // set the power for etching
52 | //vaporizePower: 255 // set the power for vaporize
53 | };
54 |
55 | // user-defined property definitions
56 | propertyDefinitions = {
57 | writeMachine: {title:"Write machine", description:"Output the machine settings in the header of the code.", group:0, type:"boolean"},
58 | showSequenceNumbers: {title:"Use sequence numbers", description:"Use sequence numbers for each block of outputted code.", group:1, type:"boolean"},
59 | sequenceNumberStart: {title:"Start sequence number", description:"The number at which to start the sequence numbers.", group:1, type:"integer"},
60 | sequenceNumberIncrement: {title:"Sequence number increment", description:"The amount by which the sequence number is incremented by in each block.", group:1, type:"integer"},
61 | separateWordsWithSpace: {title:"Separate words with space", description:"Adds spaces between words if 'yes' is selected.", type:"boolean"},
62 |
63 | pierceDelay: {title:"Pierce delay", description:"Specifies the delay to pierce in seconds.", type:"number"},
64 | useZAxis: {title:"Use Z axis", description:"Specifies to enable the output for Z coordinates.", type:"boolean"},
65 | pierceHeight: {title:"Pierce Height", description:"Specifies the pierce height.", type:"number"},
66 | useG0: {title:"Use G0", description:"Toggle between using G0 or G1 with a highFeedrate for rapid movements.", type:"boolean"}
67 | //throughPower: {title: "Through power", description: "Sets the laser power used for through cutting.", type: "number"},
68 | //etchPower: {title:"Etch power", description:"Sets the laser power used for etching.", type:"number"},
69 | //vaporizePower: {title:"Vaporize power", description:"Sets the laser power used for vaporize cutting.", type:"number"}
70 | };
71 |
72 | var gFormat = createFormat({prefix:"G", decimals:0});
73 | var mFormat = createFormat({prefix:"M", decimals:0});
74 |
75 | var xyzFormat = createFormat({decimals:(unit == MM ? 3 : 4)});
76 | var zFormat = createFormat({decimals:(unit == MM ? 3 : 4), forceDecimal:true});
77 | var feedFormat = createFormat({decimals:(unit == MM ? 1 : 2)});
78 | var toolFormat = createFormat({decimals:0});
79 | var powerFormat = createFormat({decimals:0});
80 | var secFormat = createFormat({decimals:3, forceDecimal:true}); // seconds - range 0.001-1000
81 |
82 | var xOutput = createVariable({prefix:"X"}, xyzFormat);
83 | var yOutput = createVariable({prefix:"Y"}, xyzFormat);
84 | var zOutput = createVariable({prefix:"Z"}, xyzFormat);
85 | var feedOutput = createVariable({prefix:"F"}, feedFormat);
86 | var sOutput = createVariable({prefix:"S", force:true}, powerFormat);
87 |
88 | // circular output
89 | var iOutput = createVariable({prefix:"I"}, xyzFormat);
90 | var jOutput = createVariable({prefix:"J"}, xyzFormat);
91 |
92 | var gMotionModal = createModal({force:true}, gFormat); // modal group 1 // G0-G3, ...
93 | var gPlaneModal = createModal({onchange:function () {gMotionModal.reset();}}, gFormat); // modal group 2 // G17-19
94 | var gAbsIncModal = createModal({}, gFormat); // modal group 3 // G90-91
95 | var gFeedModeModal = createModal({}, gFormat); // modal group 5 // G93-94
96 | var gUnitModal = createModal({}, gFormat); // modal group 6 // G20-21
97 |
98 | var WARNING_WORK_OFFSET = 0;
99 |
100 | // collected state
101 | var sequenceNumber;
102 | var currentWorkOffset;
103 |
104 | /**
105 | Writes the specified block.
106 | */
107 | function writeBlock() {
108 | if (properties.showSequenceNumbers) {
109 | writeWords2("N" + sequenceNumber, arguments);
110 | sequenceNumber += properties.sequenceNumberIncrement;
111 | } else {
112 | writeWords(arguments);
113 | }
114 | }
115 |
116 | function formatComment(text) {
117 | return "(" + String(text).replace(/[()]/g, "") + ")";
118 | }
119 |
120 | /**
121 | Output a comment.
122 | */
123 | function writeComment(text) {
124 | writeln(formatComment(text));
125 | }
126 |
127 | function getPowerMode(section) {
128 | var mode;
129 | switch (section.quality) {
130 | case 0: // auto
131 | mode = 4;
132 | break;
133 | case 1: // high
134 | mode = 3;
135 | break;
136 | /*
137 | case 2: // medium
138 | case 3: // low
139 | */
140 | default:
141 | error(localize("Only Cutting Mode Through-auto and Through-high are supported."));
142 | return 0;
143 | }
144 | return mode;
145 | }
146 |
147 | function onOpen() {
148 |
149 | if (properties.useZAxis) {
150 | zFormat.setOffset(0);
151 | zOutput = createVariable({prefix:"Z"}, zFormat);
152 | } else {
153 | zOutput.disable();
154 | }
155 |
156 | if (!properties.separateWordsWithSpace) {
157 | setWordSeparator("");
158 | }
159 |
160 | sequenceNumber = properties.sequenceNumberStart;
161 | writeln("%");
162 |
163 | if (programName) {
164 | writeComment(programName);
165 | }
166 | if (programComment) {
167 | writeComment(programComment);
168 | }
169 |
170 | // dump machine configuration
171 | var vendor = machineConfiguration.getVendor();
172 | var model = machineConfiguration.getModel();
173 | var description = machineConfiguration.getDescription();
174 |
175 | if (properties.writeMachine && (vendor || model || description)) {
176 | writeComment(localize("Machine"));
177 | if (vendor) {
178 | writeComment(" " + localize("vendor") + ": " + vendor);
179 | }
180 | if (model) {
181 | writeComment(" " + localize("model") + ": " + model);
182 | }
183 | if (description) {
184 | writeComment(" " + localize("description") + ": " + description);
185 | }
186 | }
187 |
188 | if ((getNumberOfSections() > 0) && (getSection(0).workOffset == 0)) {
189 | for (var i = 0; i < getNumberOfSections(); ++i) {
190 | if (getSection(i).workOffset > 0) {
191 | error(localize("Using multiple work offsets is not possible if the initial work offset is 0."));
192 | return;
193 | }
194 | }
195 | }
196 |
197 | // absolute coordinates and feed per min
198 | writeBlock(gAbsIncModal.format(90), gFeedModeModal.format(94));
199 | writeBlock(gPlaneModal.format(17));
200 |
201 | switch (unit) {
202 | case IN:
203 | writeBlock(gUnitModal.format(20));
204 | break;
205 | case MM:
206 | writeBlock(gUnitModal.format(21));
207 | break;
208 | }
209 | }
210 |
211 | function onComment(message) {
212 | writeComment(message);
213 | }
214 |
215 | /** Force output of X, Y, and Z. */
216 | function forceXYZ() {
217 | xOutput.reset();
218 | yOutput.reset();
219 | zOutput.reset();
220 | }
221 |
222 | /** Force output of X, Y, Z, and F on next output. */
223 | function forceAny() {
224 | forceXYZ();
225 | feedOutput.reset();
226 | }
227 |
228 | function onSection() {
229 |
230 | writeln("");
231 |
232 | if (hasParameter("operation-comment")) {
233 | var comment = getParameter("operation-comment");
234 | if (comment) {
235 | writeComment(comment);
236 | }
237 | }
238 |
239 | if (currentSection.getType() == TYPE_JET) {
240 | switch (tool.type) {
241 | case TOOL_LASER_CUTTER:
242 | break;
243 | default:
244 | error(localize("The CNC does not support the required tool/process. Only laser cutting is supported."));
245 | return;
246 | }
247 |
248 | var power = 0;
249 | switch (currentSection.jetMode) {
250 | case JET_MODE_THROUGH:
251 | power = properties.throughPower;
252 | break;
253 | case JET_MODE_ETCHING:
254 | power = properties.etchPower;
255 | break;
256 | case JET_MODE_VAPORIZE:
257 | power = properties.vaporizePower;
258 | break;
259 | default:
260 | error(localize("Unsupported cutting mode."));
261 | return;
262 | }
263 | } else {
264 | error(localize("The CNC does not support the required tool/process. Only laser cutting is supported."));
265 | return;
266 | }
267 |
268 | { // pure 3D
269 | var remaining = currentSection.workPlane;
270 | if (!isSameDirection(remaining.forward, new Vector(0, 0, 1))) {
271 | error(localize("Tool orientation is not supported."));
272 | return;
273 | }
274 | setRotation(remaining);
275 | }
276 |
277 | forceAny();
278 |
279 | var initialPosition = getFramePosition(currentSection.getInitialPosition());
280 | var zIsOutput = false;
281 | if (properties.useZAxis) {
282 | var previousFinalPosition = isFirstSection() ? initialPosition : getFramePosition(getPreviousSection().getFinalPosition());
283 | if (xyzFormat.getResultingValue(previousFinalPosition.z) <= xyzFormat.getResultingValue(initialPosition.z)) {
284 | if (properties.useG0) {
285 | writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
286 | } else {
287 | writeBlock(gMotionModal.format(1), zOutput.format(initialPosition.z), feedOutput.format(highFeedrate));
288 | }
289 | zIsOutput = true;
290 | }
291 | }
292 |
293 | if (properties.useG0) {
294 | writeBlock(gMotionModal.format(0), xOutput.format(initialPosition.x), yOutput.format(initialPosition.y));
295 | } else {
296 | writeBlock(gMotionModal.format(1), xOutput.format(initialPosition.x), yOutput.format(initialPosition.y), feedOutput.format(highFeedrate));
297 | }
298 |
299 | if (properties.useZAxis && !zIsOutput) {
300 | if (properties.useG0) {
301 | writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
302 | } else {
303 | writeBlock(gMotionModal.format(1), zOutput.format(initialPosition.z), feedOutput.format(highFeedrate));
304 | }
305 | }
306 | }
307 |
308 | function onDwell(seconds) {
309 | if (seconds > 99999.999) {
310 | warning(localize("Dwelling time is out of range."));
311 | }
312 | seconds = clamp(0.001, seconds, 99999.999);
313 | writeBlock(gFormat.format(4), "P" + secFormat.format(seconds));
314 | }
315 |
316 | var pendingRadiusCompensation = -1;
317 |
318 | function onRadiusCompensation() {
319 | pendingRadiusCompensation = radiusCompensation;
320 | }
321 |
322 | var powerIsOn = false
323 | function onPower(power) {
324 | if (properties.useZAxis && power) {
325 | if (properties.useG0) {
326 | writeBlock(gMotionModal.format(0), zOutput.format(properties.pierceHeight + getCurrentPosition().z));
327 | } else {
328 | writeBlock(gMotionModal.format(1), zOutput.format(properties.pierceHeight + getCurrentPosition().z), feedOutput.format(highFeedrate));
329 | }
330 | zFormat.setOffset(0);
331 | }
332 | writeBlock(mFormat.format(power ? 3 : 5), 'S1');
333 | powerIsOn = power;
334 | if (power) {
335 | onDwell(properties.pierceDelay);
336 | if (zFormat.isSignificant(properties.pierceHeight)) {
337 | feedOutput.reset();
338 | var f = (hasParameter("operation:tool_feedEntry") ? getParameter("operation:tool_feedEntry") : toPreciseUnit(1000, MM));
339 | zOutput = createVariable({prefix:"Z"}, zFormat);
340 | writeBlock(gMotionModal.format(1), zOutput.format(getCurrentPosition().z), feedOutput.format(f));
341 | zFormat.setOffset(0);
342 | }
343 | } else {
344 | if (zFormat.isSignificant(properties.pierceHeight)) {
345 | zFormat.setOffset(0);
346 | zOutput = createVariable({prefix:"Z"}, zFormat);
347 | }
348 |
349 | var initialPosition = getFramePosition(currentSection.getInitialPosition());
350 | if (properties.useG0) {
351 | writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
352 | } else {
353 | writeBlock(gMotionModal.format(1), zOutput.format(initialPosition.z), feedOutput.format(highFeedrate));
354 | }
355 | writeln("");
356 | }
357 | }
358 |
359 | function onRapid(_x, _y, _z) {
360 | var x = xOutput.format(_x);
361 | var y = yOutput.format(_y);
362 | var z = zOutput.format(_z);
363 | if (x || y) {
364 | if (pendingRadiusCompensation >= 0) {
365 | error(localize("Radius compensation mode cannot be changed at rapid traversal."));
366 | return;
367 | }
368 | if (properties.useG0) {
369 | writeBlock(gMotionModal.format(0), x, y, z);
370 | } else {
371 | writeBlock(gMotionModal.format(1), x, y, z, feedOutput.format(highFeedrate));
372 | }
373 | feedOutput.reset();
374 | }
375 | }
376 |
377 | function onLinear(_x, _y, _z, feed) {
378 | // at least one axis is required
379 | if (pendingRadiusCompensation >= 0) {
380 | // ensure that we end at desired position when compensation is turned off
381 | xOutput.reset();
382 | yOutput.reset();
383 | }
384 | var x = xOutput.format(_x);
385 | var y = yOutput.format(_y);
386 | var f = feedOutput.format(feed);
387 | if (x || y) {
388 | if (pendingRadiusCompensation >= 0) {
389 | error(localize("Radius compensation mode is not supported."));
390 | return;
391 | } else {
392 | writeBlock(gMotionModal.format(1), x, y, f);
393 | }
394 | } else if (f) {
395 | if (getNextRecord().isMotion()) { // try not to output feed without motion
396 | feedOutput.reset(); // force feed on next line
397 | } else {
398 | writeBlock(gMotionModal.format(1), f);
399 | }
400 | }
401 | }
402 |
403 | function onRapid5D(_x, _y, _z, _a, _b, _c) {
404 | error(localize("The CNC does not support 5-axis simultaneous toolpath."));
405 | }
406 |
407 | function onLinear5D(_x, _y, _z, _a, _b, _c, feed) {
408 | error(localize("The CNC does not support 5-axis simultaneous toolpath."));
409 | }
410 |
411 | function forceCircular(plane) {
412 | switch (plane) {
413 | case PLANE_XY:
414 | xOutput.reset();
415 | yOutput.reset();
416 | iOutput.reset();
417 | jOutput.reset();
418 | break;
419 | case PLANE_ZX:
420 | zOutput.reset();
421 | xOutput.reset();
422 | kOutput.reset();
423 | iOutput.reset();
424 | break;
425 | case PLANE_YZ:
426 | yOutput.reset();
427 | zOutput.reset();
428 | jOutput.reset();
429 | kOutput.reset();
430 | break;
431 | }
432 | }
433 |
434 | function onCircular(clockwise, cx, cy, cz, x, y, z, feed) {
435 | if (pendingRadiusCompensation >= 0) {
436 | error(localize("Radius compensation cannot be activated/deactivated for a circular move."));
437 | return;
438 | }
439 |
440 | var start = getCurrentPosition();
441 |
442 | if (isFullCircle()) {
443 | if (isHelical()) {
444 | linearize(tolerance);
445 | return;
446 | }
447 | switch (getCircularPlane()) {
448 | case PLANE_XY:
449 | forceCircular(getCircularPlane());
450 | writeBlock(gMotionModal.format(clockwise ? 2 : 3), xOutput.format(x), yOutput.format(y), iOutput.format(cx - start.x), jOutput.format(cy - start.y), feedOutput.format(feed));
451 | break;
452 | default:
453 | linearize(tolerance);
454 | }
455 | } else {
456 | switch (getCircularPlane()) {
457 | case PLANE_XY:
458 | forceCircular(getCircularPlane());
459 | writeBlock(gMotionModal.format(clockwise ? 2 : 3), xOutput.format(x), yOutput.format(y), zOutput.format(z), iOutput.format(cx - start.x), jOutput.format(cy - start.y), feedOutput.format(feed));
460 | break;
461 | default:
462 | linearize(tolerance);
463 | }
464 | }
465 | }
466 |
467 | var mapCommand = {
468 | COMMAND_STOP:0,
469 | COMMAND_END:2
470 | };
471 |
472 | function onCommand(command) {
473 | switch (command) {
474 | case COMMAND_POWER_ON:
475 | return;
476 | case COMMAND_POWER_OFF:
477 | return;
478 | case COMMAND_LOCK_MULTI_AXIS:
479 | return;
480 | case COMMAND_UNLOCK_MULTI_AXIS:
481 | return;
482 | case COMMAND_BREAK_CONTROL:
483 | return;
484 | case COMMAND_TOOL_MEASURE:
485 | return;
486 | }
487 |
488 | var stringId = getCommandStringId(command);
489 | var mcode = mapCommand[stringId];
490 | if (mcode != undefined) {
491 | writeBlock(mFormat.format(mcode));
492 | } else {
493 | onUnsupportedCommand(command);
494 | }
495 | }
496 |
497 | function onSectionEnd() {
498 | forceAny();
499 | }
500 |
501 | function onClose() {
502 | writeBlock(sOutput.format(0)); // laser off
503 | writeBlock(mFormat.format(30)); // stop program, spindle stop, coolant off
504 | writeln("%");
505 | }
506 |
--------------------------------------------------------------------------------
/SolidWorks/SW_BUILDBOTICS_POST.SRC:
--------------------------------------------------------------------------------
1 | *FANUCM
2 | :SYSTEM=MILL
3 | :LEADING=FALSE
4 | :TRAILING=FALSE
5 | :DECIMAL=TRUE
6 | :QUAD=TRUE
7 | :SPACE=TRUE
8 | :ARCS=CENTER
9 | :METRIC_SHIFT=1
10 | :G_LEFT_PLACES=3
11 | :G_RIGHT_PLACES=5
12 | :G_INT_LEFT_PLACES=2
13 | :INT_LEADING=TRUE
14 | :INT_TRAILING=TRUE
15 | :HELICAL=TRUE
16 | :5AXIS_MILLING=FALSE
17 | :4AXIS_X_MILLING=FALSE
18 | :4AXIS_Y_MILLING=FALSE
19 | :MAXIMUM_LINE=100
20 | :SINGLE_MACROS=YES
21 | :MULT_MACROS=NO
22 | :LAYOUT_MACROS=NO
23 | :MACROS_CALL=BEFORE
24 | :MACROS_MULT=AFTER
25 | :MACROS_LAYOUT=BEFORE
26 | :MACROS_MAIN=AFTER
27 | :MACROS_OUT=CALLED
28 | :MACROS_TAPE=SAME
29 | :MACROS_XYZ=TRUE
30 | :MACROS_ROTATE=TRUE
31 | :MACRO_ROTATE_X=TRUE
32 | :MACRO_ROTATE_Y=FALSE
33 | :MACRO_ROTATE_Z=FALSE
34 | *-----------------------------------
35 | :ATTRNAME=MACHINE NAME
36 | :ATTRTYPE=DESCRIPTOR
37 | :ATTRVTYPE=CHARACTER
38 | :ATTRSEL=N
39 | :ATTRINLEN=60
40 | :ATTRSHORT=Machine Name
41 | :ATTRDEFAULT=Buildbotics
42 | :CODETYPE=FORMAT
43 | :WORD_ADDRESS_BEF=|(|MACHINE=
44 | :WORD_ADDRESS_AFT=|)
45 | :LEFT_PLACES=0
46 | :RIGHT_PLACES=0
47 | :UNITFLAG=NON_CONVERT
48 | :ATTRUSED=1
49 | :ATTREND
50 | *-----------------------------------
51 | :ATTRNAME=CONTROLLER TYPE
52 | :ATTRTYPE=DESCRIPTOR
53 | :ATTRVTYPE=CHARACTER
54 | :ATTRSEL=N
55 | :ATTRINLEN=60
56 | :ATTRSHORT=Controller Type
57 | :ATTRDEFAULT=Buildbotics
58 | :CODETYPE=FORMAT
59 | :WORD_ADDRESS_BEF=|(|CONTROLLER=
60 | :WORD_ADDRESS_AFT=|)
61 | :LEFT_PLACES=0
62 | :RIGHT_PLACES=0
63 | :UNITFLAG=NON_CONVERT
64 | :ATTRUSED=1
65 | :ATTREND
66 | *-----------------------------------
67 | :ATTRNAME=MILL Z HOME
68 | :ATTRTYPE=DESCRIPTOR
69 | :ATTRVTYPE=DECIMAL
70 | :ATTRSEL=N
71 | :ATTRINLEN=3
72 | :ATTRSHORT=Z Home
73 | :ATTRDEFAULT=20
74 | :ATTREND
75 | *-----------------------------------
76 | :ATTRNAME=TRAVERSE RATE
77 | :ATTRTYPE=DESCRIPTOR
78 | :ATTRVTYPE=DECIMAL
79 | :ATTRSEL=N
80 | :ATTRINLEN=10
81 | :ATTRSHORT=Traverse Rate
82 | :ATTRDEFAULT=250
83 | :ATTREND
84 | *-----------------------------------
85 | :ATTRNAME=SYS LICENSE
86 | :ATTRTYPE=DESCRIPTOR
87 | :ATTRVTYPE=CHARACTER
88 | :ATTRSEL=N
89 | :ATTRINLEN=60
90 | :ATTRSHORT=System License Number
91 | :ATTRDEFAULT=
92 | :CODETYPE=FORMAT
93 | :WORD_ADDRESS_BEF=|(|SYSTEM|LICENSE|NUMBER=
94 | :WORD_ADDRESS_AFT=|)
95 | :LEFT_PLACES=0
96 | :RIGHT_PLACES=0
97 | :UNITFLAG=NON_CONVERT
98 | :ATTRUSED=1
99 | :ATTREND
100 | *-----------------------------------
101 | :ATTRNAME=SYS EXPIRATION DATE
102 | :ATTRTYPE=DESCRIPTOR
103 | :ATTRVTYPE=CHARACTER
104 | :ATTRSEL=N
105 | :ATTRINLEN=60
106 | :ATTRSHORT=System License Expiration Date
107 | :ATTRDEFAULT=
108 | :CODETYPE=FORMAT
109 | :WORD_ADDRESS_BEF=|(|SYSTEM|LICENSE|EXPIRATION|DATE=
110 | :WORD_ADDRESS_AFT=|)
111 | :LEFT_PLACES=0
112 | :RIGHT_PLACES=0
113 | :UNITFLAG=NON_CONVERT
114 | :ATTRUSED=1
115 | :ATTREND
116 | *-----------------------------------
117 | :LIBRARY=.\SW_BUILDBOTICS_POST.LIB
118 | :LIBRARY=..\..\CAMWorksData\UPG\MasterLibraryFiles\MILL.LIB
119 | *-----------------------------------
120 | :ATTRNAME=attachable
121 | :ATTRTYPE=LIST
122 | :ATTRSEL=N
123 | :ATTRTITLE=Attachable
124 | :ATTRLIST=program stop
125 | :ATTRLISTDEF=1
126 | :ATTRLIST=optional stop
127 | :ATTRLISTDEF=1
128 | :ATTRUSED=1
129 | :ATTRDEFAULT=1
130 | :ATTREND
131 | *-----------------------------------
132 | :ATTRNAME=setup
133 | :ATTRTYPE=LIST
134 | :ATTRSEL=N
135 | :ATTRTITLE=Setup
136 | :ATTRLIST=thickness
137 | :ATTRLISTDEF=.125
138 | :ATTRUSED=1
139 | :ATTRDEFAULT=1
140 | :ATTREND
141 | *-----------------------------------
142 | :OPERID=MILL_DRILLING
143 | :OPERSUB=DRILLING
144 | :OPEREND
145 | *-----------------------------------
146 | :OPERID=MILL_DRILLING
147 | :OPERSUB=SPOT_DRILLING
148 | :OPEREND
149 | *-----------------------------------
150 | :OPERID=MILL_DRILLING
151 | :OPERSUB=PECKING
152 | :OPEREND
153 | *-----------------------------------
154 | :OPERID=MILL_DRILLING
155 | :OPERSUB=TAPPING
156 | :OPEREND
157 | *-----------------------------------
158 | :OPERID=MILL_DRILLING
159 | :OPERSUB=BORING
160 | :OPEREND
161 | *-----------------------------------
162 | :OPERID=MILL_DRILLING
163 | :OPERSUB=HIGH_SPEED_PECKING
164 | :OPEREND
165 | *-----------------------------------
166 | :OPERID=MILL_DRILLING
167 | :OPERSUB=VARIABLE_PECKING
168 | :OPEREND
169 | *-----------------------------------
170 | :OPERID=MILL_DRILLING
171 | :OPERSUB=REVERSE_TAPPING
172 | :OPEREND
173 | *-----------------------------------
174 | :OPERID=MILL_DRILLING
175 | :OPERSUB=REAMING
176 | :OPEREND
177 | *-----------------------------------
178 | :OPERID=MILL_DRILLING
179 | :OPERSUB=REAMING_DWELL
180 | :OPEREND
181 | *-----------------------------------
182 | :OPERID=MILL_DRILLING
183 | :OPERSUB=BORE_DWELL
184 | :OPEREND
185 | *-----------------------------------
186 | :OPERID=MILL_DRILLING
187 | :OPERSUB=BACK_BORING
188 | :OPEREND
189 | *-----------------------------------
190 | :OPERID=MILL_DRILLING
191 | :OPERSUB=FINE_BORING
192 | :OPEREND
193 | *-----------------------------------
194 | :OPERID=MILL_LACE
195 | :OPERLIST=abs inc
196 | :OPERLIST=work coord
197 | :OPEREND
198 | *-----------------------------------
199 | :OPERID=MILL_POCKET
200 | :OPERLIST=abs inc
201 | :OPERLIST=work coord
202 | :OPEREND
203 | *-----------------------------------
204 | :OPERID=MILL_PROFILING
205 | :OPERLIST=abs inc
206 | :OPERLIST=work coord
207 | :OPEREND
208 | *-----------------------------------
209 | :OPERID=MILL_MISC
210 | :OPERLIST=abs inc
211 | :OPERLIST=work coord
212 | :OPEREND
213 | *-----------------------------------
214 | :OPERID=MILL_UV_CUT
215 | :OPERLIST=abs inc
216 | :OPERLIST=work coord
217 | :OPEREND
218 | *-----------------------------------
219 | :OPERID=MILL_SLICE_CUT
220 | :OPERLIST=abs inc
221 | :OPERLIST=work coord
222 | :OPEREND
223 | *-----------------------------------
224 | :OPERID=MILL_ROUGH_CUT
225 | :OPERLIST=abs inc
226 | :OPERLIST=work coord
227 | :OPEREND
228 | *-----------------------------------
229 | :OPERID=MILL_CURVE_CUT
230 | :OPERLIST=abs inc
231 | :OPERLIST=work coord
232 | :OPEREND
233 | *-----------------------------------
234 | :OPERID=MILL_TOPO_CUT
235 | :OPERLIST=abs inc
236 | :OPERLIST=work coord
237 | :OPEREND
238 | *-----------------------------------
239 | :OPERID=MILL_FREEFORM_CUT
240 | :OPERLIST=abs inc
241 | :OPERLIST=work coord
242 | :OPEREND
243 | *-----------------------------------
244 | :OPERID=MILL_PENCIL_CUT
245 | :OPERLIST=abs inc
246 | :OPERLIST=work coord
247 | :OPEREND
248 | *-----------------------------------
249 | :OPERID=MILL_MACRO
250 | :OPEREND
251 | *------------------------------
252 | :SECTION=START_OF_TAPE
253 | :T:
254 | *:T:
255 | *
256 | :SECTION=INIT_TOOL_CHANGE_MILL
257 | :T:
258 | :T: (Stop Spindle)
259 | :T:
260 | :T:
261 | :T:
262 | :T: P<%:10> *
263 | *:SECTION=INIT_PRELOAD_TOOL_CHANGE_MILL
264 | *
265 | *:SECTION=INIT_PRELOAD_TOOL_CHANGE_MILL
266 | *
267 | :SECTION=SUB_TOOL_CHANGE_MILL
268 | :T:
269 | :T: (Stop Spindle)
270 | :T:
271 | :T:
272 | :T:
273 | :T: P<%:10> *
274 | *:SECTION=SUB_PRELOAD_TOOL_CHANGE_MILL
275 | *
276 | *:SECTION=SUB_PRELOAD_TOOL_CHANGE_MILL
277 | *
278 | :SECTION=FIRST_RAPID_Z_MOVE_DOWN_MILL
279 | :T:
280 | *
281 | *:SECTION=FIRST_RAPID_Z_PRELOAD_DOWN_MILL
282 | *
283 | *:SECTION=FIVE_AXIS_FIRST_RAPID_Z_DOWN
284 | *
285 | :SECTION=RAPID_Z_MOVE_DOWN_MILL
286 | :T:
287 | *
288 | *:SECTION=FIVE_AXIS_RAPID_Z_MOVE_DOWN
289 | *
290 | :SECTION=RAPID_Z_MOVE_UP_MILL
291 | :T:
292 | *
293 | *:SECTION=FIVE_AXIS_RAPID_Z_MOVE_UP
294 | *
295 | :SECTION=LAST_RAPID_Z_MOVE_UP_MILL
296 | :T:
297 | *
298 | *:SECTION=FIVE_AXIS_LAST_RAPID_Z_MOVE_UP
299 | *
300 | *:SECTION=RAPID_FROM_TOOL_CHANGE_MILL
301 | *
302 | *:SECTION=RAPID_LEADIN_FROM_TOOL_CHANGE_MILL
303 | *
304 | *:SECTION=FIVE_AXIS_RAPID_FROM_T_CHANGE
305 | *
306 | :SECTION=RAPID_MOVE_MILL
307 | :T:
308 | :T:
309 | *
310 | :SECTION=RAPID_LEADIN_MOVE_MILL
311 | :T:
312 | :T:
313 | *:T:LEADIN=<%:LEADIN>
314 | *
315 | :SECTION=RAPID_LEADOUT_MOVE_MILL
316 | :T:
317 | *
318 | *:SECTION=FIVE_AXIS_RAPID_MOVE_MILL
319 | *
320 | *:SECTION=RAPID_TO_TOOL_CHANGE_MILL
321 | *
322 | *:SECTION=RAPID_LEADOUT_TO_TOOL_CHANGE_MILL
323 | *
324 | *:SECTION=FIVE_AXIS_RAPID_TO_T_CHANGE
325 | *
326 | :SECTION=FEED_Z_MOVE_DOWN_MILL
327 | :T:
328 | *
329 | *:SECTION=FIVE_AXIS_FEED_Z_MOVE_DOWN
330 | *
331 | :SECTION=LINE_LEADIN_MOVE_MILL
332 | :T:
333 | *
334 | :SECTION=LINE_MOVE_MILL
335 | :T:
336 | *
337 | *:SECTION=FASTLINE
338 | *
339 | *:SECTION=FIVE_AXIS_LINE_MOVE_MILL
340 | *
341 | :SECTION=LINE_LEADOUT_MOVE_MILL
342 | :T:
343 | *
344 | :SECTION=ARC_MOVE_MILL
345 | :T:
346 | *
347 | :SECTION=RADIUS_MOVE_MILL
348 | :T:
349 | *
350 | *:SECTION=DRILL_POSITION
351 | *
352 | :SECTION=DRILLING_CYCLE
353 | :T:
354 | *
355 | :SECTION=SPOT_DRILLING_CYCLE
356 | :T: P<%:(dwell*1)>
357 | *
358 | :SECTION=PECKING_CYCLE
359 | :T:
360 | *
361 | :SECTION=VARIABLE_PECKING_CYCLE
362 | :T:
363 | *
364 | :SECTION=TAPPING_CYCLE
365 | :T:
366 | *
367 | *:SECTION=RIGID_TAPPING_CYCLE
368 | *
369 | :SECTION=REAMING_CYCLE
370 | :T:
371 | *
372 | :SECTION=BORING_CYCLE
373 | :T:
374 | *
375 | :SECTION=BACK_BORING_CYCLE
376 | :T: Q<#:shift_amount>
377 | *
378 | :SECTION=BORE_DWELL_CYCLE
379 | :T: