├── .gitignore
├── Plugins
├── GPlot.help
├── Phlatboyz
│ ├── Constants.rb
│ ├── MyConstants-example.rb
│ ├── Observers.rb
│ ├── PSUpgrade.rb
│ ├── Phlat3D.rb
│ ├── PhlatCut.rb
│ ├── PhlatEdge.rb
│ ├── PhlatMill.rb
│ ├── PhlatOffset.rb
│ ├── PhlatProgress.rb
│ ├── PhlatScript GNU Licence Info
│ │ ├── COPYING.txt
│ │ ├── COPYING_LESSER.txt
│ │ ├── Copyright_Information.txt
│ │ └── lgplv3-147x51.png
│ ├── PhlatTool.rb
│ ├── PhlatboyzMethods.rb
│ ├── Phlatscript.rb
│ ├── Resources
│ │ └── en-US
│ │ │ ├── PhlatBoyz.strings
│ │ │ └── localizable.strings
│ ├── html
│ │ ├── afterinstall.html
│ │ ├── changes.html
│ │ ├── edgemenu.html
│ │ ├── help.html
│ │ ├── howto-changegplot.html
│ │ ├── howto_3d.html
│ │ ├── howto_chamfer.html
│ │ ├── howto_changeconstants.html
│ │ ├── howto_options.html
│ │ ├── howto_phlatbones.html
│ │ ├── howto_profileexchange.html
│ │ ├── howto_ramping.html
│ │ ├── images
│ │ │ ├── SketchUcam-Window-Logo.png
│ │ │ ├── bones01.png
│ │ │ ├── bones02.png
│ │ │ ├── bones03.png
│ │ │ ├── bones04.png
│ │ │ ├── bones05.png
│ │ │ ├── bones06.png
│ │ │ ├── bones07.png
│ │ │ ├── bones08.png
│ │ │ ├── bones08png.png
│ │ │ ├── bones09.png
│ │ │ ├── bonesbit.png
│ │ │ ├── chamfer-diag.png
│ │ │ ├── chamfer-s1.png
│ │ │ ├── chamfer-s2.png
│ │ │ ├── chamfer-s3.png
│ │ │ ├── chamfer01.png
│ │ │ ├── chamfer02.png
│ │ │ ├── chamfer03.png
│ │ │ ├── csink01.png
│ │ │ ├── csink02.png
│ │ │ ├── csink03.png
│ │ │ ├── csink04.png
│ │ │ ├── csinkwooda.png
│ │ │ ├── edgecontext.png
│ │ │ ├── holepattern01.png
│ │ │ ├── holepattern02.png
│ │ │ ├── holepattern03.png
│ │ │ ├── howto01.png
│ │ │ ├── howto02.png
│ │ │ ├── howto03.png
│ │ │ ├── laser1a.png
│ │ │ ├── laser2a.png
│ │ │ ├── laser3a.png
│ │ │ ├── options-feature.png
│ │ │ ├── options-file.png
│ │ │ ├── options-holefeatures.png
│ │ │ ├── options-machine.png
│ │ │ ├── options-misc.png
│ │ │ ├── options-tool.png
│ │ │ ├── options.png
│ │ │ ├── optsummary.png
│ │ │ ├── params.png
│ │ │ ├── phlat01.png
│ │ │ ├── phlatbones.png
│ │ │ ├── pocket1.png
│ │ │ ├── pocket2.png
│ │ │ ├── pocket3.png
│ │ │ ├── pocket4.png
│ │ │ ├── profileload.png
│ │ │ ├── profiles.png
│ │ │ ├── profilesave.png
│ │ │ ├── quicktoolbar.png
│ │ │ ├── ramp01.png
│ │ │ ├── ramp01a.png
│ │ │ ├── ramp02.png
│ │ │ ├── ramp03.png
│ │ │ ├── ramp04.png
│ │ │ ├── ramp05.png
│ │ │ ├── ramp06.png
│ │ │ ├── ramp07.png
│ │ │ ├── ramp08.png
│ │ │ ├── ramp09.png
│ │ │ ├── ramp10.png
│ │ │ ├── ramplimit.png
│ │ │ ├── sfm.png
│ │ │ ├── sfm2.png
│ │ │ ├── toolbar.png
│ │ │ ├── toolchange01.png
│ │ │ └── toolsmenu.png
│ │ ├── machelp.html
│ │ ├── quicktools.html
│ │ ├── setParamsWebDialog.html
│ │ ├── sketchucamtoolbar.html
│ │ ├── style.css
│ │ └── toolsmenu.html
│ ├── images
│ │ ├── OBicon_large.png
│ │ ├── OBicon_small.png
│ │ ├── Pocket_large.png
│ │ ├── Pocket_small.png
│ │ ├── andy.png
│ │ ├── bracket_large.png
│ │ ├── bracket_small.png
│ │ ├── cboretool_large.png
│ │ ├── cboretool_small.png
│ │ ├── centerlinetool_large.png
│ │ ├── centerlinetool_small.png
│ │ ├── comment_large.png
│ │ ├── comment_small.png
│ │ ├── csinktool_large.png
│ │ ├── csinktool_small.png
│ │ ├── cursor_centerlinetool.png
│ │ ├── cursor_erase_centerlinecut.png
│ │ ├── cursor_erase_foldcut.png
│ │ ├── cursor_erase_insidecut.png
│ │ ├── cursor_erase_outsidecut.png
│ │ ├── cursor_erase_plungecut.png
│ │ ├── cursor_erase_tabcut.png
│ │ ├── cursor_erasetool.png
│ │ ├── cursor_foldtool.png
│ │ ├── cursor_insidecuttool.png
│ │ ├── cursor_outsidecuttool.png
│ │ ├── cursor_plungetool.png
│ │ ├── cursor_safetool.png
│ │ ├── cursor_tabtool.png
│ │ ├── cursor_vtabtool.png
│ │ ├── erasetool_large.png
│ │ ├── erasetool_small.png
│ │ ├── foldtool_large.png
│ │ ├── foldtool_small.png
│ │ ├── gcode_large.png
│ │ ├── gcode_small.png
│ │ ├── helptool_large.png
│ │ ├── helptool_small.png
│ │ ├── insidecuttool_large.png
│ │ ├── insidecuttool_small.png
│ │ ├── joiner_large.png
│ │ ├── joiner_small.png
│ │ ├── outsidecuttool_large.png
│ │ ├── outsidecuttool_small.png
│ │ ├── parameterstool_large.png
│ │ ├── parameterstool_small.png
│ │ ├── phlatboyz_homepage_large.png
│ │ ├── phlatboyz_homepage_small.png
│ │ ├── plungetool_large.png
│ │ ├── plungetool_small.png
│ │ ├── reorder_large.png
│ │ ├── reorder_small.png
│ │ ├── rotate_large.png
│ │ ├── rotate_small.png
│ │ ├── safetool_large.png
│ │ ├── safetool_small.png
│ │ ├── tabtool_large.png
│ │ ├── tabtool_small.png
│ │ ├── toolchange_large.png
│ │ ├── toolchange_small.png
│ │ ├── zerotool_large.png
│ │ └── zerotool_small.png
│ ├── tools
│ │ ├── CenterLineCut.rb
│ │ ├── CenterLineTool.rb
│ │ ├── ChamferWizard.rb
│ │ ├── CutTool.rb
│ │ ├── EraseTool.rb
│ │ ├── FoldCut.rb
│ │ ├── FoldTool.rb
│ │ ├── GcodeUtil.rb
│ │ ├── HelpTool.rb
│ │ ├── HomepageTool.rb
│ │ ├── Ky_Reorder_Groups.rb
│ │ ├── OBCtool.rb
│ │ ├── OffsetCut.rb
│ │ ├── ParametersTool.rb
│ │ ├── PhJoiner.rb
│ │ ├── PhOptions.rb
│ │ ├── PhPocketCut.rb
│ │ ├── PhPocketTool.rb
│ │ ├── PhlatArc.rb
│ │ ├── PhlattenTool.rb
│ │ ├── PlungeCut.rb
│ │ ├── PlungeTool.rb
│ │ ├── ProfilesTool.rb
│ │ ├── Quicktools.rb
│ │ ├── RampTabTool.rb
│ │ ├── SafeTool.rb
│ │ ├── TabCut.rb
│ │ ├── TabTool.rb
│ │ ├── TestTool.rb
│ │ └── ZeroTool.rb
│ └── utils
│ │ ├── IniParser.rb
│ │ └── SketchupDirectoryUtils.rb
├── _gplot.exe
├── airfoil_dat.rb
├── attributes.rb
├── gplot.exe
├── gplot.rb
├── phlatBone.rb
├── phlatBone
│ ├── cursor_radbone.png
│ ├── cursor_radbone_multi.png
│ ├── cursor_tbone.png
│ ├── cursor_tbone_multi.png
│ ├── radBoneMultiIn.png
│ ├── radBoneMultiOut.png
│ ├── radBoneSingle.png
│ ├── tBoneMultiIn.png
│ ├── tBoneMultiOut.png
│ ├── tBoneSingle.png
│ └── toolDiameter.png
├── phlatboyz.rb
├── phlatboyztools.rb
└── test
│ ├── data
│ ├── sample.ini
│ └── wrong-sample.ini
│ └── tests
│ ├── HashableTest.rb
│ ├── IniGeneratorTest.rb
│ ├── IniParserTest.rb
│ ├── PhlatTests.rb
│ └── TestBase.rb
├── README.md
├── docs
├── afterinstall.html
├── changes.html
├── edgemenu.html
├── howto-changegplot.html
├── howto_3d.html
├── howto_chamfer.html
├── howto_changeconstants.html
├── howto_options.html
├── howto_phlatbones.html
├── howto_profileexchange.html
├── howto_ramping.html
├── icons
│ ├── OBicon_large.png
│ ├── OBicon_small.png
│ ├── Pocket_large.png
│ ├── Pocket_small.png
│ ├── SketchUcam-Window-Logo.png
│ ├── andy.png
│ ├── bones01.png
│ ├── bones02.png
│ ├── bones03.png
│ ├── bones04.png
│ ├── bones05.png
│ ├── bones06.png
│ ├── bones07.png
│ ├── bones08.png
│ ├── bones08png.png
│ ├── bones09.png
│ ├── bonesbit.png
│ ├── bracket_large.png
│ ├── bracket_small.png
│ ├── cboretool_large.png
│ ├── cboretool_small.png
│ ├── centerlinetool_large.png
│ ├── centerlinetool_small.png
│ ├── chamfer-diag.png
│ ├── chamfer-s1.png
│ ├── chamfer-s2.png
│ ├── chamfer-s3.png
│ ├── chamfer01.png
│ ├── chamfer02.png
│ ├── chamfer03.png
│ ├── comment_large.png
│ ├── comment_small.png
│ ├── csink01.png
│ ├── csink02.png
│ ├── csink03.png
│ ├── csink04.png
│ ├── csinktool_large.png
│ ├── csinktool_small.png
│ ├── csinkwooda.png
│ ├── cursor_centerlinetool.png
│ ├── cursor_erase_centerlinecut.png
│ ├── cursor_erase_foldcut.png
│ ├── cursor_erase_insidecut.png
│ ├── cursor_erase_outsidecut.png
│ ├── cursor_erase_plungecut.png
│ ├── cursor_erase_tabcut.png
│ ├── cursor_erasetool.png
│ ├── cursor_foldtool.png
│ ├── cursor_insidecuttool.png
│ ├── cursor_outsidecuttool.png
│ ├── cursor_plungetool.png
│ ├── cursor_safetool.png
│ ├── cursor_tabtool.png
│ ├── cursor_vtabtool.png
│ ├── edgecontext.png
│ ├── erasetool_large.png
│ ├── erasetool_small.png
│ ├── foldtool_large.png
│ ├── foldtool_small.png
│ ├── gcode_large.png
│ ├── gcode_small.png
│ ├── helptool_large.png
│ ├── helptool_small.png
│ ├── holepattern01.png
│ ├── holepattern02.png
│ ├── holepattern03.png
│ ├── howto01.png
│ ├── howto02.png
│ ├── howto03.png
│ ├── insidecuttool_large.png
│ ├── insidecuttool_small.png
│ ├── joiner_large.png
│ ├── joiner_small.png
│ ├── laser1a.png
│ ├── laser2a.png
│ ├── laser3a.png
│ ├── options-feature.png
│ ├── options-file.png
│ ├── options-holefeatures.png
│ ├── options-machine.png
│ ├── options-misc.png
│ ├── options-tool.png
│ ├── options.png
│ ├── optsummary.png
│ ├── outsidecuttool_large.png
│ ├── outsidecuttool_small.png
│ ├── parameterstool_large.png
│ ├── parameterstool_small.png
│ ├── params.png
│ ├── phlat01.png
│ ├── phlatbones.png
│ ├── phlatboyz_homepage_large.png
│ ├── phlatboyz_homepage_small.png
│ ├── plungetool_large.png
│ ├── plungetool_small.png
│ ├── pocket1.png
│ ├── pocket2.png
│ ├── pocket3.png
│ ├── pocket4.png
│ ├── profileload.png
│ ├── profiles.png
│ ├── profilesave.png
│ ├── quicktoolbar.png
│ ├── ramp01.png
│ ├── ramp01a.png
│ ├── ramp02.png
│ ├── ramp03.png
│ ├── ramp04.png
│ ├── ramp05.png
│ ├── ramp06.png
│ ├── ramp07.png
│ ├── ramp08.png
│ ├── ramp09.png
│ ├── ramp10.png
│ ├── ramplimit.png
│ ├── reorder_large.png
│ ├── reorder_small.png
│ ├── rotate_large.png
│ ├── rotate_small.png
│ ├── safetool_large.png
│ ├── safetool_small.png
│ ├── sfm.png
│ ├── sfm2.png
│ ├── tabtool_large.png
│ ├── tabtool_small.png
│ ├── toolbar.png
│ ├── toolchange01.png
│ ├── toolchange_large.png
│ ├── toolchange_small.png
│ ├── toolsmenu.png
│ ├── zerotool_large.png
│ └── zerotool_small.png
├── images
│ ├── SketchUcam-Window-Logo.png
│ ├── bones01.png
│ ├── bones02.png
│ ├── bones03.png
│ ├── bones04.png
│ ├── bones05.png
│ ├── bones06.png
│ ├── bones07.png
│ ├── bones08.png
│ ├── bones08png.png
│ ├── bones09.png
│ ├── bonesbit.png
│ ├── chamfer-diag.png
│ ├── chamfer-s1.png
│ ├── chamfer-s2.png
│ ├── chamfer-s3.png
│ ├── chamfer01.png
│ ├── chamfer02.png
│ ├── chamfer03.png
│ ├── csink01.png
│ ├── csink02.png
│ ├── csink03.png
│ ├── csink04.png
│ ├── csinkwooda.png
│ ├── edgecontext.png
│ ├── holepattern01.png
│ ├── holepattern02.png
│ ├── holepattern03.png
│ ├── howto01.png
│ ├── howto02.png
│ ├── howto03.png
│ ├── laser1a.png
│ ├── laser2a.png
│ ├── laser3a.png
│ ├── options-feature.png
│ ├── options-file.png
│ ├── options-holefeatures.png
│ ├── options-machine.png
│ ├── options-misc.png
│ ├── options-tool.png
│ ├── options.png
│ ├── optsummary.png
│ ├── params.png
│ ├── phlat01.png
│ ├── phlatbones.png
│ ├── pocket1.png
│ ├── pocket2.png
│ ├── pocket3.png
│ ├── pocket4.png
│ ├── profileload.png
│ ├── profiles.png
│ ├── profilesave.png
│ ├── quicktoolbar.png
│ ├── ramp01.png
│ ├── ramp01a.png
│ ├── ramp02.png
│ ├── ramp03.png
│ ├── ramp04.png
│ ├── ramp05.png
│ ├── ramp06.png
│ ├── ramp07.png
│ ├── ramp08.png
│ ├── ramp09.png
│ ├── ramp10.png
│ ├── ramplimit.png
│ ├── sfm.png
│ ├── sfm2.png
│ ├── toolbar.png
│ ├── toolchange01.png
│ └── toolsmenu.png
├── index.html
├── machelp.html
├── make.bat
├── make.php
├── quicktools.html
├── setParamsWebDialog.html
├── sketchucamtoolbar.html
├── style.css
└── toolsmenu.html
├── howtobuild.txt
├── make.bat
├── make.ex
├── maked.bat
├── move.php
├── notes.html
└── phrev.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | *.skp
2 | *.cnc
3 | *.nc
4 | DD*.*
5 | Components
6 | Materials
7 | Importers
8 | Styles
9 | Tools/*
10 | Resources
11 | *.rbz
12 | SketchUp.exe
13 | *.dll
14 | TIG*.*
15 | smustard*
16 | *.bak
17 | freedxf*
18 | Examples
19 | ModelerGeometry_3.02_8.drx
20 | *.lnk
21 | BsSndRpt.exe
22 | glcards.dat
23 | opensourcecredits.html
24 | phrev.dat
25 | Plugins/phrev.dat
26 | Plugins/examples.rb
27 | Plugins/Ocean/ocean.rb
28 | Plugins/ocean_extension.rb
29 | Plugins/TIG-Smart_offset/Thumbs.db
30 | sdk plugins/COLLADASchema.xsd
31 | Support/SketchUp.dat
32 | Plugins/Utilities/utilitiestools.rb
33 | Plugins/utilities.rb
34 | drivers.ini
35 | makehere.bat
36 | PhlatScript GNU Licence Info
37 | 2DTools
38 | Attribs*
39 | BZ*
40 | Cadalog_Gear*
41 | centerpoint*
42 | DM*
43 | ExtrudeTools*
44 | Plugins/CNC_Files/*
45 | Plugins/CNC-profile.rb
46 | Plugins/ChrisP_RadialMove_EN.rb
47 | Plugins/bezierspline.rb
48 | Plugins/2D#.rb
49 | .DS_Store
50 | Plugins/deBabelizer.rb
51 | Plugins/drawhelix14.rb
52 | Plugins/flattery*
53 | Plugins/Fredo*
54 | Plugins/flightpath.rb
55 | Helix*
56 | Plugins/hideall.rb
57 | Plugins/LibTraductor.rb
58 | Plugins/origPhlat3d.rb
59 | Plugins/phlatBone/phlatBone_prefs
60 | Plugins/Phlatboyz/Profiles/default.tpi
61 | Plugins/Phlatboyz/Profiles/MyOptions.ini
62 | Plugins/Phlatboyz/Profiles/Paul.tpi
63 | Plugins/Phlatboyz/Profiles/phlatBone_prefs
64 | Plugins/Phlatboyz/strscan.rb
65 | Plugins/Phlatboyz/TRUEPLUNGE.TXT
66 | Plugins/PhlatScript Installation Instructions.pdf
67 | Plugins/PocketTool.r_b
68 | Plugins/RepairBL_Phlatten_v1.2.rb
69 | Plugins/skp_to_dxf.rb
70 | Plugins/TRUEPLUNGE.TXT
71 | TT*
72 | Plugins/Phlatboyz/MyConstants.rb
73 | Plugins/Phlatboyz/inifile.rb
74 | Plugins/thing.rb
75 | Plugins/!autoruby.rb
76 | Plugins/Phlatboyz/_MyConstants._rb
77 | Plugins/stray_lines.rb
78 | Plugins/jf_zoom_selection.rb
79 | Plugins/Phlatboyz/html/images/csink02a.png
80 | Plugins/SyncToy_*
81 | Plugins/sr_cutlist*
82 | Plugins/as_facecentroid*
83 | Plugins/PointTool*
84 | Plugins/voronoi*
85 | Plugins/delauney3.rb
86 | Plugins/sketchup-stl*
87 | Plugins/Phlatboyz/doc*
88 | Plugins/nb_skptolaser/nb_skptolaser.rb
89 | Plugins/nb_skptolaser.rb
90 | Plugins/nb_skptolaser/gpl.txt
91 | Plugins/__MACOSX/nb_skptolaser/._.DS_Store
92 | Plugins/__MACOSX/nb_skptolaser/._gpl.txt
93 | doc/created.rid
94 | SyncToy_80174e01-d9bf-4e36-805c-d4d62b03631a.dat
95 | Plugins/cpoints.rb
96 | Plugins/fretboard.rb
97 | Plugins/thesender.bat
98 | Plugins/thesender.rb
99 |
--------------------------------------------------------------------------------
/Plugins/GPlot.help:
--------------------------------------------------------------------------------
1 | GPlot
2 |
3 | What is it for?
4 | This program is for previewing Gcode programs so you can see where the tool will move.
5 | Previewing allows you to make sure that you are getting what you expected before you
6 | send the file to the machine.
7 |
8 | How do I manipulate the drawing?
9 | Hold left mouse and drag = move the drawing around
10 | Scroll wheel roll = zoom
11 | Middle/right mouse hold and drag = rotate drawing.
12 |
13 | You can change the line colours by accessing the Plotter|Colours menu.
14 |
15 | Reset to the default view using the Plotter|Refresh from Code menu.
16 |
17 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/Observers.rb:
--------------------------------------------------------------------------------
1 |
2 | #require 'Phlatboyz/Constants.rb'
3 | require 'Phlatboyz/PSUpgrade.rb'
4 |
5 | module PhlatScript
6 |
7 | class AppChangeObserver < Sketchup::AppObserver
8 |
9 | def onNewModel(model)
10 | PhlatScript.setModelOptions(model)
11 | model.add_observer(PhlatScript.modelChangeObserver)
12 | end
13 |
14 | def onOpenModel(model)
15 | if PhlatScript.tryUpgrade? # defaults to false as of V1.4a
16 | PSUpgrader.upgrade
17 | end
18 | PhlatScript.setModelOptions(model)
19 | model.add_observer(PhlatScript.modelChangeObserver)
20 | end
21 |
22 | end
23 |
24 | class ModelChangeObserver < Sketchup::ModelObserver
25 |
26 | def onSaveModel(model)
27 | PhlatScript.doSave(model)
28 | end
29 |
30 | end
31 |
32 | end
33 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/PSUpgrade.rb:
--------------------------------------------------------------------------------
1 | # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
2 | # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
3 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
4 |
5 | # 1.0 (2009-9-1) - Support for upgrading PhlatscripT 0.918 models to 0.919
6 |
7 |
8 | module PhlatScript
9 |
10 | class PSUpgrader
11 |
12 | attr_accessor :upgrade
13 |
14 | def PSUpgrader.upgrade
15 | ps = PSUpgrader.new
16 | ps.upgrade_918
17 | UI.messagebox("Upgrade Complete") if ps.upgrade
18 | return (ps.upgrade ? true : false)
19 | end
20 |
21 | def initialize
22 | @upgrade = nil
23 | end
24 |
25 | def upgrade?(version, raise_on_false=true)
26 | if (@upgrade.nil?)
27 | @upgrade = (6 == UI.messagebox("This model appears to be marked up in version #{version} of the PhlatscripT. Upgrading will remove all grouping. Would you like to upgrade it now?", MB_YESNO))
28 | end
29 | raise "Upgrade declined" if (!@upgrade && raise_on_false)
30 | return @upgrade
31 | end
32 |
33 | def process_edge_918(e)
34 | ct = e.get_attribute("phlatboyzdictionary", "edge_type", "")
35 | if ["inside_cut", "outside_cut", "fold_cut", "centerline_cut"].include?(ct)
36 | cf = e.get_attribute("phlatboyzdictionary", "cut_depth_factor", nil)
37 | if (cf) && (cf < 2) && (self.upgrade?("0.918"))
38 | new_cf = (cf*100)
39 | e.set_attribute("phlatboyzdictionary", "cut_depth_factor", new_cf)
40 | end
41 | elsif (ct == "vtab_cut") && (self.upgrade?("0.918"))
42 | e.set_attribute("phlatboyzdictionary", "vtab", true)
43 | e.set_attribute("phlatboyzdictionary", "edge_type", "tab_cut")
44 | end
45 | end
46 |
47 | def process_group_918(g)
48 | g.explode.each { |e|
49 | if e.kind_of?(Sketchup::Group)
50 | process_group_918(e)
51 | elsif e.kind_of?(Sketchup::Edge)
52 | process_edge_918(e)
53 | end
54 | }
55 | end
56 |
57 | def upgrade_918
58 | groups = []
59 | aborted = false
60 | Sketchup.active_model.start_operation "Upgrading 918", true
61 | items = Sketchup.active_model.active_path
62 | items.length.downto(0) { Sketchup.active_model.close_active } if items
63 | begin
64 | Sketchup.active_model.entities.each { |e|
65 | if e.kind_of?(Sketchup::Group)
66 | groups.push(e)
67 | elsif e.kind_of?(Sketchup::Edge)
68 | process_edge_918(e)
69 | end
70 | }
71 | groups.each { |g| process_group_918(g) }
72 | rescue
73 | Sketchup.active_model.abort_operation
74 | aborted = true
75 | end
76 | if (@upgrade && !aborted)
77 | Sketchup.active_model.commit_operation
78 | else
79 | Sketchup.active_model.abort_operation
80 | end
81 | end
82 |
83 | end
84 | end
85 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/PhlatCut.rb:
--------------------------------------------------------------------------------
1 | # $Id$
2 | require 'Phlatboyz/Phlatscript.rb'
3 |
4 | module PhlatScript
5 |
6 | # base class for any cut marks made by phlatboyz tools
7 | class PhlatCut
8 |
9 | attr_accessor :cut_reversed
10 |
11 | def PhlatCut.from_edge(edge)
12 | cutkey = edge.get_attribute(Dict_name, Dict_edge_type, false)
13 | cut = nil
14 | if cutkey
15 | PhlatScript.cuts.each { |cut_class|
16 | next if !cut.nil?
17 | if cut_class.cut_key == cutkey
18 | cut = cut_class.load(edge)
19 | end
20 | }
21 | end
22 | return cut
23 | end
24 |
25 | def PhlatCut.by_cutkey(cut_key)
26 | PhlatScript.cuts.each { |cut_class|
27 | if cut_class.cut_key == cut_key
28 | return cut_class
29 | break
30 | end
31 | }
32 | end
33 |
34 | def processed=(val)
35 | end
36 |
37 | def processed
38 | return false
39 | end
40 |
41 | def erase
42 | end
43 |
44 | def self.cut_key
45 | return false
46 | end
47 |
48 | def can_tab?
49 | return false
50 | end
51 |
52 | def cut_points(reverse=false)
53 | end
54 |
55 | def in_polygon?(vertices)
56 | ret = false
57 | self.cut_points { |cp, cut_factor| ret = (ret || Geom.point_in_polygon_2D(cp, vertices, false)) }
58 | return ret
59 | end
60 |
61 | # returns the dictionary attribute for cut_depth_factor of the first entity
62 | def cut_factor
63 | return 0.0
64 | end
65 |
66 | # sets the cut_depth_factor attribute for all entities that are part of this cut
67 | def cut_factor=(factor)
68 | end
69 |
70 | def vertices
71 | self.edge.vertices if (self.edge)
72 | end
73 |
74 | end
75 |
76 | end
77 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/PhlatProgress.rb:
--------------------------------------------------------------------------------
1 | # $Id$
2 | #need some sort of progress bar, cannot find the dll so just do text in the statusbar
3 | require ('Phlatboyz/Phlatscript.rb')
4 | #require 'Win32API'
5 |
6 | module PhlatScript
7 |
8 | # class ProgressDialog
9 |
10 | # def initialize(caption, steps)
11 | # #Win32API.new( dllname, procname, importArray, export )
12 | # @dlg = Win32API.new("C:/Program Files/Google/Google SketchUp 8/plugins/Phlatboyz/PhlatDLL.dll","ProgressDlg",['P', 'L'],"V")
13 | # @step = Win32API.new("C:/Program Files/Google/Google SketchUp 8/plugins/Phlatboyz/PhlatDLL.dll","ProgressStep",['L'],"V")
14 | # @close = Win32API.new("C:/Program Files/Google/Google SketchUp 8/plugins/Phlatboyz/PhlatDLL.dll","ProgressClose",[],"V")
15 | # @dlg.call(caption, steps)
16 | # end
17 | #
18 | # def step
19 | # @step.call(0)
20 | # end#
21 |
22 | # def position=(position)
23 | # @step.call(position)
24 | # end#
25 | #
26 | # def close
27 | # @close.call
28 | # end
29 | #
30 | # end
31 | #
32 |
33 | # pb = PhProgressBar.new(items_to_process)
34 | # To update the status bar:
35 | # pb.update(item number)
36 |
37 | class PhProgressBar
38 |
39 | @@background = "-" * 50
40 | @@foreground = "*" * 50
41 |
42 | def initialize(total,msg = nil)
43 | if (!total.integer? or total < 0)
44 | total = 100
45 | end
46 | @total = total.to_i
47 | if (msg == nil)
48 | @msg = ""
49 | else
50 | @msg = msg
51 | end
52 | self.update(1)
53 | #puts "set ppct"
54 | @ppct = 0.to_i # previous percent done
55 | end
56 |
57 | def symbols(back,fore)
58 | @@background = back * 50
59 | @@foreground = fore * 50
60 | end
61 |
62 | def update(progress)
63 | if !progress.integer?
64 | progress = progress.to_i
65 | end
66 | now = progress.abs
67 | if now > @total
68 | now = @total
69 | end
70 | pct = (now*100)/@total
71 | pct = 2 if (pct < 2)
72 | pct = pct.to_f
73 | @ppct = @ppct.to_f
74 | diff = (pct - @ppct).abs.to_i
75 | if diff > 0 # avoid updating screen unless there is real change
76 | pct_p = pct / 2
77 | block = @@foreground[0,pct_p-1] + @@background[0,50-pct_p]
78 | Sketchup.set_status_text(@msg + " " + block)
79 | end
80 | @ppct = pct
81 | end
82 | end
83 |
84 |
85 |
86 | end
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/PhlatScript GNU Licence Info/Copyright_Information.txt:
--------------------------------------------------------------------------------
1 |
2 | The Phlatscript program and all its files are protected under the GNU General Public License
3 |
4 | Copyright 2008,2009 Phlatboyz,LLC
5 |
6 | This file is part of Phlatscript.
7 |
8 | Phlatscript is free software: you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation, either version 3 of the License, or
11 | (at your option) any later version.
12 |
13 | Phlatscript is distributed in the hope that it will be useful,
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | GNU General Public License for more details.
17 |
18 | You should have received a copy of the GNU General Public License
19 | along with Foobar. If not, see .
20 |
21 | The GNU General Public License files are included with this program under the folder GNU
22 |
23 | Thank you,
24 | Mark & Trish Carew Phlatboyz,LLC
25 | www.Phlatboyz.com
26 | www.Phlatforum.com
27 | For more information please contact us at kram2422@comcast.net
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/PhlatScript GNU Licence Info/lgplv3-147x51.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/PhlatScript GNU Licence Info/lgplv3-147x51.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/PhlatTool.rb:
--------------------------------------------------------------------------------
1 | # $Id$
2 | require 'sketchup.rb'
3 | #require 'Phlatboyz/Constants.rb'
4 |
5 | module PhlatScript
6 |
7 | class PhlatTool
8 | attr_reader :tooltype, :tooltip, :largeIcon, :smallIcon, :statusText, :menuItem, :menuText
9 |
10 | def initialize
11 | toolname = self.class.to_s.sub('PhlatScript::', '')
12 | @tooltype = (PB_MENU_TOOLBAR | PB_MENU_MENU)
13 | @tooltip = PhlatScript.getString("Phlatboyz #{toolname}")
14 | @largeIcon = "images/#{toolname.downcase}_large.png"
15 | @smallIcon = "images/#{toolname.downcase}_small.png"
16 | @statusText = PhlatScript.getString("Phlatboyz #{toolname}")
17 | @menuText = PhlatScript.getString(toolname)
18 | @ip = nil
19 | cursorPath = Sketchup.find_support_file("cursor_#{toolname.downcase}.png", Cursor_directory)
20 | if(cursorPath)
21 | @cursor = UI.create_cursor(cursorPath, 13, 16)
22 | end
23 | end
24 |
25 | def cut_class
26 | return false
27 | end
28 |
29 | def select
30 | Sketchup.active_model.select_tool self
31 | end
32 |
33 | def getContextMenuItems
34 | return false
35 | end
36 |
37 | def onContextMenu(menuItem)
38 | puts "onContextMenu is not defined for #{self.class.to_s}"
39 | end
40 |
41 | def activate
42 | @ip = Sketchup::InputPoint.new
43 | self.reset(nil)
44 | end
45 |
46 | def deactivate(view)
47 | view.invalidate
48 | end
49 |
50 | def resume(view)
51 | Sketchup.status_text = self.statusText
52 | end
53 |
54 | def reset(view)
55 | if(view)
56 | view.model.selection.clear
57 | view.tooltip = nil
58 | view.invalidate
59 | end
60 | Sketchup.status_text = self.statusText
61 | end
62 |
63 | def onSetCursor()
64 | cursor = UI.set_cursor(@cursor) if !@cursor.nil?
65 | end
66 |
67 | def statusText
68 | return "#{self.class.to_s} selected"
69 | end
70 |
71 | protected
72 |
73 | # utility method for collecting all edges connected to edge and adding them
74 | # to edge_array
75 | def collect_connected_edges(edge, edge_array, include_phlat=false, only_phlat=false)
76 | edges = []
77 | # if the edge is on the outside of a face we can just grab all the
78 | # edges in the face outer loop
79 | edge.faces.each { |face|
80 | next if !edges.empty?
81 | edges = face.outer_loop.edges if (face.outer_loop.edges.include?(edge))
82 | }
83 |
84 | if edges.empty?
85 | check = [edge]
86 | while (!check.empty?)
87 | cur_edge = check.pop
88 | edges.push(cur_edge)
89 | cur_edge.vertices.each { |v|
90 | v.edges.each { |e|
91 | check.push(e) if (!edges.include?(e))
92 | }
93 | }
94 | end
95 | edges.compact!
96 | edges.uniq!
97 | end
98 |
99 | # not part of a face so just get all_connected
100 | edges = edge.all_connected if edges.empty?
101 |
102 | # check if any of the edges meet the criteria
103 | edges.each { |e|
104 | if ((e.kind_of?(Sketchup::Edge)) && (include_phlat || !e.phlatedge?) && (!only_phlat || e.phlatedge?))
105 | edge_array.push(e)
106 | end
107 | }
108 | end
109 |
110 | end
111 |
112 | end
113 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/afterinstall.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SketchUcam - Thing to do After Instal
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
After install...
14 |
15 |
16 |
Back to help index
17 |
18 |
19 |
After installing Sketchucam all features will work without further setup.
20 | However, there are some settings you will want to change to suite your machines size and capabilities.
21 |
22 |
23 |
24 | To make these changes you need to access the "
Tools|Phlatboyz|Options|Machine Options " menu item as illustrated at right.
25 |
Things you may need to change
26 |
27 | Default_safe_width (X)
28 | Set this to the largest workpiece your machine can take in the X direction.
29 | Default_safe_height (Y)
30 | Set this to the largest workpiece Y size.
31 | Default_overhead_gantry
32 | If all you have is a Phlatprinter, set this to false. If all you have is a gantry type machine, set this to true. If you have both styles, set to the one you use the most.
33 |
34 |
35 |
36 | Min_z
37 | It is VERY IMPORTANT that you get these settings correct.
38 | Do NOT set Min_Z to zero unless you also set Default_tabletop is Z-Zero on the Misc Options dialog to TRUE, and NEVER change it
39 | in the parameters dialog. Failing to do this correctly will result in faulty G-code generation.
40 | Min_z = -maxZtravel
41 | Max_z = maxZtravel
42 | are the preferred settings, allowing both 'material top' and 'table top' as Z-zero to work properly.
43 |
44 | Set this to negative (-) your Z travel. G-code will never contain negative Z travel more than this figure.
45 | Max_z
46 | Set this to your Z travel. G-code will never contain Z travel more than this figure.
47 |
48 |
49 | You can read the full help for
that dialog here .
50 |
51 |
52 |
53 |
54 |
55 |
56 | Now visit the "
Tools|Phlatboyz|Options|Tool Options " menu item as illustrated at right.
57 | If you have a flat bed machine you will want to set the
58 |
Default_cut_depth_factor to 100%
59 | This will prevent it cutting into the table. A cut depth factor greater 100% will cut through the material and into the table.
60 | Read the
full help for that dialog here
61 |
62 |
63 |
64 |
65 |
66 |
67 | Now visit the "
Tools|Phlatboyz|Options|Feature Options " menu item as illustrated at right.
68 | Read the
help for those options and make changes as needed for your machine.
69 |
70 |
GRBL: if you are running the GRBL controller will will want to set 'Use_exact_path' to false
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
Thank you for your interest in the Phlatboyz project. Please take the time to visit the Phlatforum
87 | for lots of great people sharing great ideas and designs created with SketchUcam on their Phlatboyz machines!
88 |
89 |
90 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/edgemenu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Phlatboyz SketchUcam Edge Context Menu
6 |
7 |
8 |
9 |
10 |
11 |
12 |
PHLATBOYZ
13 |
14 |
Phlatboyz SketchUcam(PhlatScripT)
SketchUcam Version 1.3 May 2015
15 |
16 |
17 |
18 |
19 |
20 |
21 | SketchUcam Edge Context MenuBack to help index
22 |
23 |
24 |
25 |
26 | These menu items appear in the "Phlat Edge" sub menu when right clicking on any edge.
27 |
28 |
29 |
30 |
31 | Inside Edge
32 |
33 |
34 |
35 | Selecting this command will mark selected edges as SketchUcam Inside
36 | edge. No other change will be made to the edge. This allows you to
37 | select individual edges in SketchUp and create SketchUcam cut edges from
38 | them.
39 |
40 |
41 |
42 |
43 |
44 |
45 | Outside Edge
46 |
47 |
48 |
49 | Selecting this command will mark selected edges as SketchUcam Outside
50 | edges. This allows you to select individual edges in SketchUp and
51 | create SketchUcam cut edges from them. No other change will be made to
52 | the edge.
53 |
54 |
55 |
56 | Erase Selected Phlat Edges
57 |
58 |
59 |
60 | This command will clear all selected edges that are currently marked as SketchUcam edges.
61 | Note: The original design edges will remain but the original SketchUcam edges will be deleted.
62 |
63 |
64 |
65 |
66 |
67 |
68 | Phlatten Selected Edges
69 |
70 |
71 |
72 | This command will set all selected parts to 0 on the Z plane. This is a
73 | great tool for laying parts out in the safe cutting area before
74 | assigning cuts to them. A great feature of this tool is that it ensures
75 | that the part is perfectly flat and that the proper face (default blue)
76 | is facing upward.
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
Thank you for your interest in the SketchUcam project. Please take the time to visit the Phlatforum for lots of great people sharing great ideas and designs created with the PhlatScripT on their Phlatboyz machines!
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/howto_3d.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SketchUcam: HOWTO use the 3D generator
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Phlatboyz SketchUcam(PhlatScripT)
15 |
16 |
17 |
18 |
19 |
Back to help index
20 |
HOWTO use the 3D G-code generator
21 |
22 | The 3D script by Nicholas Peshman has been incorporated into SketchUcam so that it can use
23 | the parameters on the
Parameters Dialog .
24 |
25 | It will fetch bit diameter, stepover% and multipass depth from the dialog.
26 |
27 |
28 | Move Group or groups (of 3D objects) to within the safe area starting from 0,0 and on the 0 plane
29 | Tick the 'Generate 3D Gcode' box in the parameters.
30 | Click 'Generate G-code'
31 |
32 |
33 | WARNING:
34 | This script is still under development and does not produce perfect output, yet.
35 |
36 |
37 | Here is an old video by Nicholas about using this module
38 | https://www.youtube.com/watch?v=HUNpZ0-bFRI
39 | and actually cutting something similar...
40 | https://www.youtube.com/watch?v=BZMKPhxizmM
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/howto_profileexchange.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SketchUcam: HOWTO exchange tool profiles with friends
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Phlatboyz PhlatScripT
19 |
SketchUcam Version 1.1c Feb 2014
20 |
21 |
22 |
23 |
Back to help index
24 |
HOWTO exchange tool profiles with friends
25 |
26 | Tool and material profiles can be exchanged between users, sharing the ease of setup for particular materials.
27 | This document will guide you through exchangeing profiles with other users.
28 |
NOTE: Profiles only work with Sketchup units set to millimeters or inches (decimal).
29 |
30 |
31 |
32 |
33 |
34 |
35 | Exchanging profiles
36 |
37 |
38 |
39 |
40 | Giving your profiles away
41 |
42 |
43 | The profiles are stored in the Sketchup folder within each users APPDATA folder which you can display via the
44 | Tools|Phlatboyz|Display Profiles Folder
45 | menu item.
46 | [MAC: see bottom of page] .
47 | Should that menu item not open a file browser in the relevant folder containing a number of .TPR files follow the instructions below
48 | The path to this folder varies between Windows versions but can easily be found by doing the following:
49 |
50 |
51 |
52 | do this
53 | Click 'Start'
54 | Click 'Run'
55 | Paste '%APPDATA%/Sketchup'
56 | Press Enter
57 | or this
58 | Open 'My Computer'
59 | Paste '%APPDATA%/Sketchup' in the address bar
60 | Press Enter
61 | or this
62 | Use 'My Computer' to navigate to (may vary between Windows versions)
63 | C:\Users\yourusername\AppData\Roaming\SketchUp
64 |
65 |
66 | Windows will open a file explorer with the folder displayed.
67 | All the 'somename.TPR' files are your profiles.
68 | To give them to someone else, simply email them, transfer them with a flash stick or post them on phlatforum.com
69 | in the 'Material/Bit Specific Feedrates' topic.
70 |
71 |
72 |
73 |
74 | Installing a downloaded profile
75 |
76 |
77 | To install a profile that you have downloaded:
78 |
79 | Open your APPDATA folder (as above).
80 | Copy or move the downloaded profile file to that folder.
81 | Open Sketchup and confirm that you can load it.
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | Mac/Linux users: you will be running Sketchup under Wine and the APPDATA environment variable does not exist.
91 | The folder is in a path similar to
92 | /home/username/.wine/c_drive/users/username/Application Data/Sketchup
93 | You may need to set your folder viewer to 'display hidden files' in order to see the .wine folder
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/SketchUcam-Window-Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/SketchUcam-Window-Logo.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones02.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones03.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones04.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones05.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones06.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones07.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones08.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones08png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones08png.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bones09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bones09.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/bonesbit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/bonesbit.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer-diag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer-diag.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer-s1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer-s1.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer-s2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer-s2.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer-s3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer-s3.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer02.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/chamfer03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/chamfer03.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/csink01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/csink01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/csink02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/csink02.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/csink03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/csink03.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/csink04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/csink04.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/csinkwooda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/csinkwooda.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/edgecontext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/edgecontext.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/holepattern01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/holepattern01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/holepattern02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/holepattern02.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/holepattern03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/holepattern03.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/howto01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/howto01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/howto02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/howto02.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/howto03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/howto03.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/laser1a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/laser1a.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/laser2a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/laser2a.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/laser3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/laser3a.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options-feature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options-feature.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options-file.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options-holefeatures.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options-holefeatures.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options-machine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options-machine.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options-misc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options-misc.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options-tool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options-tool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/options.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/optsummary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/optsummary.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/params.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/params.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/phlat01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/phlat01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/phlatbones.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/phlatbones.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/pocket1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/pocket1.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/pocket2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/pocket2.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/pocket3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/pocket3.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/pocket4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/pocket4.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/profileload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/profileload.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/profiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/profiles.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/profilesave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/profilesave.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/quicktoolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/quicktoolbar.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp01a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp01a.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp02.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp03.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp04.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp05.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp06.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp07.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp08.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp09.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramp10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramp10.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/ramplimit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/ramplimit.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/sfm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/sfm.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/sfm2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/sfm2.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/toolbar.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/toolchange01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/toolchange01.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/images/toolsmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/html/images/toolsmenu.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/machelp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SketchUcam: HOWTO use Ramping
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Phlatboyz SketchUcam(PhlatScripT)
15 |
16 | SketchUcam Version 1.4d Jan 2017
17 |
18 |
19 |
20 |
21 |
Back to help index
22 |
Help for MAC users
23 |
24 |
Special keys:
25 |
Some Mac keyboards do not have the HOME and END keys (and ALT may not be labelled).
26 |
There are alternate combinations that simulate those keys:
27 |
28 | HOME = "FN-LEFT ARROW"
29 | END = "FN-RIGHT ARROW"
30 | ALT = OPTION
31 |
32 |
Sometimes you may have to hit the FN-LEFT twice before the dialog comes up.
33 |
Thanks to OpenBuilds user andycbrklyn for help with this.
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/html/style.css:
--------------------------------------------------------------------------------
1 | body, div, span {
2 | font-family: Verdana;
3 | }
4 | body {
5 | background-color: grey;
6 | text-align: center;
7 | max-width: 1024px;
8 | padding-left:0.5%;
9 | padding-right:0.5%;
10 | margin-left: auto;
11 | margin-right: auto;
12 | }
13 | div.shell {
14 | /*background-color: #eee;*/
15 | background-color: #ddeeff;
16 | /*background-color: white;*/
17 | font-size: 1.05em;
18 | }
19 |
20 | div.intro-name {
21 | text-align:center;
22 | font-size: 1.20em;
23 | font-weight: bold;
24 | padding-top:25px;
25 | }
26 | div.intro-name div {
27 | font-size: 0.60em;
28 | font-weight: normal;
29 | }
30 | div.intro-title {
31 | text-align:center;
32 | margin:10px;
33 | font-size: 1.10em;
34 | font-weight: bold;
35 | padding-top: 15px;
36 | }
37 | div.intro {
38 | text-align: justify;
39 | margin:5px;
40 | padding: 5px;
41 | font-size: 0.90em;
42 | }
43 |
44 |
45 | .command-image {
46 | /*background-color: #ededed;*/
47 | background-color: #ddeeff;
48 | height: 100px;
49 | font-weight: bold;
50 | font-size: 0.90em;
51 | vertical-align:center;
52 | padding:10px;
53 | border-top: thin solid white;
54 | border-left: thin solid white;
55 | border-right: thin solid #cccccc;
56 | border-bottom: thin solid #cccccc;
57 | }
58 | .command-description {
59 | /*background-color: #ededed;*/
60 | background-color: #eaecfa;
61 | /*margin: 2px;*/
62 | padding: 15px;
63 | border-top: thin solid white;
64 | border-left: thin solid white;
65 | border-right: thin solid #cccccc;
66 | border-bottom: thin solid #cccccc;
67 | font-size: 0.90em;
68 | vertical-align: top;
69 | }
70 |
71 | .command-title {
72 | font-size: 1.00em;
73 | font-weight: bold;
74 | /*border-bottom: thin solid blue;*/
75 | text-align: center;
76 | padding-top: 25px;
77 | border-top: thin solid white;
78 | border-left: thin solid white;
79 | border-right: thin solid #cccccc;
80 | border-bottom: thin solid #cccccc;
81 | text-decoration: underline;
82 | }
83 | .command-subtitle {
84 | font-size: 0.70em;
85 | font-style: italic;
86 | }
87 | .newcolour {
88 | color: #000000;
89 | }
90 | hr {
91 | background-color: #6699ff;
92 | height: 2px;
93 | border: 0;
94 | }
95 | td {
96 | text-align: justify;
97 | }
98 | dt {
99 | margin-top: 5px;
100 | font-weight: bold;
101 | }
102 | .index {
103 | line-height: 1.6em;
104 | }
105 | img {
106 | margin-left: 1em;
107 | }
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/OBicon_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/OBicon_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/OBicon_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/OBicon_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/Pocket_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/Pocket_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/Pocket_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/Pocket_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/andy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/andy.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/bracket_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/bracket_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/bracket_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/bracket_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cboretool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cboretool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cboretool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cboretool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/centerlinetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/centerlinetool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/centerlinetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/centerlinetool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/comment_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/comment_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/comment_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/comment_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/csinktool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/csinktool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/csinktool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/csinktool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_centerlinetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_centerlinetool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erase_centerlinecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erase_centerlinecut.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erase_foldcut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erase_foldcut.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erase_insidecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erase_insidecut.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erase_outsidecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erase_outsidecut.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erase_plungecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erase_plungecut.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erase_tabcut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erase_tabcut.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_erasetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_erasetool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_foldtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_foldtool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_insidecuttool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_insidecuttool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_outsidecuttool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_outsidecuttool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_plungetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_plungetool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_safetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_safetool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_tabtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_tabtool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/cursor_vtabtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/cursor_vtabtool.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/erasetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/erasetool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/erasetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/erasetool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/foldtool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/foldtool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/foldtool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/foldtool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/gcode_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/gcode_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/gcode_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/gcode_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/helptool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/helptool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/helptool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/helptool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/insidecuttool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/insidecuttool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/insidecuttool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/insidecuttool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/joiner_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/joiner_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/joiner_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/joiner_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/outsidecuttool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/outsidecuttool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/outsidecuttool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/outsidecuttool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/parameterstool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/parameterstool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/parameterstool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/parameterstool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/phlatboyz_homepage_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/phlatboyz_homepage_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/phlatboyz_homepage_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/phlatboyz_homepage_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/plungetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/plungetool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/plungetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/plungetool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/reorder_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/reorder_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/reorder_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/reorder_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/rotate_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/rotate_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/rotate_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/rotate_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/safetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/safetool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/safetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/safetool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/tabtool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/tabtool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/tabtool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/tabtool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/toolchange_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/toolchange_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/toolchange_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/toolchange_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/zerotool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/zerotool_large.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/images/zerotool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/Phlatboyz/images/zerotool_small.png
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/CenterLineCut.rb:
--------------------------------------------------------------------------------
1 |
2 |
3 | require 'Phlatboyz/PhlatCut.rb'
4 |
5 | module PhlatScript
6 |
7 | class CenterLineCut < PhlatCut
8 | attr_accessor :edge
9 |
10 | def CenterLineCut.cut_key
11 | return Key_centerline_cut
12 | end
13 |
14 | def CenterLineCut.load(edge)
15 | return self.new(edge)
16 | end
17 |
18 | def CenterLineCut.cut(edges)
19 | cuts = []
20 | edges.each do | e |
21 | cut = CenterLineCut.new
22 | cut.cut(e)
23 | cuts.push(cut)
24 | end
25 | return cuts
26 | end
27 |
28 | def CenterLineCut.preview(view, edges)
29 | view.drawing_color = Color_centerline_cut
30 | view.line_width = 5.0
31 | begin
32 | edges.each { |e| view.draw_line(e.start.position, e.end.position) }
33 | rescue
34 | UI.messagebox "Exception in CenterLine preview "+$!
35 | end
36 | end
37 |
38 | def cut(edge)
39 | model = Sketchup.active_model
40 | model.start_operation "Creating Center Line", true
41 | @edge = edge
42 | @edge.material = Color_centerline_cut
43 | @edge.set_attribute(Dict_name, Dict_edge_type, Key_centerline_cut)
44 | model.commit_operation
45 | end
46 |
47 | def erase
48 | @edge.delete_attribute Dict_name, Dict_cut_depth_factor
49 | @edge.delete_attribute Dict_name, Dict_edge_type
50 | @edge.material = nil
51 | end
52 |
53 | def initialize(edge=nil)
54 | super()
55 | @edge = edge
56 | end
57 |
58 | def cut_points(reverse=false)
59 | cf = self.cut_factor
60 | # puts "cut_points reverse #{reverse} cut_reversed#{@cut_reversed}"
61 | if @cut_reversed
62 | # if reverse #cut_reversed and reverse don't always match for centerline cuts, messes up ramping
63 | yield(@edge.end.position, cf)
64 | yield(@edge.start.position, cf)
65 | else
66 | yield(@edge.start.position, cf)
67 | yield(@edge.end.position, cf)
68 | end
69 | end
70 |
71 | def cut_reversed?
72 | @cut_reversed
73 | end
74 |
75 | # returns whether the first entity has been marked as milled in gcodeutil.rb
76 | def processed?
77 | return @edge.get_attribute(Dict_name, Dict_object_mark, false)
78 | end
79 |
80 | # marks all entities as having been milled in gcodeutil
81 | def processed=(val)
82 | @edge.set_attribute(Dict_name, Dict_object_mark, val)
83 | end
84 |
85 | def processed
86 | return @edge.get_attribute(Dict_name, Dict_object_mark, false)
87 | end
88 |
89 | # returns the dictionary attribute for cut_depth_factor of the first entity
90 | def cut_factor
91 | return @edge.get_attribute(Dict_name, Dict_cut_depth_factor, $phoptions.default_fold_depth_factor).to_f
92 | end
93 |
94 | # sets the cut_depth_facotr attribute for all entities that are part of this cut
95 | def cut_factor=(factor)
96 | f = factor % 1000
97 | (f = Max_fold_depth_factor) if (f > Max_fold_depth_factor)
98 | @edge.set_attribute(Dict_name, Dict_cut_depth_factor, f.to_f)
99 | end
100 |
101 | end
102 |
103 | end
104 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/ChamferWizard.rb:
--------------------------------------------------------------------------------
1 | require 'sketchup.rb'
2 | require 'Phlatboyz/PhlatTool.rb'
3 | require 'Phlatboyz/utils/SketchupDirectoryUtils.rb'
4 |
5 | module PhlatScript
6 |
7 | class ChamferTool < PhlatTool
8 |
9 | def initialize
10 | super()
11 | @tooltype=(PB_MENU_MENU)
12 | @tooltip="Set Chamfer parameters"
13 | @statusText="Set Chamfer parameters"
14 | @menuText="Set Chamfer parameters"
15 | end
16 |
17 |
18 | # a wizard to set tool diameter and cut depth that will achieve a chamfer cut with a v bit
19 | # cut depth must be less than the current material thickness
20 | # ==== inputs
21 | # +A+ included angle of the tool
22 | # +D+ tool diameter, total diam of sloped part
23 | # +CD+ cutter depth, tip to widest part
24 | # +TD+ Tip Diameter, can be 0, must be less than D
25 | # +WIDTH+ Width of desired chamfer, must be <= D/2
26 | # ==== outputs
27 | # +VD+ virtual tool diameter to use for cuts
28 | # +DD+ cut depth, < material thickness
29 | def select
30 |
31 |
32 |
33 | prompts=[
34 | 'Included angle ',
35 | 'Tool diameter ',
36 | 'Tip Diameter ',
37 | 'Cutter Depth ',
38 | 'Width of chamfer '
39 | ];
40 | defaults=[
41 | 90.0,
42 | 12.mm,
43 | 2.mm,
44 | 5.mm,
45 | 1.mm
46 | ];
47 | list=[
48 | '',
49 | '',
50 | '',
51 | '',
52 | ''
53 | ];
54 |
55 | input=UI.inputbox(prompts, defaults, list, 'Chamfer Wizard (read the help!)')
56 | # input is nil if user cancelled
57 | if (input)
58 | angle = input[0] #float
59 | d = input[1] #lengths
60 | td = input[2]
61 | cd = input[3]
62 | width = input[4]
63 |
64 | #cross check, calculate the angle from the height width and tipwidth
65 | wo = (d - td)/2 # width of half cutter
66 | h = cd # height of cutting portion
67 | theta = 2 * PhlatScript.todeg(Math::atan(wo/h))
68 | puts "theta #{theta}"
69 | if ( (theta - angle).abs > 1)
70 | UI.messagebox("Angle mismatch, please check parameters")
71 | end
72 |
73 | #calculate virtual width and cut depth
74 | r1 = d/2 - td/2
75 | a = angle/2
76 | b = 90.0 -a
77 | wo = (r1 - width) / 2 # we are centering cut on the cutter
78 | d0 = wo / Math::tan(PhlatScript.torad(b))
79 |
80 | dd = cd - d0 # cut depth
81 | vd = d - 2*wo - 2*width # virtual cutter diam
82 |
83 | puts "Virtual diameter #{vd.to_l.to_s}"
84 | puts "Virtual cut depth #{dd.to_l.to_s}"
85 |
86 | PhlatScript.bitDiameter = vd
87 | PhlatScript.cutFactor = dd / PhlatScript.materialThickness * 100.0
88 | if (PhlatScript.cutFactor > 100.0)
89 | UI.messagebox("Cut factor% is too deep! #{PhlatScript.cutFactor}");
90 | end
91 | if (dd > cd)
92 | UI.messagebox("Cut depth is greater than cutter depth!");
93 | end
94 |
95 | end # if input
96 |
97 |
98 | # UI.messagebox(msg,MB_MULTILINE)
99 | end #select
100 | end # class
101 |
102 | end
103 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/FoldCut.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'Phlatboyz/PhlatCut.rb'
3 | require 'Phlatboyz/Tools/CenterLineCut.rb'
4 |
5 | module PhlatScript
6 |
7 | class FoldCut < CenterLineCut
8 | attr_accessor :wide_cut, :edge
9 |
10 | def FoldCut.cut_key
11 | return Key_fold_cut
12 | end
13 |
14 | def FoldCut.cut(edges, wide=false)
15 | cuts = []
16 | edges.each do | e |
17 | cut = FoldCut.new
18 | cut.wide_cut = wide
19 | cut.cut(e)
20 | cuts.push(cut)
21 | end
22 | return cuts
23 | end
24 |
25 | def FoldCut.preview(view, edges, wide=false)
26 | view.drawing_color = fold_color(wide)
27 | view.line_width = 5.0
28 | begin
29 | edges.each { |e| view.draw_line(e.start.position, e.end.position) }
30 | rescue
31 | # UI.messagebox "Exception in Fold preview "+$!
32 | end
33 | end
34 |
35 | def FoldCut.fold_color(wide_cut = false)
36 | return (wide_cut ? Color_fold_wide_cut : Color_fold_cut)
37 | end
38 |
39 | def cut(edge)
40 | model = edge.model
41 | model.start_operation("Creating Fold Line", true)
42 | @edge = edge
43 | if !@wide_cut
44 | if @edge.length > Fold_shorten_width
45 | ep1 = @edge.start.position
46 | ep2 = @edge.end.position
47 | v = ep1.vector_to ep2
48 | half = Fold_shorten_width/2
49 | point1 = ep1.offset(v, half)
50 | point2 = ep2.offset(v, -half)
51 | edge.model.entities.erase_entities @edge
52 | @edge = model.entities.add_line(point1, point2)
53 | @edge.set_attribute(Dict_name, "fold_shorten", true)
54 | end
55 | end
56 | @edge.material = FoldCut.fold_color(@wide_cut)
57 | @edge.set_attribute Dict_name, Dict_edge_type, Key_fold_cut
58 | model.commit_operation
59 | end
60 |
61 | def erase
62 | if @edge.get_attribute(Dict_name, "fold_shorten", false)
63 | # the edge was shortened when cut, restore original length
64 | entities = Sketchup.active_model.entities
65 | ep1 = @edge.start.position
66 | ep2 = @edge.end.position
67 | v = ep1.vector_to ep2
68 | half = Fold_shorten_width/2
69 | point1 = ep1.offset(v, -half)
70 | point2 = ep2.offset(v, half)
71 | entities.erase_entities @edge
72 | @edge = entities.add_line(point1, point2)
73 | end
74 | @edge.delete_attribute(Dict_name, Dict_cut_depth_factor)
75 | @edge.delete_attribute(Dict_name, Dict_edge_type)
76 | @edge.delete_attribute(Dict_name, "fold_shorten")
77 | @edge.material = nil
78 | @edge.find_faces
79 | end
80 |
81 | # returns the dictionary attribute for cut_depth_factor of the first entity
82 | def cut_factor
83 | return @edge.get_attribute(Dict_name, Dict_cut_depth_factor, $phoptions.default_fold_depth_factor)
84 | end
85 |
86 | # sets the cut_depth_facotr attribute for all entities that are part of this cut
87 | def cut_factor=(factor)
88 | f = factor % 1000
89 | (f = Max_fold_depth_factor) if (f > Max_fold_depth_factor)
90 | @edge.set_attribute(Dict_name, Dict_cut_depth_factor, f)
91 | end
92 |
93 | end
94 |
95 | end
96 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/FoldTool.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'sketchup.rb'
3 | #require 'Phlatboyz/Constants.rb'
4 | require 'Phlatboyz/PhlatTool.rb'
5 | require 'Phlatboyz/tools/CenterLineTool.rb'
6 | require 'Phlatboyz/Tools/FoldCut.rb'
7 |
8 | module PhlatScript
9 |
10 | class FoldTool < CenterLineTool
11 | @@wide_cut = false
12 |
13 | def onLButtonUp(flags, x, y, view)
14 | @leftButtonDown = false
15 | edges = view.model.selection
16 | cuts = FoldCut.cut(edges, @@wide_cut)
17 | cuts.each { |cut| cut.cut_factor = compute_fold_depth_factor }
18 | view.model.selection.clear
19 | view.lock_inference
20 | end
21 |
22 | def onKeyDown(key, repeat, flags, view)
23 | if key == VK_END # togle Wide Mode #87 # W key
24 | @@wide_cut = !@@wide_cut
25 | #self.compute_fold_depth_factor()
26 | #PhlatScript.display_fold_depth_factor()
27 | Sketchup.status_text = statusText
28 | view.invalidate
29 | else
30 | super
31 | end
32 | end
33 |
34 | def draw(view)
35 | @ph.all_picked.each { |e|
36 | if (e.kind_of?(Sketchup::Edge))
37 | next if PhlatCut.from_edge(e)
38 | FoldCut.preview(view, collect_edges(e), @@wide_cut)
39 | end
40 | }
41 | # FoldCut.preview(view, collect_edges(@ip.edge), @@wide_cut) if !@ip.edge.nil?
42 | end
43 |
44 | def cut_class
45 | return FoldCut
46 | end
47 |
48 | def statusText
49 | if @@wide_cut
50 | return "Select edges. [Shift]select connected edges. [End]toggle Wide Mode. [<--][-->]scroll preset depths. ** Wide Mode **"
51 | else
52 | return "Select edges. [Shift]select connected edges. [End]toggle Wide Mode. [<--][-->]scroll preset depths. ** Short Mode **"
53 | end
54 | end
55 |
56 | def selectConnectedEdges?
57 | return !@connected_edges
58 | end
59 |
60 | end
61 |
62 | end
63 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/HelpTool.rb:
--------------------------------------------------------------------------------
1 | require 'Phlatboyz/PhlatTool.rb'
2 | require 'Phlatboyz/utils/SketchupDirectoryUtils.rb'
3 | # $Id$
4 | module PhlatScript
5 |
6 | class HelpTool < PhlatTool
7 | def select
8 | help_file = Sketchup.find_support_file "help.html", "Plugins/Phlatboyz/html"
9 | if (help_file)
10 | # Open the help_file in a web browser
11 | UI.openURL "file://" + help_file
12 | else
13 | UI.messagebox "Failed to open help file"
14 | end
15 | end
16 | end
17 |
18 | class SummaryTool < PhlatTool
19 |
20 | def initialize
21 | super()
22 | @tooltype=(PB_MENU_MENU)
23 | @tooltip="Options Summary"
24 | @statusText="Options Summary display"
25 | @menuText="Options Summary"
26 | end
27 |
28 | def select
29 | msg = "Summary of your settings from MyOptions.ini\n" +
30 | " Default_show_gplot = #{$phoptions.default_show_gplot?}\n" +
31 | " Default_pocket_direction = #{$phoptions.default_pocket_direction?}\n" +
32 | " Min_z = #{$phoptions.min_z}\n" +
33 | " Max_z = #{$phoptions.max_z}\n" +
34 | " Use_compatible_dialogs = #{$phoptions.use_compatible_dialogs?}\n" +
35 | " Use_vtab_speed_limit = #{$phoptions.use_vtab_speed_limit?}\n" +
36 | " Use_exact_path = #{$phoptions.use_exact_path?}\n" +
37 | " Use_incremental_ij = #{$phoptions.use_incremental_ij?}\n" +
38 | " Always_show_safearea = #{$phoptions.always_show_safearea?}\n" +
39 | " Use_reduced_safe_height = #{$phoptions.use_reduced_safe_height?}\n" +
40 | " Use_pocket_CW = #{$phoptions.use_pocket_cw?}\n" +
41 | " Use_plunge_CW = #{$phoptions.use_plunge_cw?}\n" +
42 | " Use_outfeed = #{$phoptions.use_outfeed?}\n" +
43 | " Use_Home_Height = #{$phoptions.use_home_height?}\n"
44 | if $phoptions.use_home_height?
45 | msg += " Default_Home_Height = #{$phoptions.default_home_height}\n"
46 | end
47 | msg += " Profile_save_material_thickness = #{$phoptions.profile_save_material_thickness?}\n"
48 | UI.messagebox(msg,MB_MULTILINE)
49 | end #select
50 | end # class
51 |
52 | # open a file browser with the APPDATA/Sketchup folder current, probably only work on Windows
53 | class DisplayProfileFolderTool < PhlatTool
54 |
55 | def initialize
56 | super()
57 | @tooltype=(PB_MENU_MENU)
58 | @tooltip="Display Profiles folder"
59 | @statusText="Display profile folder"
60 | @menuText="Display Profiles Folder"
61 | end
62 |
63 | def select
64 | # path = ENV['APPDATA'] + "\\Sketchup"
65 | path = PhlatScript.toolsProfilesPath()
66 | if File.exist?(path)
67 | UI.openURL("file://" + path)
68 | else
69 | UI.messagebox('First you need to save a profile before you can display the folder that contains it')
70 | end
71 |
72 | end #select
73 | end # class
74 |
75 | end
76 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/HomepageTool.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'Phlatboyz/PhlatTool.rb'
3 |
4 | module PhlatScript
5 |
6 | class HomepageTool < PhlatTool
7 |
8 | def initialize
9 | super()
10 | @tooltype = 3
11 | @tooltip = PhlatScript.getString("Go To Phlatboyz Homepage")
12 | @largeIcon = "images/phlatboyz_homepage_large.png"
13 | @smallIcon = "images/phlatboyz_homepage_small.png"
14 | @statusText = PhlatScript.getString("Go To Phlatboyz Homepage")
15 | @menuText = PhlatScript.getString("Homepage")
16 | end
17 |
18 | def select
19 | UI.openURL("http://phlatboyz.com")
20 | end
21 |
22 | end
23 |
24 | end
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/OBCtool.rb:
--------------------------------------------------------------------------------
1 | require 'sketchup.rb'
2 | # David the Swarfer, 2019
3 | require 'Phlatboyz/PhlatboyzMethods.rb'
4 | require 'Phlatboyz/PhlatTool.rb'
5 | require 'net/http' #only from Sketchup Make 2014 upwards
6 |
7 | module PhlatScript
8 |
9 | # A tool for sending Gcode to the OpenbuildsCONTROL interface
10 | class OBCsquirt < PhlatTool
11 |
12 | def initialize
13 | super()
14 | toolname = 'Send to OpenBuildsCONTROL'
15 | @tooltype=(PB_MENU_TOOLBAR)
16 | @tooltip="Send Gcode"
17 | @statusText= "Send latest file to OpenbuildsCONTROL"
18 | @largeIcon = "images/OBicon_large.png"
19 | @smallIcon = "images/OBicon_small.png"
20 | @cmmd = nil
21 | @server = 'mymachine.openbuilds.com'
22 | end
23 |
24 | def statusText
25 | return @statusText
26 | end
27 |
28 | def cmmd=(val)
29 | @cmmd = val
30 | end
31 | # Send the latest file to OBCONTROL
32 | def select
33 | if haveOBC?
34 | puts "haveobc"
35 | if sendToOBC
36 | puts "sent"
37 | end
38 | else
39 | UI.messagebox("OpenBuildsCONTROL is not active")
40 | end
41 | end #select
42 |
43 | # detect an instance of OBCONTROL
44 | def haveOBC?
45 | url = URI("http://#{@server}:3000/api/version")
46 | #check if the driver is loaded
47 | begin
48 | res = Net::HTTP.get_response(url)
49 | rescue Errno::ECONNREFUSED, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
50 | Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
51 | return false
52 | #puts "rescued - OB server not found at #{server}"
53 | #exit
54 | end
55 | if res.code == '200'
56 | ver = Net::HTTP.get(url)
57 | puts ver
58 | return true
59 | else
60 | return false
61 | #puts 'Driver not found with code #{res.code}'
62 | #exit
63 | end
64 | end
65 |
66 | # sned the most recently saved gcode file to the OBC instance
67 | # only call this if OBC actually exists
68 | def sendToOBC
69 | puts "sendToOBC"
70 | url = URI("http://#{@server}:3000/upload")
71 |
72 | filename = PhlatScript.cncFileDir + PhlatScript.cncFileName
73 | puts " #{filename}"
74 | data = File.read(filename)
75 |
76 | request = Net::HTTP::Post.new(url)
77 | #request["User-Agent"] = 'PostmanRuntime/7.13.0'
78 | #request["Accept"] = '*/*'
79 | request["Cache-Control"] = 'no-cache'
80 | #request["Postman-Token"] = '9cd91cbf-4d85-4e0f-ad35-6cef45453e71,1c053219-f3ad-4d43-9f3f-46c22253f5bc'
81 | request["Host"] = 'mymachine.openbuilds.com:3001'
82 | request["accept-encoding"] = 'gzip, deflate'
83 | request["content-type"] = 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
84 | request["Connection"] = 'keep-alive'
85 | request["cache-control"] = 'no-cache'
86 | # important to add the actual file data to the body!
87 | request.body = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"edited-gcode.gcode\"\r\nContent-Type: false\r\n\r\n#{data}\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
88 | #now update the body length
89 | request["content-length"] = request.body.length
90 |
91 | #by doing it this way I can set use_ssl to true, otherwise we must use http not https
92 | # I do get ssl cert errors when sending to a remote machine
93 | response = Net::HTTP.start(url.hostname, url.port, use_ssl: false) do |http|
94 | res = http.request(request)
95 | case res
96 | when Net::HTTPSuccess then
97 | puts ' success'
98 | else
99 | puts ' failed'
100 | end
101 | end
102 | end
103 |
104 | end # class
105 | end # module
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/OffsetCut.rb:
--------------------------------------------------------------------------------
1 |
2 |
3 | require 'Phlatboyz/PhlatCut.rb'
4 | require 'Phlatboyz/tools/PhlatArc.rb'
5 |
6 | module PhlatScript
7 |
8 | class OffsetCut < PhlatCut
9 | include PhlatArc
10 | attr_accessor :edge
11 |
12 | def OffsetCut.load(edge)
13 | return self.new(edge)
14 | end
15 |
16 | def OffsetCut.preview(view, pts)
17 | view.drawing_color = Color_cut_drawing
18 | view.draw(GL_LINE_LOOP, pts)
19 | end
20 |
21 | def OffsetCut.cut(edges)
22 | cuts = []
23 | edges.each do | e |
24 | cut = self.new
25 | cut.cut(e)
26 | cuts.push(cut)
27 | end
28 | return cuts
29 | end
30 |
31 | def cut(edge)
32 | @edge = edge
33 | Sketchup.active_model.start_operation "Assigning Offset Cut", true
34 | @edge.set_attribute(Dict_name, Dict_edge_type, self.class.cut_key)
35 | @edge.material = edge_material
36 | Sketchup.active_model.commit_operation
37 | end
38 |
39 | def erase
40 | Sketchup.active_model.entities.erase_entities @edge
41 | end
42 |
43 | def initialize(edge=nil)
44 | super()
45 | @edge = edge
46 | end
47 |
48 | # marks all entities as having been milled in gcodeutil
49 | def processed=(val)
50 | @edge.set_attribute(Dict_name, Dict_object_mark, val)
51 | end
52 |
53 | def processed
54 | return @edge.get_attribute(Dict_name, Dict_object_mark, false)
55 | end
56 |
57 | def cut_points(reverse=false)
58 | cf = self.cut_factor
59 | if reverse
60 | yield(@edge.end.position, cf)
61 | yield(@edge.start.position, cf)
62 | else
63 | yield(@edge.start.position, cf)
64 | yield(@edge.end.position, cf)
65 | end
66 | end
67 |
68 | end
69 |
70 | class InsideCut < OffsetCut
71 | def edge_material
72 | return Color_inside_cut
73 | end
74 |
75 | def InsideCut.cut_key
76 | return Key_inside_cut
77 | end
78 |
79 | # returns the dictionary attribute for cut_depth_factor of the first entity
80 | def cut_factor
81 | return @edge.get_attribute(Dict_name, Dict_cut_depth_factor, PhlatScript.cutFactor)
82 | end
83 |
84 | end
85 |
86 | class OutsideCut < OffsetCut
87 | def edge_material
88 | return Color_outside_cut
89 | end
90 |
91 | def OutsideCut.cut_key
92 | return Key_outside_cut
93 | end
94 |
95 | # returns the dictionary attribute for cut_depth_factor of the first entity
96 | def cut_factor
97 | return @edge.get_attribute(Dict_name, Dict_cut_depth_factor, PhlatScript.cutFactor)
98 | end
99 |
100 | end
101 |
102 | end
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/PhPocketCut.rb:
--------------------------------------------------------------------------------
1 | #
2 | # Name: PocketTool.rb
3 | # Desctiption: Create a pocket face and zigzag edges
4 | # Author: Katsuhiko Toba ( http://www.eprcp.com/ )
5 | # Usage: 1. Install into the plugins directory.
6 | # 2. Select "Pocket" from the Plugins menu.
7 | # 3. Click the face to pocket
8 | # 4. Select "CenterLine Tool" from menu or toolbar
9 | # 5. Click the zigzag edge first, the face edge second.
10 | # NOTE: Do not use Centerline from context menu.
11 | # It breaks the zigzag edge.
12 | # Limitations: Simple convex face only
13 | #
14 | # ** Modified by kyyu 05-29-2010 - rewrote "get_offset_points" method because of a bug **
15 | # where the pocket lines were out of the pocket boundaries because of mix direction edges **
16 | # -Looks like it works, but not rigorously check so USE AT YOUR OWN RISK! **
17 | #
18 | # ** Modified by swarfer 2013-05-20 - press shift to only get zigzag, press ctrl to only get outline
19 | # This is a step on the way toward integrating it into Sketchucam, and properly handling complex faces
20 | #
21 | # ** Swarfer 2013-08-27 - create PocketCut type edges, mostly just copied from one of the other cut types
22 | # $Id$
23 |
24 | require 'sketchup.rb'
25 | require 'Phlatboyz/PhlatCut.rb'
26 | require 'Phlatboyz/Tools/CenterLineCut.rb'
27 |
28 | module PhlatScript
29 |
30 | class PocketCut < CenterLineCut
31 | attr_accessor :edge
32 |
33 | def initialize(edge=nil)
34 | super
35 | end
36 |
37 | def PocketCut.load(edge)
38 | return self.new(edge)
39 | end
40 |
41 | def PocketCut.cut_key
42 | return Key_pocket_cut
43 | end
44 |
45 | def PocketCut.cut(edges)
46 | cuts = []
47 | if (edges)
48 | edges.each do | e |
49 | cut = PocketCut.new
50 | cut.cut(e)
51 | cuts.push(cut)
52 | end
53 | return cuts
54 | end
55 | end
56 |
57 | def cut(edge)
58 | # puts "cut #{edge}"
59 | model = edge.model
60 | # model.start_operation("Creating Pocket Line", true, true)
61 | @edge = edge
62 | @edge.material = Color_pocket_cut
63 | # cut_factor = depth for some reason doing this here does not work
64 | @edge.set_attribute(Dict_name, Dict_edge_type, Key_pocket_cut)
65 | # model.commit_operation
66 | end
67 |
68 | def reset(view)
69 | if (view)
70 | view.tooltip = nil
71 | view.invalidate
72 | end
73 | end
74 |
75 | # returns the dictionary attribute for cut_depth_factor of the first entity
76 | def cut_factor
77 | return @edge.get_attribute(Dict_name, Dict_pocket_depth_factor, $phoptions.default_pocket_depth_factor)
78 | end
79 |
80 | # sets the cut_depth_factor attribute for all entities that are part of this cut
81 | def cut_factor=(factor)
82 | f = factor % 1000
83 | (f = 100) if (f > 100)
84 | @edge.set_attribute(Dict_name, Dict_pocket_depth_factor, f)
85 | end
86 |
87 | end
88 | end
89 |
90 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/PhlatArc.rb:
--------------------------------------------------------------------------------
1 |
2 |
3 | module PhlatScript
4 |
5 | module PhlatArc
6 |
7 | def self.is_arc?(edge)
8 | return (!edge.get_attribute(Dict_name, Dict_phlatarc_radius, nil).nil?)
9 | end
10 |
11 | def is_arc?
12 | return (!@edge.get_attribute(Dict_name, Dict_phlatarc_radius, nil).nil?)
13 | end
14 |
15 | def define_arc(radius, angle, g3, center)
16 | self.radius = radius
17 | self.angle = angle
18 | self.g3 = g3
19 | self.center = center
20 | end
21 |
22 | def angle
23 | return @edge.get_attribute(Dict_name, Dict_phlatarc_angle, 0)
24 | end
25 |
26 | def angle=(angle)
27 | @edge.set_attribute(Dict_name, Dict_phlatarc_angle, angle)
28 | end
29 |
30 | def center
31 | return @edge.get_attribute(Dict_name, Dict_phlatarc_center, (Geom::Point3d.new [0,0,0]))
32 | end
33 |
34 | def center=(cntr)
35 | @edge.set_attribute(Dict_name, Dict_phlatarc_center, cntr)
36 | end
37 |
38 |
39 | def radius
40 | return @edge.get_attribute(Dict_name, Dict_phlatarc_radius, 0)
41 | end
42 |
43 | def radius=(radius)
44 | @edge.set_attribute(Dict_name, Dict_phlatarc_radius, radius)
45 | end
46 |
47 | def g3=(g3)
48 | @edge.set_attribute(Dict_name, Dict_phlatarc_g3, g3)
49 | end
50 |
51 | def g3?
52 | return @edge.get_attribute(Dict_name, Dict_phlatarc_g3, false)
53 | end
54 |
55 | end
56 |
57 | end
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/PhlattenTool.rb:
--------------------------------------------------------------------------------
1 | require 'sketchup.rb'
2 | require 'Phlatboyz/PhlatTool.rb'
3 |
4 | module PhlatScript
5 |
6 | class PhlattenTool < PhlatTool
7 |
8 | def initialize
9 | super
10 | @tooltype = (PB_MENU_CONTEXT)
11 | end
12 |
13 | def getContextMenuItems
14 | return ['Phlatten Selected Edges']
15 | end
16 |
17 | def onContextMenu(menuItem)
18 | # For now this will just project the lines along Z to 0
19 | # TODO: Find a plane that intersects the selected edges and transform them to Z0 to keep existing line lengths
20 | del_edges = []
21 | new_edges = []
22 | edges = []
23 | faces = []
24 | Sketchup.active_model.start_operation "Phlattening selected edges", true
25 | Sketchup.active_model.selection.each { |entity|
26 | edges.push(entity) if entity.kind_of?(Sketchup::Edge)
27 | faces.push(entity) if entity.kind_of?(Sketchup::Face)
28 | }
29 | # for Sketchup > 2014 we have to delete the faces separately
30 | faces.each { |entity|
31 | entity.erase! if entity.kind_of?(Sketchup::Face)
32 | }
33 |
34 | Sketchup.active_model.selection.clear
35 | edges.each { |edge|
36 | edge.faces.each { |face|
37 | face.erase! if face.valid?
38 | }
39 | pos1 = edge.vertices.first.position
40 | pos2 = edge.vertices.last.position
41 | pt1 = Geom::Point3d.new(pos1.x, pos1.y, 0)
42 | pt2 = Geom::Point3d.new(pos2.x, pos2.y, 0)
43 | del_edges.push(edge)
44 | new_edges.push([pt1,pt2])
45 | }
46 |
47 | Sketchup.active_model.entities.erase_entities(del_edges)
48 |
49 | new_edges.each { |pts|
50 | edges = Sketchup.active_model.entities.add_edges(pts[0], pts[1])
51 | edges.each {|e| e.find_faces} if edges
52 | }
53 |
54 | Sketchup.active_model.commit_operation
55 | end
56 |
57 | end
58 |
59 | end
60 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/RampTabTool.rb:
--------------------------------------------------------------------------------
1 | require 'sketchup.rb'
2 | require 'Phlatboyz/PhlatTool.rb'
3 | require 'Phlatboyz/utils/SketchupDirectoryUtils.rb'
4 | # $Id: HelpTool.rb 57 2014-07-27 16:18:12Z swarfer@gmail.com $
5 | module PhlatScript
6 |
7 | class RampTabTool < PhlatTool
8 |
9 | def initialize
10 | super()
11 | @tooltype=(PB_MENU_MENU)
12 | @tooltip="Set Ramp VTabs"
13 | @statusText="Set Ramp VTabs"
14 | @menuText="Set Ramp VTabs"
15 | end
16 |
17 | # calculate the correct tab width, and recalculate the depth, such that the rampangle is obeyed for V tabs
18 | # tab has to be wider and higher in order to get the correct desired height
19 | # higher by tan(a) * ()bit/2)
20 | # wider by 1 bit diam
21 | def select
22 |
23 | # T the tab width to get rampangle V tabs
24 | # a = rampangle in radians
25 | # th = (100-td/100) real tab height percent
26 | # O = MT * (100-td/100)
27 | # A = O / tan(a)
28 | # T = A * 2 + bitdiam
29 |
30 | # height offset o = tan(a) * bit/2
31 | # new tab depth = 100 - (((th * mt) + o) / mt * 100)
32 | # new tab width = T + bitdiam
33 | msg = ''
34 | a = PhlatScript.torad(PhlatScript.rampangle.to_f)
35 | msg += "a in radians #{a}\n"
36 | th = (100-PhlatScript.tabDepth.to_f) / 100 # tab thickness percent
37 | msg += "th = #{th}\n"
38 | o = PhlatScript.materialThickness.to_f * th # physical tab thickness
39 | msg += "phys tab o = #{o.to_mm}\n"
40 | aa = o / Math::tan(a)
41 | msg += "aa = #{aa.to_mm}\n"
42 | t = aa * 2 + PhlatScript.bitDiameter
43 | msg += "t = #{t.to_mm}\n"
44 | ho = Math::tan(a) * (PhlatScript.bitDiameter/2)
45 | msg += "height adjust ho = #{ho.to_mm}\n"
46 | newdepth = 100 - ((o + ho) / PhlatScript.materialThickness * 100)
47 | newwidth = t
48 | msg += "new depth = #{newdepth}\nnewwidth=#{newwidth.to_mm}"
49 | PhlatScript.tabDepth = newdepth.round
50 | PhlatScript.tabWidth = newwidth
51 | # UI.messagebox(msg,MB_MULTILINE)
52 | end #select
53 | end # class
54 |
55 | end
56 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/SafeTool.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'sketchup.rb'
3 | #require 'Phlatboyz/Constants.rb'
4 | require 'Phlatboyz/PhlatTool.rb'
5 |
6 | module PhlatScript
7 |
8 | class SafeTool < PhlatTool
9 |
10 | def initialize
11 | super
12 | @point_array = Array.new(5)
13 | end
14 |
15 | def onMouseMove(flags, x, y, view)
16 | ip = view.inputpoint x, y
17 | safeArrayFromInputPoint(ip)
18 | view.invalidate
19 | end
20 |
21 | def onLButtonDown(flags, x, y, view)
22 | ip = view.inputpoint x, y
23 | safeArrayFromInputPoint(ip)
24 | self.create_geometry(view)
25 | self.reset(view)
26 | # Clear any inference lock
27 | view.lock_inference
28 | end
29 |
30 | def safeArrayFromInputPoint(inputPoint)
31 | safe_array = P.get_safe_array()
32 | w = safe_array[2]
33 | h = safe_array[3]
34 | area_point3d_array = P._get_area_point3d_array(inputPoint.position.x, inputPoint.position.y, w, h)
35 | @point_array = area_point3d_array
36 | @point_array[4] = @point_array[0]
37 | end
38 |
39 | def draw(view)
40 | self.draw_geometry(view)
41 | end
42 |
43 | # Draw the geometry
44 | def draw_geometry(view)
45 | view.drawing_color = Color_safe_drawing
46 | view.line_stipple = "."
47 | #@ip.draw view
48 | view.draw_polyline @point_array
49 | end
50 |
51 | def create_geometry(view)
52 | model = view.model
53 | entities = model.entities
54 |
55 | model.start_operation "Creating Safe Area"
56 |
57 | x0 = @point_array[0].x
58 | y0 = @point_array[0].y
59 | w = @point_array[0].distance @point_array[1]
60 | h = @point_array[0].distance @point_array[3]
61 |
62 | P.set_safe_array(x0, y0, w, h, model)
63 | P.draw_safe_area(model)
64 |
65 | model.commit_operation
66 | #Sketchup::set_status_text "Fold Created", SB_VCB_LABEL
67 | Sketchup.send_action "selectSelectionTool:"
68 |
69 | end
70 |
71 | def statusText
72 | return "Select position for Safe Area"
73 | end
74 |
75 | end
76 |
77 | end
78 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/TestTool.rb:
--------------------------------------------------------------------------------
1 | require 'sketchup.rb'
2 | require 'Phlatboyz/PhlatTool.rb'
3 | require 'Phlatboyz/PhlatProgress.rb'
4 |
5 | module PhlatScript
6 |
7 | class TestTool < PhlatTool
8 |
9 | def initialize
10 | super
11 | @tooltype = (PB_MENU_CONTEXT)
12 | end
13 |
14 | def getContextMenuItems
15 | return ['Dlg', 'Step', 'Position', 'Close']
16 | end
17 |
18 | def onContextMenu(menuItem)
19 | if menuItem == 'Dlg'
20 | @prog = ProgressDialog.new('Generating GCode...', 3)
21 | elsif menuItem == 'Step'
22 | @prog.step
23 | elsif menuItem == 'Position'
24 | @prog.position = 2
25 | elsif menuItem == 'Close'
26 | @prog.close
27 | end
28 | end
29 |
30 | end
31 |
32 | end
33 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/tools/ZeroTool.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'sketchup.rb'
3 | require 'Phlatboyz/PhlatTool.rb'
4 |
5 |
6 | module PhlatScript
7 |
8 | class ZeroTool < PhlatTool
9 |
10 | def initialize
11 | super()
12 | toolname = 'Zero tool'
13 | @tooltype=(PB_MENU_TOOLBAR)
14 | @tooltip="Set 0,0 offset"
15 | @statusText= "pick point within safe area for 0,0"
16 | @menuText="Zero Offset Pick"
17 | @largeIcon = "images/zerotool_large.png"
18 | @smallIcon = "images/zerotool_small.png"
19 |
20 | end
21 |
22 | def reset(view)
23 | super
24 | end
25 |
26 | def onMouseMove(flags, x, y, view)
27 | if @ip.pick(view, x, y)
28 | view.invalidate
29 | end
30 | end
31 |
32 | def onLButtonDown(flags, x, y, view)
33 | puts "#{@ip.position}"
34 | safe_point3d_array = P.get_safe_area_point3d_array(Sketchup.active_model)
35 | x = @ip.position.x - safe_point3d_array[0].x
36 | y = @ip.position.y - safe_point3d_array[0].y
37 | puts "offset #{x.to_mm} #{y.to_mm}"
38 | PhlatScript.zerooffsetx = x
39 | PhlatScript.zerooffsety = y
40 | # np.y = @ip.position.y + v * @vspace
41 | P.draw_safe_area(Sketchup.active_model)
42 | reset(view)
43 | end
44 |
45 | def draw(view)
46 | preview(view, @ip.position)
47 | end
48 |
49 | def preview(v, point)
50 | #draw something at the point
51 | pts = Array.new
52 | pts << Geom::Point3d.new(point.x + 0.1 , point.y + 0.1, 0)
53 | pts << Geom::Point3d.new(point.x - 0.1 , point.y + 0.1, 0)
54 | pts << Geom::Point3d.new(point.x + 0.1 , point.y - 0.1, 0)
55 | pts << Geom::Point3d.new(point.x - 0.1 , point.y - 0.1, 0)
56 | pts << Geom::Point3d.new(point.x + 0.1 , point.y + 0.1, 0)
57 | v.draw_polyline(pts)
58 | end
59 |
60 | def statusText
61 | return "Select point for X0,Y0 position"
62 | end
63 |
64 | end
65 |
66 | end
67 | # $Id$
68 |
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/utils/IniParser.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 | # utility classes for ini file handling
3 | # IniParser will read ini file and convert it to HashMap
4 | # IniGenerator will generate ini file from HashMap
5 | # Make sure that Hash has a proper structure fe:
6 | # {"SECTION_NAME" => {"ATTR_NAME"=>"ATTR_VALUE"}}
7 | # $Id$
8 |
9 | class IniParser
10 |
11 | def isSectionLine(line)
12 | return false if line[0] == ";"
13 | return (line.index('[') == 0 and line.index(']') == (line.length-1))
14 | end
15 |
16 | def sectionName(line)
17 | #remove first and last char
18 | if line
19 | return line[1..line.length()-2]
20 | end
21 | return false
22 | end
23 |
24 | def validateLine(line)
25 | raise ArgumentError, 'Incorrect file structure at: ' + line if (not isPropertyLine(line)) && (not isSectionLine(line)) && (line) && (line!= "") && (line[0] != ";")
26 | end
27 |
28 | def isPropertyLine(line)
29 | return false if line[0] == ";"
30 | if line
31 | return (line.index('=') != nil)
32 | end
33 | return false
34 | end
35 |
36 | #return key/value tuple for line
37 | def keyAndValueForLine(line)
38 | key = line[0 .. line.index('=') - 1]
39 | value = line[line.index('=') + 1 .. line.length()-1]
40 | # remove " from string
41 | value = value.gsub '"', ''
42 | return key.strip, value.strip
43 | end
44 |
45 | def removeCommentFromLine(line)
46 | if line.index(';')
47 | return line[0 .. line.index(';') - 1]
48 | end
49 | return line
50 | end
51 |
52 | def parseFileAtPath(filePath)
53 | sections = {}
54 | fileLines = IO.readlines(filePath)
55 |
56 | if fileLines
57 | sectionName = nil
58 | fileLines.each { |line|
59 | line = line.strip
60 | line = removeCommentFromLine(line)
61 |
62 | validateLine(line)
63 | if line[0] !=';'
64 | if isSectionLine(line)
65 | sectionName = self.sectionName(line)
66 | sections[sectionName] = {}
67 | end
68 | if self.isPropertyLine(line)
69 | if sectionName
70 | key, value = self.keyAndValueForLine(line)
71 | sections[sectionName][key] = value
72 | end
73 | end
74 | end
75 | }
76 | end
77 | return sections
78 | end
79 | end
80 |
81 | class IniGenerator
82 |
83 | def isSimpleType(var)
84 | return (var.is_a? Fixnum or var.is_a? String or var.is_a? Float or var.is_a? TrueClass or var.is_a? FalseClass)
85 | end
86 |
87 | def validateMap(map)
88 | #input map format validation.
89 | #map needs two levels, one level for sections
90 | #second level for settings
91 | raise ArgumentError, "incorrect map\n" if not map
92 | raise ArgumentError, "incorrect map not a hash\n" + map.to_s if not map.is_a? Hash
93 | map.each do |key, value|
94 | raise ArgumentError, "incorrect map not a subHash #{value}\n" + map.to_s if not value.is_a? Hash
95 | value.each do |deepKey, deepValue|
96 | raise ArgumentError, "incorrect map not simple\n" + map.to_s if not isSimpleType(deepValue)
97 | end
98 | end
99 | end
100 |
101 | def hashMapToIni(map)
102 | validateMap(map);
103 | iniString = ""
104 | # generate ini, iterate hash map,
105 | # use templates to generate strings
106 | map.each do |key, value|
107 | iniString << "[#{key}]\n"
108 | value.each do |deepKey, deepValue|
109 | iniString << "#{deepKey}=#{deepValue}\n"
110 | end
111 | end
112 | return iniString
113 | end
114 |
115 | def dumpHashMapToIni(map, filePath)
116 | #generate ini string
117 | iniString = hashMapToIni(map)
118 | #ensure path exists, force if needed
119 | dirPath = File.dirname(filePath)
120 | if not File.exist? dirPath
121 | Dir.mkdir(dirPath)
122 | end
123 | #write to file safely
124 | iniFile = File.new(filePath,"w")
125 | begin
126 | iniFile << iniString
127 | iniFile.close # if we don't close it here we will never see the content until after Sketchup closes
128 | rescue
129 | iniFile.close unless iniFile.nil?
130 | end
131 | end
132 |
133 | end
134 | end
--------------------------------------------------------------------------------
/Plugins/Phlatboyz/utils/SketchupDirectoryUtils.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 | # Class contains methods for dealing with sketchup directories.
3 | # Class implements platform specific methods for accessing directories
4 |
5 | # return true if running on Mac platform
6 | def PhlatScript.isMac?
7 | if (RUBY_PLATFORM =~ /mswin|mingw/)
8 | return false
9 | else
10 | return true
11 | end
12 | end
13 |
14 | # this method returns a path for storing profiles.
15 | # path depends on the system, macosx is recognized by RUBY_PLATFORM.
16 | def PhlatScript.toolsProfilesPath
17 | if PhlatScript.isMac?
18 | #MAC
19 | # Sketchup.find_support_file returns directory in:
20 | # ~/Library/Application Support/Sketchup X/SketchUp/
21 | # we will store profiles in Profiles subdirectory
22 | path = File.join(Sketchup.find_support_file("Plugins"),"Phlatboyz", "Profiles")
23 | else
24 | # Windows - support files are read only in win7, so use appdata
25 | path = ENV['APPDATA'] + "\\Sketchup"
26 | end
27 | return path
28 | end
29 |
30 | end
--------------------------------------------------------------------------------
/Plugins/_gplot.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/_gplot.exe
--------------------------------------------------------------------------------
/Plugins/airfoil_dat.rb:
--------------------------------------------------------------------------------
1 | # Airfoil_dat.rb
2 | # A plugin to import Mark Drela's AG and ST Airfoils
3 | # data from the airfoil coordinate files *.dat files
4 | #
5 | # at
6 | # http://www.charlesriverrc.org/articles/drela-airfoilshop/markdrela-ag-ht-airfoils.htm
7 | #
8 | # The plugin has only been tested in Sketchup 7 on Win XP.
9 | #
10 | # Use the plugin as required at your own risk.
11 | #
12 | # Place the file airfoil_dat.rb in the plugins folder.
13 | #
14 | # EJT 11 Aug 2009
15 | # SWARFER Jul 2013 - offset from origin so shapes are easier to select and move
16 | # SWARFER Sep 2015 - offset to -100mm, and scale to 100mm long to avoid roundoff errors
17 | # $Id$
18 | require 'sketchup.rb'
19 |
20 | def airfoil_dat_main
21 | model = Sketchup.active_model
22 | entities = model.active_entities
23 |
24 | c = 1 # used to skip first line in file
25 | vert = []
26 |
27 | filename = UI.openpanel "Import Airfoil data points","d:\\myfiles\\rc\\plotfoil","*.dat"
28 |
29 | IO.foreach(filename){
30 | |x|
31 | if c == 1
32 | c = 2
33 | elsif
34 | data = x.strip.split
35 | xx = (data[0].to_f * 100.mm).to_inch
36 | yy = (data[1].to_f * 100.mm).to_inch
37 | vert.push [xx, yy-100.mm, 0.to_f]
38 | end
39 | }
40 |
41 | new_line = entities.add_face(vert)
42 |
43 | Sketchup.send_action("viewTop:")
44 | Sketchup.send_action("viewZoomExtents:")
45 | end
46 |
47 | if( not file_loaded?("airfoil_dat.rb") )
48 | add_separator_to_menu("Plugins")
49 | UI.menu("Plugins").add_item("Airfoil data loader") { airfoil_dat_main }
50 | file_loaded("airfoil_dat.rb")
51 | end
52 |
53 |
--------------------------------------------------------------------------------
/Plugins/gplot.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/gplot.exe
--------------------------------------------------------------------------------
/Plugins/gplot.rb:
--------------------------------------------------------------------------------
1 |
2 | require 'sketchup.rb'
3 | require 'Phlatboyz/Phlatscript.rb'
4 | # $Id$
5 |
6 | class GPlot
7 |
8 | def initialize
9 | if ($phoptions.gplotter == 'default')
10 | @exe = Sketchup.find_support_file("GPlot.exe", "/Plugins")
11 | else
12 | @exe = $phoptions.gplotter
13 | end
14 | if (!@exe) || (!File.exist?(@exe))
15 | UI.messagebox('Could not locate GPlotter. Check Tools|Phlatboyz|Options|File Options|Gplotter')
16 | @exe = Sketchup.find_support_file("GPlot.exe", "/Plugins")
17 | end
18 | end
19 |
20 | def plot(filename=nil) #swarfer: allow overriding filename
21 | if (filename == nil)
22 | filename = PhlatScript.cncFileDir + PhlatScript.cncFileName
23 | end
24 | if (filename) && (File.exist?(filename)) then
25 | #puts "#{@exe} #{filename}"
26 | Thread.new{system(@exe, filename)}
27 | else
28 | UI.messagebox("Could not locate a gcode file to plot. Try using the generate gcode button.")
29 | end
30 | end
31 |
32 | end
33 |
34 | #-----------------------------------------------------------------------------
35 | if( not file_loaded?("GPlot.rb") )
36 | UI.menu("Plugins").add_item("Plot GCode") { GPlot.new.plot }
37 | end
38 | #-----------------------------------------------------------------------------
39 | file_loaded("GPlot.rb")
40 |
41 |
--------------------------------------------------------------------------------
/Plugins/phlatBone/cursor_radbone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/cursor_radbone.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/cursor_radbone_multi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/cursor_radbone_multi.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/cursor_tbone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/cursor_tbone.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/cursor_tbone_multi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/cursor_tbone_multi.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/radBoneMultiIn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/radBoneMultiIn.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/radBoneMultiOut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/radBoneMultiOut.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/radBoneSingle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/radBoneSingle.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/tBoneMultiIn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/tBoneMultiIn.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/tBoneMultiOut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/tBoneMultiOut.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/tBoneSingle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/tBoneSingle.png
--------------------------------------------------------------------------------
/Plugins/phlatBone/toolDiameter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/Plugins/phlatBone/toolDiameter.png
--------------------------------------------------------------------------------
/Plugins/phlatboyz.rb:
--------------------------------------------------------------------------------
1 | #-----------------------------------------------------------------------------
2 | # Name : PhlatBoyzTools
3 | # Description : A set of tools for marking up Phlatland Sketchup drawings and generating Phlatprinter g-code.
4 | # Menu Item :
5 | # Context Menu:
6 | # Usage : install in plugins folder
7 | # Date : Feb 2014, 2021, Dec2022
8 | # Type :
9 | # Version : SketchUcam 1.5c
10 | # $Id$
11 | #-----------------------------------------------------------------------------
12 |
13 | require('sketchup.rb')
14 | require('extensions.rb')
15 | require('langhandler.rb')
16 |
17 | module PhlatScript
18 |
19 | #place a copy of the distributed strings file into Resources
20 | def PhlatScript.copyStrings(from)
21 | #this line generates the name even if the file does not exist
22 | ofile = Sketchup.find_support_file("en-US", "Resources" ) + "/PhlatBoyz.strings"
23 | out_file = File.new(ofile, "w")
24 | if out_file
25 | in_file = File.open(from)
26 | in_file.each_line { |line|
27 | out_file.puts(line)
28 | }
29 | out_file.close
30 | in_file.close
31 | end
32 | end
33 |
34 | if (Sketchup.version.split('.')[0].to_i < 13)
35 | #v8 does not find resources within the plugins folder
36 | #but installer does not put resources files into resources, so we have to move them
37 | #make sure we have the strings file in the right place, sketchup/resources/en-US
38 |
39 | myc = Sketchup.find_support_file("en-US/PhlatBoyz.strings", "Resources" ) #fails if it doesn't exist
40 | # ofl = File.new('d:\temp\debug.log', "w")
41 | # ofl.write(myc)
42 | # ofl.write(Sketchup.version)
43 | # ofl.close()
44 |
45 | thefile = Sketchup.find_support_file("Phlatboyz/Resources/en-US/PhlatBoyz.strings", "Plugins" )
46 | if (myc == nil) #file does not exist
47 | if thefile != nil
48 | PhlatScript.copyStrings(thefile)
49 | end
50 | else
51 | #file exists, check for correct version
52 | correctversion = "1.06" #this must match the version string in the file!
53 | result = open(myc) { |f| f.grep(/stringversion/) }
54 | if result != [] #found the string, check version
55 | if !result[0].match(correctversion) #version mismatch
56 | PhlatScript.copyStrings(thefile)
57 | end
58 | else #not found, copy the new file
59 | PhlatScript.copyStrings(thefile)
60 | end
61 | end
62 | end # if version
63 |
64 | @@phlatboyzStrings = LanguageHandler.new('PhlatBoyz.strings')
65 |
66 | class PhlatScriptExtention < SketchupExtension
67 | def initialize
68 | super 'Phlatboyz Tools', 'Phlatboyz/Phlatscript.rb'
69 | self.description = 'A set of tools for marking up Phlatland Sketchup drawings and generating CNC g-code.'
70 | self.version = '1.5c'
71 |
72 | #try to find the phrev.dat file, if it exists add the version to the .version
73 | #this is purely internal, an ordinary user never sees this
74 | vv = Sketchup.find_support_file("phrev.dat", 'Plugins/')
75 | if (vv != nil)
76 | #read first line from file
77 | lines=IO.readlines(vv)
78 | vstring = lines[0]
79 | self.version += "-" + vstring.strip
80 | end
81 |
82 | self.creator = 'Phlatboyz'
83 | self.copyright = '2017..2021, Phlatboyz'
84 | end
85 |
86 | def load
87 | require 'Phlatboyz/Phlatscript.rb'
88 | PhlatScript.load
89 | end
90 |
91 | end
92 | $PhlatScriptExtension = PhlatScriptExtention.new
93 | Sketchup.register_extension($PhlatScriptExtension, true)
94 |
95 | end
--------------------------------------------------------------------------------
/Plugins/phlatboyztools.rb:
--------------------------------------------------------------------------------
1 | #-----------------------------------------------------------------------------
2 | # Name : PhlatBoyzTools
3 | # Description : A set of tools for marking up Phlatland Sketchup drawings and generating Phlatprinter g-code.
4 | # Menu Item :
5 | # Context Menu:
6 | # Usage : install in plugins folder
7 | # Date : Feb 2014
8 | # Type :
9 | # Version : SketchUcam 1.1
10 | #-----------------------------------------------------------------------------
11 |
12 | # SEE phlatboys.rb
13 | #this file no longer in use in order to make the strings resources work under Make2013/14
14 |
15 | #require('sketchup.rb')
16 | #require('extensions.rb')
17 |
18 | #class PhlatScriptExtention < SketchupExtension
19 | # def initialize
20 | # super 'Phlatboyz Tools', 'Phlatboyz/Phlatscript.rb'
21 | # self.description = 'A set of tools for marking up Phlatland Sketchup drawings and generating Phlatprinter g-code.'
22 | # self.version = '1.1d-beta'
23 | # self.creator = 'Phlatboyz'
24 | # self.copyright = '2014, Phlatboyz'
25 | # end
26 | #
27 | # def load
28 | # require 'Phlatboyz/Phlatscript.rb'
29 | # PhlatScript.load
30 | # end
31 | #
32 | #end
33 | #$PhlatScriptExtension = PhlatScriptExtention.new
34 | #Sketchup.register_extension($PhlatScriptExtension, true)
35 |
--------------------------------------------------------------------------------
/Plugins/test/data/sample.ini:
--------------------------------------------------------------------------------
1 | ;comment==
2 | [section1]
3 | attr1=1
4 | attr2=2
5 | attr3 = 3
6 | attr4="sample string"
7 | attr5="sample = string";end line comment
8 | attr6="sample [] string"
9 |
10 | [section2]
11 |
12 |
13 | attr1=1
14 | attr2=2
15 | attr3=3
--------------------------------------------------------------------------------
/Plugins/test/data/wrong-sample.ini:
--------------------------------------------------------------------------------
1 | ;comment==
2 | -------
3 | [section1]
4 | attr1=1
5 | attr2=2
6 | attr3 = 3
7 | attr4="sample string"
8 | attr5="sample = string"
9 | attr6="sample [] string"
10 |
11 | [section2]
12 |
13 |
14 | attr1=1
15 | attr2=2
16 | attr3=3
--------------------------------------------------------------------------------
/Plugins/test/tests/HashableTest.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 |
3 | class Hashable
4 |
5 | def toHash
6 | #function checks all instance variables set on object and converts them to a Hash.
7 | hash = {}
8 | self.instance_variables.each {|var|
9 | varVal = self.instance_variable_get(var)
10 | value = varVal.toHash() if varVal.is_a? Hashable
11 | value = varVal if not varVal.is_a? Hashable
12 | hash[var.to_s.delete("@")] = value}
13 | return hash
14 | end
15 | end
16 |
17 | class MachineSettings < Hashable
18 |
19 | def initialize
20 | @safeAreaX = 500
21 | @safeAreaY = 500
22 | end
23 | end
24 |
25 | class ToolSettings < Hashable
26 |
27 | def initialize
28 | @spindleSpeed = 8000
29 | @cutFactor = 1.2
30 | @bitDiameter = 6.35
31 | @tabWidth = 8
32 | @tabDepth = 8
33 | @feedRate = 300
34 | @plungeRate = 300
35 | end
36 | end
37 |
38 | class MaterialSettings < Hashable
39 |
40 | def initialize
41 | @materialThickness = 25
42 | @safeTravel = 30
43 | @useMultipass = true
44 | @multipassDepth = 5
45 | @stepover = 0.7
46 | end
47 | end
48 |
49 | class GeneralSettings < Hashable
50 |
51 | def initialize
52 | @gen3D = true
53 | @showGplot = false
54 | @commentText = "comment"
55 | end
56 | end
57 |
58 | class SettingsPrototype < Hashable
59 |
60 | def initialize
61 | @material = MaterialSettings.new()
62 | @machine = MachineSettings.new()
63 | @tool = ToolSettings.new()
64 | @material = MaterialSettings.new()
65 | @general = GeneralSettings.new()
66 | end
67 | end
68 |
69 | require_relative 'TestBase'
70 | class HashableTest < TestBase
71 | def run
72 | settings = SettingsPrototype.new()
73 | puts settings.toHash()
74 | end
75 | end
76 |
77 | end
--------------------------------------------------------------------------------
/Plugins/test/tests/IniGeneratorTest.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 | require_relative 'TestBase'
3 | require_relative '../../Phlatboyz/utils/IniParser'
4 |
5 | class IniGeneratorTest < TestBase
6 |
7 | def run()
8 | generator = IniGenerator.new()
9 |
10 | assertException("should raise exception for incorrect parameter") {
11 | generator.hashMapToIni("ss");
12 | }
13 | assertException("should raise exception for incorrect parameter") {
14 | generator.hashMapToIni({"ss"=>"xx"});
15 | }
16 |
17 | assertTrue(generator.isSimpleType("a"),"should be a simple type")
18 | assertTrue(generator.isSimpleType(1),"should be a simple type")
19 | assertTrue(generator.isSimpleType(1.0),"should be a simple type")
20 | assertFalse(generator.isSimpleType(["d", "d"]),"should be a complex type")
21 | assertFalse(generator.isSimpleType({"d"=>"d"}),"should be a complex type")
22 | map = {"section"=>{"a"=>"b"}}
23 | result = generator.hashMapToIni({"section"=>{"a"=>"b"}});
24 |
25 |
26 | assertEquals(result,"[section]\na=b\n","should be equal")
27 |
28 | map = {"section"=>{"a"=>1}}
29 | result = generator.hashMapToIni(map);
30 | assertEquals(result,"[section]\na=1\n","should be equal")
31 |
32 |
33 | map = {"section"=>{"a"=>1.1}}
34 | result = generator.hashMapToIni(map);
35 | assertEquals(result,"[section]\na=1.1\n","should be equal")
36 |
37 | map = {"section"=>{"a"=>"1.1mm"}}
38 | result = generator.hashMapToIni(map);
39 | assertEquals(result,"[section]\na=1.1mm\n","should be equal")
40 |
41 | generator.dumpHashMapToIni(map,"__test_file_map.ini")
42 | assertTrue((File.exist?"__test_file_map.ini"), "file needs to exist after dump");
43 | File.delete("__test_file_map.ini")
44 |
45 | end
46 | end
47 | end
48 |
--------------------------------------------------------------------------------
/Plugins/test/tests/IniParserTest.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 | require_relative 'TestBase'
3 | require_relative '../../Phlatboyz/utils/IniParser'
4 |
5 | class IniParserTest < TestBase
6 |
7 | def run()
8 | parser = IniParser.new()
9 | sections = parser.parseFileAtPath(File.join(File.dirname(__FILE__), '../data/sample.ini'))
10 | assertTrue(parser.isSectionLine("[xx]"),"this should be a section line");
11 | assertFalse(parser.isSectionLine("xx]"),"this should not be a section line");
12 | assertTrue(parser.isPropertyLine("ss=ss"),"this should be a property line");
13 | assertFalse(parser.isPropertyLine(";==="),"this should not be a property line");
14 | assertTrue(sections.length() == 2, "there should be 2 sections")
15 | assertEquals(parser.removeCommentFromLine("aa=bb;comment"),"aa=bb","comment at the end of line was not removed properly")
16 | assertNotNull(sections["section1"], "section1 missing")
17 | assertNotNull(sections["section2"], "section2 missing")
18 | assertEquals(sections["section1"]['attr1'],"1","wrong value")
19 | assertEquals(sections["section1"]['attr2'],"2","wrong value")
20 | assertEquals(sections["section1"]['attr3'],"3","wrong value")
21 | assertEquals(sections["section2"]['attr1'],"1","wrong value")
22 | assertEquals(sections["section2"]['attr2'],"2","wrong value")
23 | assertEquals(sections["section2"]['attr3'],"3","wrong value")
24 | assertException("should catch exception for incorrect file") {
25 | parser.parseFileAtPath(File.join(File.dirname(__FILE__), '../data/wrong-sample.ini'))
26 | }
27 | end
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/Plugins/test/tests/PhlatTests.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 |
3 | require_relative "IniParserTest"
4 | require_relative "IniGeneratorTest"
5 | require_relative "HashableTest"
6 | class TestSuite
7 |
8 | def runTests()
9 | # add your test classes here...
10 | # every class needs to have run method implemented.
11 | allTests = [IniParserTest.new(), IniGeneratorTest.new(), HashableTest.new()]
12 |
13 | allTests.each{ |test|
14 | test.setup()
15 | test.run()
16 | test.tearDown()
17 | errorStr = (test.assertionErrorCount ==1)? " error" : " errors"
18 | puts 'finished test: ' +test.class.name + ' with ' + test.assertionErrorCount.to_s + errorStr
19 | }
20 | end
21 | end
22 |
23 | testSuite = TestSuite.new()
24 | testSuite.runTests()
25 | end
--------------------------------------------------------------------------------
/Plugins/test/tests/TestBase.rb:
--------------------------------------------------------------------------------
1 | module PhlatScript
2 | class TestBase
3 | @@assertionErrorCount = 0
4 | def setup()
5 | end
6 |
7 | def run()
8 | end
9 |
10 | def tearDown()
11 | end
12 |
13 | def assertTrue(assertBool, message)
14 | if not assertBool
15 | @@assertionErrorCount = @@assertionErrorCount + 1
16 | puts "Assertion error: " + message
17 | end
18 | end
19 |
20 | def assertFalse(assertBool, message)
21 | self.assertTrue((not assertBool),message)
22 | end
23 |
24 | def assertNotNull(assertObject, message)
25 | self.assertTrue(assertObject != nil, message)
26 | end
27 |
28 | def assertNull(assertObject, message)
29 | self.assertTrue(assertObject == nil, message)
30 | end
31 |
32 | def assertEquals(val1, val2, message)
33 | if(val1 != val2)
34 | @@assertionErrorCount = @@assertionErrorCount + 1
35 | puts "Assertion error: " + message, ' - expected: ' + val1.to_s + ' got:' + val2.to_s
36 | end
37 | end
38 |
39 | def assertException(message, &block)
40 | #calls a code block passed as an argument.
41 | #expects it to tail with an exception.
42 | # if no exception, it means test will fail
43 | begin
44 | block.call()
45 | rescue
46 | return
47 | end
48 | puts "No exception caught: " + message
49 | @@assertionErrorCount = @@assertionErrorCount + 1
50 | end
51 |
52 | def assertionErrorCount
53 | @@assertionErrorCount
54 | end
55 | end
56 | end
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SketchUcam for Sketchup
2 | SketchUCam is a free plugin written for the Google/Trimble SketchUp CAD program that allows the creation of
3 | Gcode to control your cnc machines and bring your SketchUp creations into the real world!
4 |
5 | The ultimate goal is to create a complete CAM/Controller solution directly within SketchUp
6 | capable of outputting 2.5D or 3D tool paths and possibly in the future will be the ability
7 | to not only output the g-code but control the machine as well. We're sure Sketchucam will be
8 | adapted for many different types of machines. This will be great. Please share.
9 |
10 | SketchUcam is made possible though many great volunteers (super heroes) who have contributed to
11 | the project free of charge! Give a shout out to them.
12 |
13 | SketchUcam can not be used for commercial gain or sold in any form. We are keeping this truly open source.
14 |
15 | Thank You, Mark and Trish Carew
16 | http://www.OpenBuilds.com
17 |
18 | # Installing
19 | Please get the latest release from
20 | http://openbuilds.com/projectresources/sketchucam.1/
21 | or
22 | https://github.com/swarfer/sketchucam/releases
23 | and **follow the install instructions**.
24 |
25 | **NOTE**
26 | If you download the master.zip (link at right) and follow the howtobuild.txt instructions you *may* be able
27 | to create your own .rbz install file. You must install the correct tools first, *follow the instructions!*
28 | (This is not trivial, you should rather download a [RELEASE](https://github.com/swarfer/sketchucam/releases))
29 |
30 | The MANUAL is available after you install by clicking the big blue question mark in the toolbar.
31 | OR
32 | You can view it [online here](http://swarfer.github.io/sketchucam/)
33 | Note that the online version may mention features that have not yet made it into a release.
34 |
35 | A playlist of HowTo videos is available on [Youtube](https://www.youtube.com/watch?v=TShp4_e6Z-U&list=PLm728rLHCWOw-vRvTJwS_5MmKG1fs4sZ0)
36 |
--------------------------------------------------------------------------------
/docs/afterinstall.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SketchUcam - Thing to do After Instal
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
After install...
14 |
15 |
16 |
Back to help index
17 |
18 |
19 |
After installing Sketchucam all features will work without further setup.
20 | However, there are some settings you will want to change to suite your machines size and capabilities.
21 |
22 |
23 |
24 | To make these changes you need to access the "
Tools|Phlatboyz|Options|Machine Options " menu item as illustrated at right.
25 |
Things you may need to change
26 |
27 | Default_safe_width (X)
28 | Set this to the largest workpiece your machine can take in the X direction.
29 | Default_safe_height (Y)
30 | Set this to the largest workpiece Y size.
31 | Default_overhead_gantry
32 | If all you have is a Phlatprinter, set this to false. If all you have is a gantry type machine, set this to true. If you have both styles, set to the one you use the most.
33 |
34 |
35 |
36 | Min_z
37 | It is VERY IMPORTANT that you get these settings correct.
38 | Do NOT set Min_Z to zero unless you also set Default_tabletop is Z-Zero on the Misc Options dialog to TRUE, and NEVER change it
39 | in the parameters dialog. Failing to do this correctly will result in faulty G-code generation.
40 | Min_z = -maxZtravel
41 | Max_z = maxZtravel
42 | are the preferred settings, allowing both 'material top' and 'table top' as Z-zero to work properly.
43 |
44 | Set this to negative (-) your Z travel. G-code will never contain negative Z travel more than this figure.
45 | Max_z
46 | Set this to your Z travel. G-code will never contain Z travel more than this figure.
47 |
48 |
49 | You can read the full help for
that dialog here .
50 |
51 |
52 |
53 |
54 |
55 |
56 | Now visit the "
Tools|Phlatboyz|Options|Tool Options " menu item as illustrated at right.
57 | If you have a flat bed machine you will want to set the
58 |
Default_cut_depth_factor to 100%
59 | This will prevent it cutting into the table. A cut depth factor greater 100% will cut through the material and into the table.
60 | Read the
full help for that dialog here
61 |
62 |
63 |
64 |
65 |
66 |
67 | Now visit the "
Tools|Phlatboyz|Options|Feature Options " menu item as illustrated at right.
68 | Read the
help for those options and make changes as needed for your machine.
69 |
70 |
GRBL: if you are running the GRBL controller will will want to set 'Use_exact_path' to false
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
Thank you for your interest in the Phlatboyz project. Please take the time to visit the Phlatforum
87 | for lots of great people sharing great ideas and designs created with SketchUcam on their Phlatboyz machines!
88 |
89 |
90 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/docs/edgemenu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Phlatboyz SketchUcam Edge Context Menu
6 |
7 |
8 |
9 |
10 |
11 |
12 |
PHLATBOYZ
13 |
14 |
Phlatboyz SketchUcam(PhlatScripT)
SketchUcam Version 1.3 May 2015
15 |
16 |
17 |
18 |
19 |
20 |
21 | SketchUcam Edge Context MenuBack to help index
22 |
23 |
24 |
25 |
26 | These menu items appear in the "Phlat Edge" sub menu when right clicking on any edge.
27 |
28 |
29 |
30 |
31 | Inside Edge
32 |
33 |
34 |
35 | Selecting this command will mark selected edges as SketchUcam Inside
36 | edge. No other change will be made to the edge. This allows you to
37 | select individual edges in SketchUp and create SketchUcam cut edges from
38 | them.
39 |
40 |
41 |
42 |
43 |
44 |
45 | Outside Edge
46 |
47 |
48 |
49 | Selecting this command will mark selected edges as SketchUcam Outside
50 | edges. This allows you to select individual edges in SketchUp and
51 | create SketchUcam cut edges from them. No other change will be made to
52 | the edge.
53 |
54 |
55 |
56 | Erase Selected Phlat Edges
57 |
58 |
59 |
60 | This command will clear all selected edges that are currently marked as SketchUcam edges.
61 | Note: The original design edges will remain but the original SketchUcam edges will be deleted.
62 |
63 |
64 |
65 |
66 |
67 |
68 | Phlatten Selected Edges
69 |
70 |
71 |
72 | This command will set all selected parts to 0 on the Z plane. This is a
73 | great tool for laying parts out in the safe cutting area before
74 | assigning cuts to them. A great feature of this tool is that it ensures
75 | that the part is perfectly flat and that the proper face (default blue)
76 | is facing upward.
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
Thank you for your interest in the SketchUcam project. Please take the time to visit the Phlatforum for lots of great people sharing great ideas and designs created with the PhlatScripT on their Phlatboyz machines!
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/docs/howto_3d.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SketchUcam: HOWTO use the 3D generator
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Phlatboyz SketchUcam(PhlatScripT)
15 |
SketchUcam Version 1.4c 2016
16 |
17 |
18 |
19 |
Back to help index
20 |
HOWTO use the 3D G-code generator
21 |
22 | The 3D script by Nicholas Peshman has been incorporated into SketchUcam so that it can use
23 | the parameters on the
Parameters Dialog .
24 |
25 | It will fetch bit diameter, stepover% and multipass depth from the dialog.
26 |
27 |
28 | Move Group or groups (of 3D objects) to within the safe area starting from 0,0 and on the 0 plane
29 | Tick the 'Generate 3D Gcode' box in the parameters.
30 | Click 'Generate G-code'
31 |
32 |
33 | WARNING:
34 | This script is still under development and does not produce perfect output, yet.
35 |
36 |
37 | Here is an old video by Nicholas about using this module
38 | https://www.youtube.com/watch?v=HUNpZ0-bFRI
39 | and actually cutting something similar...
40 | https://www.youtube.com/watch?v=BZMKPhxizmM
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/docs/howto_profileexchange.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SketchUcam: HOWTO exchange tool profiles with friends
5 |
6 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
Phlatboyz PhlatScripT
19 |
SketchUcam Version 1.1c Feb 2014
20 |
21 |
22 |
23 |
Back to help index
24 |
HOWTO exchange tool profiles with friends
25 |
26 | Tool and material profiles can be exchanged between users, sharing the ease of setup for particular materials.
27 | This document will guide you through exchangeing profiles with other users.
28 |
NOTE: Profiles only work with Sketchup units set to millimeters or inches (decimal).
29 |
30 |
31 |
32 |
33 |
34 |
35 | Exchanging profiles
36 |
37 |
38 |
39 |
40 | Giving your profiles away
41 |
42 |
43 | The profiles are stored in the Sketchup folder within each users APPDATA folder which you can display via the
44 | Tools|Phlatboyz|Display Profiles Folder
45 | menu item.
46 | [MAC: see bottom of page] .
47 | Should that menu item not open a file browser in the relevant folder containing a number of .TPR files follow the instructions below
48 | The path to this folder varies between Windows versions but can easily be found by doing the following:
49 |
50 |
51 |
52 | do this
53 | Click 'Start'
54 | Click 'Run'
55 | Paste '%APPDATA%/Sketchup'
56 | Press Enter
57 | or this
58 | Open 'My Computer'
59 | Paste '%APPDATA%/Sketchup' in the address bar
60 | Press Enter
61 | or this
62 | Use 'My Computer' to navigate to (may vary between Windows versions)
63 | C:\Users\yourusername\AppData\Roaming\SketchUp
64 |
65 |
66 | Windows will open a file explorer with the folder displayed.
67 | All the 'somename.TPR' files are your profiles.
68 | To give them to someone else, simply email them, transfer them with a flash stick or post them on phlatforum.com
69 | in the 'Material/Bit Specific Feedrates' topic.
70 |
71 |
72 |
73 |
74 | Installing a downloaded profile
75 |
76 |
77 | To install a profile that you have downloaded:
78 |
79 | Open your APPDATA folder (as above).
80 | Copy or move the downloaded profile file to that folder.
81 | Open Sketchup and confirm that you can load it.
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | Mac/Linux users: you will be running Sketchup under Wine and the APPDATA environment variable does not exist.
91 | The folder is in a path similar to
92 | /home/username/.wine/c_drive/users/username/Application Data/Sketchup
93 | You may need to set your folder viewer to 'display hidden files' in order to see the .wine folder
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/docs/icons/OBicon_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/OBicon_large.png
--------------------------------------------------------------------------------
/docs/icons/OBicon_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/OBicon_small.png
--------------------------------------------------------------------------------
/docs/icons/Pocket_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/Pocket_large.png
--------------------------------------------------------------------------------
/docs/icons/Pocket_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/Pocket_small.png
--------------------------------------------------------------------------------
/docs/icons/SketchUcam-Window-Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/SketchUcam-Window-Logo.png
--------------------------------------------------------------------------------
/docs/icons/andy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/andy.png
--------------------------------------------------------------------------------
/docs/icons/bones01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones01.png
--------------------------------------------------------------------------------
/docs/icons/bones02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones02.png
--------------------------------------------------------------------------------
/docs/icons/bones03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones03.png
--------------------------------------------------------------------------------
/docs/icons/bones04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones04.png
--------------------------------------------------------------------------------
/docs/icons/bones05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones05.png
--------------------------------------------------------------------------------
/docs/icons/bones06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones06.png
--------------------------------------------------------------------------------
/docs/icons/bones07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones07.png
--------------------------------------------------------------------------------
/docs/icons/bones08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones08.png
--------------------------------------------------------------------------------
/docs/icons/bones08png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones08png.png
--------------------------------------------------------------------------------
/docs/icons/bones09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bones09.png
--------------------------------------------------------------------------------
/docs/icons/bonesbit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bonesbit.png
--------------------------------------------------------------------------------
/docs/icons/bracket_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bracket_large.png
--------------------------------------------------------------------------------
/docs/icons/bracket_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/bracket_small.png
--------------------------------------------------------------------------------
/docs/icons/cboretool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cboretool_large.png
--------------------------------------------------------------------------------
/docs/icons/cboretool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cboretool_small.png
--------------------------------------------------------------------------------
/docs/icons/centerlinetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/centerlinetool_large.png
--------------------------------------------------------------------------------
/docs/icons/centerlinetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/centerlinetool_small.png
--------------------------------------------------------------------------------
/docs/icons/chamfer-diag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer-diag.png
--------------------------------------------------------------------------------
/docs/icons/chamfer-s1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer-s1.png
--------------------------------------------------------------------------------
/docs/icons/chamfer-s2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer-s2.png
--------------------------------------------------------------------------------
/docs/icons/chamfer-s3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer-s3.png
--------------------------------------------------------------------------------
/docs/icons/chamfer01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer01.png
--------------------------------------------------------------------------------
/docs/icons/chamfer02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer02.png
--------------------------------------------------------------------------------
/docs/icons/chamfer03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/chamfer03.png
--------------------------------------------------------------------------------
/docs/icons/comment_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/comment_large.png
--------------------------------------------------------------------------------
/docs/icons/comment_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/comment_small.png
--------------------------------------------------------------------------------
/docs/icons/csink01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csink01.png
--------------------------------------------------------------------------------
/docs/icons/csink02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csink02.png
--------------------------------------------------------------------------------
/docs/icons/csink03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csink03.png
--------------------------------------------------------------------------------
/docs/icons/csink04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csink04.png
--------------------------------------------------------------------------------
/docs/icons/csinktool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csinktool_large.png
--------------------------------------------------------------------------------
/docs/icons/csinktool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csinktool_small.png
--------------------------------------------------------------------------------
/docs/icons/csinkwooda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/csinkwooda.png
--------------------------------------------------------------------------------
/docs/icons/cursor_centerlinetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_centerlinetool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erase_centerlinecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erase_centerlinecut.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erase_foldcut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erase_foldcut.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erase_insidecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erase_insidecut.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erase_outsidecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erase_outsidecut.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erase_plungecut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erase_plungecut.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erase_tabcut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erase_tabcut.png
--------------------------------------------------------------------------------
/docs/icons/cursor_erasetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_erasetool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_foldtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_foldtool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_insidecuttool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_insidecuttool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_outsidecuttool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_outsidecuttool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_plungetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_plungetool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_safetool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_safetool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_tabtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_tabtool.png
--------------------------------------------------------------------------------
/docs/icons/cursor_vtabtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/cursor_vtabtool.png
--------------------------------------------------------------------------------
/docs/icons/edgecontext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/edgecontext.png
--------------------------------------------------------------------------------
/docs/icons/erasetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/erasetool_large.png
--------------------------------------------------------------------------------
/docs/icons/erasetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/erasetool_small.png
--------------------------------------------------------------------------------
/docs/icons/foldtool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/foldtool_large.png
--------------------------------------------------------------------------------
/docs/icons/foldtool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/foldtool_small.png
--------------------------------------------------------------------------------
/docs/icons/gcode_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/gcode_large.png
--------------------------------------------------------------------------------
/docs/icons/gcode_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/gcode_small.png
--------------------------------------------------------------------------------
/docs/icons/helptool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/helptool_large.png
--------------------------------------------------------------------------------
/docs/icons/helptool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/helptool_small.png
--------------------------------------------------------------------------------
/docs/icons/holepattern01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/holepattern01.png
--------------------------------------------------------------------------------
/docs/icons/holepattern02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/holepattern02.png
--------------------------------------------------------------------------------
/docs/icons/holepattern03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/holepattern03.png
--------------------------------------------------------------------------------
/docs/icons/howto01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/howto01.png
--------------------------------------------------------------------------------
/docs/icons/howto02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/howto02.png
--------------------------------------------------------------------------------
/docs/icons/howto03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/howto03.png
--------------------------------------------------------------------------------
/docs/icons/insidecuttool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/insidecuttool_large.png
--------------------------------------------------------------------------------
/docs/icons/insidecuttool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/insidecuttool_small.png
--------------------------------------------------------------------------------
/docs/icons/joiner_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/joiner_large.png
--------------------------------------------------------------------------------
/docs/icons/joiner_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/joiner_small.png
--------------------------------------------------------------------------------
/docs/icons/laser1a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/laser1a.png
--------------------------------------------------------------------------------
/docs/icons/laser2a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/laser2a.png
--------------------------------------------------------------------------------
/docs/icons/laser3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/laser3a.png
--------------------------------------------------------------------------------
/docs/icons/options-feature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options-feature.png
--------------------------------------------------------------------------------
/docs/icons/options-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options-file.png
--------------------------------------------------------------------------------
/docs/icons/options-holefeatures.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options-holefeatures.png
--------------------------------------------------------------------------------
/docs/icons/options-machine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options-machine.png
--------------------------------------------------------------------------------
/docs/icons/options-misc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options-misc.png
--------------------------------------------------------------------------------
/docs/icons/options-tool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options-tool.png
--------------------------------------------------------------------------------
/docs/icons/options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/options.png
--------------------------------------------------------------------------------
/docs/icons/optsummary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/optsummary.png
--------------------------------------------------------------------------------
/docs/icons/outsidecuttool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/outsidecuttool_large.png
--------------------------------------------------------------------------------
/docs/icons/outsidecuttool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/outsidecuttool_small.png
--------------------------------------------------------------------------------
/docs/icons/parameterstool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/parameterstool_large.png
--------------------------------------------------------------------------------
/docs/icons/parameterstool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/parameterstool_small.png
--------------------------------------------------------------------------------
/docs/icons/params.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/params.png
--------------------------------------------------------------------------------
/docs/icons/phlat01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/phlat01.png
--------------------------------------------------------------------------------
/docs/icons/phlatbones.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/phlatbones.png
--------------------------------------------------------------------------------
/docs/icons/phlatboyz_homepage_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/phlatboyz_homepage_large.png
--------------------------------------------------------------------------------
/docs/icons/phlatboyz_homepage_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/phlatboyz_homepage_small.png
--------------------------------------------------------------------------------
/docs/icons/plungetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/plungetool_large.png
--------------------------------------------------------------------------------
/docs/icons/plungetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/plungetool_small.png
--------------------------------------------------------------------------------
/docs/icons/pocket1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/pocket1.png
--------------------------------------------------------------------------------
/docs/icons/pocket2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/pocket2.png
--------------------------------------------------------------------------------
/docs/icons/pocket3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/pocket3.png
--------------------------------------------------------------------------------
/docs/icons/pocket4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/pocket4.png
--------------------------------------------------------------------------------
/docs/icons/profileload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/profileload.png
--------------------------------------------------------------------------------
/docs/icons/profiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/profiles.png
--------------------------------------------------------------------------------
/docs/icons/profilesave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/profilesave.png
--------------------------------------------------------------------------------
/docs/icons/quicktoolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/quicktoolbar.png
--------------------------------------------------------------------------------
/docs/icons/ramp01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp01.png
--------------------------------------------------------------------------------
/docs/icons/ramp01a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp01a.png
--------------------------------------------------------------------------------
/docs/icons/ramp02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp02.png
--------------------------------------------------------------------------------
/docs/icons/ramp03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp03.png
--------------------------------------------------------------------------------
/docs/icons/ramp04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp04.png
--------------------------------------------------------------------------------
/docs/icons/ramp05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp05.png
--------------------------------------------------------------------------------
/docs/icons/ramp06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp06.png
--------------------------------------------------------------------------------
/docs/icons/ramp07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp07.png
--------------------------------------------------------------------------------
/docs/icons/ramp08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp08.png
--------------------------------------------------------------------------------
/docs/icons/ramp09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp09.png
--------------------------------------------------------------------------------
/docs/icons/ramp10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramp10.png
--------------------------------------------------------------------------------
/docs/icons/ramplimit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/ramplimit.png
--------------------------------------------------------------------------------
/docs/icons/reorder_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/reorder_large.png
--------------------------------------------------------------------------------
/docs/icons/reorder_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/reorder_small.png
--------------------------------------------------------------------------------
/docs/icons/rotate_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/rotate_large.png
--------------------------------------------------------------------------------
/docs/icons/rotate_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/rotate_small.png
--------------------------------------------------------------------------------
/docs/icons/safetool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/safetool_large.png
--------------------------------------------------------------------------------
/docs/icons/safetool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/safetool_small.png
--------------------------------------------------------------------------------
/docs/icons/sfm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/sfm.png
--------------------------------------------------------------------------------
/docs/icons/sfm2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/sfm2.png
--------------------------------------------------------------------------------
/docs/icons/tabtool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/tabtool_large.png
--------------------------------------------------------------------------------
/docs/icons/tabtool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/tabtool_small.png
--------------------------------------------------------------------------------
/docs/icons/toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/toolbar.png
--------------------------------------------------------------------------------
/docs/icons/toolchange01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/toolchange01.png
--------------------------------------------------------------------------------
/docs/icons/toolchange_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/toolchange_large.png
--------------------------------------------------------------------------------
/docs/icons/toolchange_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/toolchange_small.png
--------------------------------------------------------------------------------
/docs/icons/toolsmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/toolsmenu.png
--------------------------------------------------------------------------------
/docs/icons/zerotool_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/zerotool_large.png
--------------------------------------------------------------------------------
/docs/icons/zerotool_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/icons/zerotool_small.png
--------------------------------------------------------------------------------
/docs/images/SketchUcam-Window-Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/SketchUcam-Window-Logo.png
--------------------------------------------------------------------------------
/docs/images/bones01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones01.png
--------------------------------------------------------------------------------
/docs/images/bones02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones02.png
--------------------------------------------------------------------------------
/docs/images/bones03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones03.png
--------------------------------------------------------------------------------
/docs/images/bones04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones04.png
--------------------------------------------------------------------------------
/docs/images/bones05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones05.png
--------------------------------------------------------------------------------
/docs/images/bones06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones06.png
--------------------------------------------------------------------------------
/docs/images/bones07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones07.png
--------------------------------------------------------------------------------
/docs/images/bones08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones08.png
--------------------------------------------------------------------------------
/docs/images/bones08png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones08png.png
--------------------------------------------------------------------------------
/docs/images/bones09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bones09.png
--------------------------------------------------------------------------------
/docs/images/bonesbit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/bonesbit.png
--------------------------------------------------------------------------------
/docs/images/chamfer-diag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer-diag.png
--------------------------------------------------------------------------------
/docs/images/chamfer-s1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer-s1.png
--------------------------------------------------------------------------------
/docs/images/chamfer-s2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer-s2.png
--------------------------------------------------------------------------------
/docs/images/chamfer-s3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer-s3.png
--------------------------------------------------------------------------------
/docs/images/chamfer01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer01.png
--------------------------------------------------------------------------------
/docs/images/chamfer02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer02.png
--------------------------------------------------------------------------------
/docs/images/chamfer03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/chamfer03.png
--------------------------------------------------------------------------------
/docs/images/csink01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/csink01.png
--------------------------------------------------------------------------------
/docs/images/csink02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/csink02.png
--------------------------------------------------------------------------------
/docs/images/csink03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/csink03.png
--------------------------------------------------------------------------------
/docs/images/csink04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/csink04.png
--------------------------------------------------------------------------------
/docs/images/csinkwooda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/csinkwooda.png
--------------------------------------------------------------------------------
/docs/images/edgecontext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/edgecontext.png
--------------------------------------------------------------------------------
/docs/images/holepattern01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/holepattern01.png
--------------------------------------------------------------------------------
/docs/images/holepattern02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/holepattern02.png
--------------------------------------------------------------------------------
/docs/images/holepattern03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/holepattern03.png
--------------------------------------------------------------------------------
/docs/images/howto01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/howto01.png
--------------------------------------------------------------------------------
/docs/images/howto02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/howto02.png
--------------------------------------------------------------------------------
/docs/images/howto03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/howto03.png
--------------------------------------------------------------------------------
/docs/images/laser1a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/laser1a.png
--------------------------------------------------------------------------------
/docs/images/laser2a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/laser2a.png
--------------------------------------------------------------------------------
/docs/images/laser3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/laser3a.png
--------------------------------------------------------------------------------
/docs/images/options-feature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options-feature.png
--------------------------------------------------------------------------------
/docs/images/options-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options-file.png
--------------------------------------------------------------------------------
/docs/images/options-holefeatures.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options-holefeatures.png
--------------------------------------------------------------------------------
/docs/images/options-machine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options-machine.png
--------------------------------------------------------------------------------
/docs/images/options-misc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options-misc.png
--------------------------------------------------------------------------------
/docs/images/options-tool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options-tool.png
--------------------------------------------------------------------------------
/docs/images/options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/options.png
--------------------------------------------------------------------------------
/docs/images/optsummary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/optsummary.png
--------------------------------------------------------------------------------
/docs/images/params.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/params.png
--------------------------------------------------------------------------------
/docs/images/phlat01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/phlat01.png
--------------------------------------------------------------------------------
/docs/images/phlatbones.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/phlatbones.png
--------------------------------------------------------------------------------
/docs/images/pocket1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/pocket1.png
--------------------------------------------------------------------------------
/docs/images/pocket2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/pocket2.png
--------------------------------------------------------------------------------
/docs/images/pocket3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/pocket3.png
--------------------------------------------------------------------------------
/docs/images/pocket4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/pocket4.png
--------------------------------------------------------------------------------
/docs/images/profileload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/profileload.png
--------------------------------------------------------------------------------
/docs/images/profiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/profiles.png
--------------------------------------------------------------------------------
/docs/images/profilesave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/profilesave.png
--------------------------------------------------------------------------------
/docs/images/quicktoolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/quicktoolbar.png
--------------------------------------------------------------------------------
/docs/images/ramp01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp01.png
--------------------------------------------------------------------------------
/docs/images/ramp01a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp01a.png
--------------------------------------------------------------------------------
/docs/images/ramp02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp02.png
--------------------------------------------------------------------------------
/docs/images/ramp03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp03.png
--------------------------------------------------------------------------------
/docs/images/ramp04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp04.png
--------------------------------------------------------------------------------
/docs/images/ramp05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp05.png
--------------------------------------------------------------------------------
/docs/images/ramp06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp06.png
--------------------------------------------------------------------------------
/docs/images/ramp07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp07.png
--------------------------------------------------------------------------------
/docs/images/ramp08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp08.png
--------------------------------------------------------------------------------
/docs/images/ramp09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp09.png
--------------------------------------------------------------------------------
/docs/images/ramp10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramp10.png
--------------------------------------------------------------------------------
/docs/images/ramplimit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/ramplimit.png
--------------------------------------------------------------------------------
/docs/images/sfm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/sfm.png
--------------------------------------------------------------------------------
/docs/images/sfm2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/sfm2.png
--------------------------------------------------------------------------------
/docs/images/toolbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/toolbar.png
--------------------------------------------------------------------------------
/docs/images/toolchange01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/toolchange01.png
--------------------------------------------------------------------------------
/docs/images/toolsmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/swarfer/sketchucam/eb51a9869e3c8739a2be1777502a74fc6fb24986/docs/images/toolsmenu.png
--------------------------------------------------------------------------------
/docs/machelp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SketchUcam: HOWTO use Ramping
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Phlatboyz SketchUcam(PhlatScripT)
15 |
16 | SketchUcam Version 1.4d Jan 2017
17 |
18 |
19 |
20 |
21 |
Back to help index
22 |
Help for MAC users
23 |
24 |
Special keys:
25 |
Some Mac keyboards do not have the HOME and END keys (and ALT may not be labelled).
26 |
There are alternate combinations that simulate those keys:
27 |
28 | HOME = "FN-LEFT ARROW"
29 | END = "FN-RIGHT ARROW"
30 | ALT = OPTION
31 |
32 |
Sometimes you may have to hit the FN-LEFT twice before the dialog comes up.
33 |
Thanks to OpenBuilds user andycbrklyn for help with this.
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/docs/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | if exist help.html del index.html
3 | if exist help.html move help.html index.html
4 | php make.php *.html
5 |
--------------------------------------------------------------------------------
/docs/make.php:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/docs/style.css:
--------------------------------------------------------------------------------
1 | body, div, span {
2 | font-family: Verdana;
3 | }
4 | body {
5 | background-color: grey;
6 | text-align: center;
7 | max-width: 1024px;
8 | padding-left:0.5%;
9 | padding-right:0.5%;
10 | margin-left: auto;
11 | margin-right: auto;
12 | }
13 | div.shell {
14 | /*background-color: #eee;*/
15 | background-color: #ddeeff;
16 | /*background-color: white;*/
17 | font-size: 1.05em;
18 | }
19 |
20 | div.intro-name {
21 | text-align:center;
22 | font-size: 1.20em;
23 | font-weight: bold;
24 | padding-top:25px;
25 | }
26 | div.intro-name div {
27 | font-size: 0.60em;
28 | font-weight: normal;
29 | }
30 | div.intro-title {
31 | text-align:center;
32 | margin:10px;
33 | font-size: 1.10em;
34 | font-weight: bold;
35 | padding-top: 15px;
36 | }
37 | div.intro {
38 | text-align: justify;
39 | margin:5px;
40 | padding: 5px;
41 | font-size: 0.90em;
42 | }
43 |
44 |
45 | .command-image {
46 | /*background-color: #ededed;*/
47 | background-color: #ddeeff;
48 | height: 100px;
49 | font-weight: bold;
50 | font-size: 0.90em;
51 | vertical-align:center;
52 | padding:10px;
53 | border-top: thin solid white;
54 | border-left: thin solid white;
55 | border-right: thin solid #cccccc;
56 | border-bottom: thin solid #cccccc;
57 | }
58 | .command-description {
59 | /*background-color: #ededed;*/
60 | background-color: #eaecfa;
61 | /*margin: 2px;*/
62 | padding: 15px;
63 | border-top: thin solid white;
64 | border-left: thin solid white;
65 | border-right: thin solid #cccccc;
66 | border-bottom: thin solid #cccccc;
67 | font-size: 0.90em;
68 | vertical-align: top;
69 | }
70 |
71 | .command-title {
72 | font-size: 1.00em;
73 | font-weight: bold;
74 | /*border-bottom: thin solid blue;*/
75 | text-align: center;
76 | padding-top: 25px;
77 | border-top: thin solid white;
78 | border-left: thin solid white;
79 | border-right: thin solid #cccccc;
80 | border-bottom: thin solid #cccccc;
81 | text-decoration: underline;
82 | }
83 | .command-subtitle {
84 | font-size: 0.70em;
85 | font-style: italic;
86 | }
87 | .newcolour {
88 | color: #000000;
89 | }
90 | hr {
91 | background-color: #6699ff;
92 | height: 2px;
93 | border: 0;
94 | }
95 | td {
96 | text-align: justify;
97 | }
98 | dt {
99 | margin-top: 5px;
100 | font-weight: bold;
101 | }
102 | .index {
103 | line-height: 1.6em;
104 | }
105 | img {
106 | margin-left: 1em;
107 | }
--------------------------------------------------------------------------------
/howtobuild.txt:
--------------------------------------------------------------------------------
1 | How to build the SketchUcam distribution file
2 |
3 | You need
4 | 1 - php-cli installed and in the environment path
5 | 2 - 7zip installed in 'c:\program files\7-zip\7z.exe'
6 | 3 - Sketchup 8 installed in either
7 | 'C:\Program Files (x86)\Google\Google SketchUp 8' (under 64bit Windows)
8 | 'C:\Program Files\Google\Google SketchUp 8' (under 32bit Windows)
9 | 4 - the code repo must be in one of the above folders, not in a subfolder called 'sketchucam', thus
10 | after you have first cloned it you need to move the contents of ..../sketchucam to the 'Google Sketchup 8' folder
11 | 5 - run make.bat
12 | this will create a zip of the .rb and supporting files and then create the .rbz from that.
13 |
--------------------------------------------------------------------------------
/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem if exist i:\ goto ido
3 | if exist c:\ goto cdo
4 | goto fail
5 |
6 | :ido
7 | I:
8 | cd "I:\public_html\phlat\plugins"
9 | goto zipit
10 |
11 | :cdo
12 | c:
13 | REM stole this from git-cmd.bat, should set git path for us so we don't have to run gitshell
14 | @setlocal
15 |
16 | REM find the actual Portablegit folder and use it, this means we don't have to keep up with git upgrades in this file
17 | set PGIT=none
18 | if not exist C:\Users\david\AppData\Local\GitHub goto newpc
19 | for /F %%a in ('dir /b C:\Users\david\AppData\Local\GitHub\Port*') do set PGIT=%%a
20 | @set git_install_root=C:\Users\david\AppData\Local\GitHub\%PGIT%
21 | goto spath
22 |
23 | :newpc
24 | set PGIT=C:\Program Files\Git
25 | echo %PGIT%
26 |
27 | goto spath
28 |
29 | @rem Get the absolute path to the current directory, which is assumed to be the
30 | @rem Git installation root.
31 | REM if exist C:\Users\david\AppData\Local\GitHub\PortableGit_c2ba306e536fdf878271f7fe636a147ff37326ad goto aa
32 | REM if exist C:\Users\david\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c goto bb
33 | REM if exist C:\Users\david\AppData\Local\GitHub\PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 goto cc
34 | REM :aa
35 | REM @set git_install_root=C:\Users\david\AppData\Local\GitHub\PortableGit_c2ba306e536fdf878271f7fe636a147ff37326ad
36 | REM goto spath
37 | REM
38 | REM :bb
39 | REM @set git_install_root=C:\Users\david\AppData\Local\GitHub\PortableGit_c7e0cbde92ba565cb218a521411d0e854079a28c
40 | REM goto spath
41 | REM
42 | REM :cc
43 | REM @set git_install_root=C:\Users\david\AppData\Local\GitHub\PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0
44 | REM goto spath
45 |
46 |
47 | :spath
48 | REM refresh the doc for the code
49 | cd "C:\Program Files (x86)\Google\Google SketchUp 8\Plugins\Phlatboyz"
50 | echo calling rdoc
51 | call rdoc *.rb *.rb tools\*.rb utils\*.rb
52 | cd "C:\Program Files (x86)\Google\Google SketchUp 8\"
53 |
54 | @set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH%
55 |
56 | @set PLINK_PROTOCOL=ssh
57 | @if not defined TERM set TERM=msys
58 | git describe --abbrev=4 --dirty --always --tags --contains > plugins\phrev.dat
59 | dir plugins\phrev.dat
60 |
61 | if exist "C:\Program Files (x86)\Google\Google SketchUp 8" cd "C:\Program Files (x86)\Google\Google SketchUp 8\Plugins"
62 | if exist "C:\Program Files\Google\Google SketchUp 8\Plugins" cd "C:\Program Files\Google\Google SketchUp 8\Plugins"
63 | cd
64 | if exist Phlatboyz goto zipit
65 | echo Phlatboyz not found
66 | goto fail
67 |
68 | :zipit
69 | echo Zipit
70 | cd
71 | del tp.zip
72 | "c:\program files\7-zip\7z" a ..\tp.zip *.* -x@..\make.ex -r
73 | dir /s /b *.zip
74 |
75 | rem del ..\sketchucam-1*.rbz
76 | cd ..
77 | REM subwcrev .\ phrev.txt phrev.dat // git does not support this
78 | if not exist tp.zip echo ERROR tp.zip not found
79 | if exist tp.zip php move.php tp.zip SketchUcam-1_5c.rbz
80 |
81 | goto end
82 |
83 | :fail
84 | echo "failed"
85 | :end
86 |
--------------------------------------------------------------------------------
/make.ex:
--------------------------------------------------------------------------------
1 | !auto*
2 | *.bak
3 | *.rbz
4 | *.zip
5 | 2D*
6 | BZ_Dir_*
7 | CNC-profile.rb
8 | CNC_Files
9 | Cadalog_Gear*
10 | CenterPointAll.rb
11 | ChrisP_RadialMove_EN.rb
12 | DM_*
13 | Examples
14 | ExtrudeTools*
15 | LibTraductor.rb
16 | Ocean
17 | PhlatScript Installation Instructions.pdf
18 | Phlatboyz\MyConstants.rb
19 | PocketTool.r_b
20 | PocketTool.rb
21 | PocketTool.rbz
22 | RCS
23 | TIG-Smart_offset
24 | TIG-Smart_offset.rb
25 | TRUEPLUNGE.TXT
26 | Utilities
27 | attribs*
28 | bezierspline.rb
29 | deBabelizer.rb
30 | drawhelix*
31 | examples.rb
32 | flattery*
33 | flightpath.rb
34 | fredo*
35 | freedxf*
36 | helix*
37 | hideall.rb
38 | jf*.rb
39 | ky_Reorder_Groups (v1.1).rb
40 | ocean_extension.rb
41 | orig*
42 | skp_to_dxf.rb
43 | smustard*
44 | stray*.rb
45 | test
46 | tt_*
47 | utilities.rb
48 | Sync*
49 | _*
50 | voro*
51 | pointtool*
52 | as_face*
53 | centerpoint*
54 | delau*
55 | MyConst*
56 | sr_cutlist*
57 | sketchup-stl*
58 | PhlatBoyz\doc\*
--------------------------------------------------------------------------------
/maked.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | cd "C:\Program Files (x86)\Google\Google SketchUp 8\Plugins\Phlatboyz"
3 | call rdoc *.rb *.rb tools\*.rb utils\*.rb
4 | cd "C:\Program Files (x86)\Google\Google SketchUp 8\"
5 |
--------------------------------------------------------------------------------
/move.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/phrev.txt:
--------------------------------------------------------------------------------
1 | $WCREV$
--------------------------------------------------------------------------------