Dallas Makerspace Show and Tell - December 2016

Metal shop now has a 4’ wide slip roller, if you have sheet metal to bend into curves, tubes, or cones, now you can. It’s temporarily at floor height on casters before it gets a proper home, but it is usable now.

9 Likes

That was quick. The new brake & shear should be shipping next week. Also that roller should do different sized rod to roll rings. By rings I don’t mean small either.

1 Like

I wanted to take that class… looks awesome!

2 Likes

@jaycen and I made these cute screwdrivers on the lathe during @talkers class! It was a fantastic class and John was a great and patient teacher!

Padouk wood with linseed oil finish. :slightly_smiling_face:

9 Likes

Created a modified torch holder for the PlasmaCam. Found some 1"emt, cut that down to about an inch. Split that in half then welded to some mounts that I cut out on the PlasmaCam. The fit is much better. When it is used, you have to bottom the torch to the holder. I was working on another design but ultimately ended with this as a simplistic fix.

10 Likes

So a few people have seen me up at the space with my golf trailer moving my motorcycles around. I built a ramp onto the trailer, and had started building strapless stands to better secure the bikes inside the trailer. Well, got one finished and into the trailer. Bike fits perfectly, and is very secure (check out the video)

Video:

6 Likes

I have a lot of scrap HDPE from another project I’m almost finished with. I used some of it to make two oversized cutting boards. Really nice material!

11 Likes

And perfectly done, I might add. Nice job.

1 Like

Made a last minute Christmas gift in John Gorman’s laser etching glass with the rotary tool class. Also 3D printed a White Lantern ring and made a teak box for the ring as another Christmas gift.

5 Likes

We made some wall art Christmas presents for a few family members. Overall it was really easy… the frames themselves were bought from a craft store, then we added backer board, cut some scrap wood pieces to size, painted/stained them at home, and glued them in place. And the word was laser cut out of mdf and painted.

Merry Christmas all!!

9 Likes

Laser cut some inserts for tins for Christmas gifts.

14 Likes

Created a present for my Dad on the PlasmaCAM. Material was 1/8" stainless 2B plate.


Cleaned it up with the sandblaster and the final finish looks great.

13 Likes

Saw this when he completed it. It did look awesome. Great work!

Padouk wood box.

14 Likes

Crazy lace agate wrapped in rose-gold-filled with sterling silver accents

9 Likes

And this one, forget what the stones were, wrapped in gold-filled and sterling silver, but was interesting challenge with the stone configuration

12 Likes

A gift for the MultiCam (users)…

-- VECTRIC LUA SCRIPT

require "strict"


--[[
================================================================================
  Copyright (c) 2016 Rowdy Dog Software

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to
  deal in the Software without restriction, including without limitation the
  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  sell copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in
  all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  IN THE SOFTWARE.
================================================================================

  VCarve Gadget that...
  - Ensures a job is loaded
  - Prepares an output directory for the MultiCam g-code files
  - Moves any files already in the output directory to a backup directory
  - Ensures all toolpaths are up-to-date
  - Outputs one g-code file for each toolpath where the filename is
        Sequence - Abbreviation for Tool Type - Abbreviation for Tool Size

  Future enhancements...
  - Squash toolpaths that use the same tool
  - Display a summary / success report
  - Output a summary / success report
  - Perform a two-phase commit on the output directory

================================================================================
]]

function main(script_path)

    -- Ensure a job is loaded or bail out
    local job
    job = VectricJob()
    if (job == nil) or (not job.Exists) then
        local dlg
        dlg = FileDialog()
        if not dlg:FileOpen( "crv", "*.crv", "VCarve Files (*.crv)||" ) then
            return false
        end
        OpenExistingJob(dlg.PathName)
    end

    -- Ensure the job has a name
    if job.Name == '' then
        MessageBox("For this gadget to work correctly the job must have a name.  Save the current job then try again.")
        return false
    end

    -- Determine where output should go
    local username
    local userpath
    local usermkdir
    local outputpath
    local backuppath
    username = os.getenv("USERNAME")
    userpath = '\\\\files\\committees\\woodworking\\CNC Router\\_Programs\\' .. username .. '\\'
    outputpath = userpath .. job.Name .. '\\'
    backuppath = outputpath .. 'Backup' .. '\\'

    -- Create the base output directory, the project output directory, and the backup directory
    usermkdir = 'mkdir \"'..userpath..'\"'
    os.execute( usermkdir )
    usermkdir = 'mkdir \"'..outputpath..'\"'
    os.execute( usermkdir )
    usermkdir = 'mkdir \"'..backuppath..'\"'
    os.execute( usermkdir )

    -- Remove existing files from outputpath
    local usercopy
    local reader = DirectoryReader()
    reader:BuildDirectoryList( outputpath, false )
    if reader:NumberOfDirs() ~= 1 then
        MessageBox("Unexpected failure trying to clear the output directory")
        return false
    end
    reader:GetFiles( "*.*", true, false )
    for i1 = 1, reader:NumberOfFiles() do
        local entry = reader:FileAtIndex( i1 )
        if string.find( entry.Name, username ) ~= nil then
            usercopy = 'copy \"'..entry.Name..'\" \"'..backuppath..'.\"'
            os.execute( usercopy )
            os.remove( entry.Name )
        end
    end

    -- Ensure all toolpaths are up-to-date
    local tpm = ToolpathManager()
    local rv1 = tpm:RecalculateAllToolpaths()
    if rv1 == nil then
        MessageBox("Recalculate all toolpaths failed")
        return false;
    end

    -- Prepare for post-processing
    local tps = ToolpathSaver();
    local pp = tps:GetPostWithName( "MultiCam G Code Arc (inch) (*.cnc)" )
    if pp == nil then
        MessageBox("Failed to load post processor")
        return false
    end

    -- Generate one g-code file for each toolpath
    local toolpath
    local s1
    local sequence = 1
    local position = tpm:GetHeadPosition()
    while position ~= nil do
        toolpath, position = tpm:GetNext( position )
        s1 = outputpath ..
            tostring(sequence) ..
            "-" ..
            FilenameFromTool(toolpath.Tool) ..
            ".cnc"
        tps:ClearToolpathList()
        tps:AddToolpath( toolpath )
        tps:SaveToolpaths( pp, s1, false )
        sequence = sequence + 1
    end

    return true
end


--[[
  Abbreviate a toolpath.Tool.ToolDia for use in a short filename.
]]
function AbbreviateToolDiameter(tool)
    local sixteenths = math.floor((tool.ToolDia*16)+0.5)
    if (sixteenths == 2) then
        return "1_8"
    elseif (sixteenths == 4) then
        return "1_4"
    elseif (sixteenths == 6) then
        return "3_8"
    elseif (sixteenths == 8) then
        return "1_2"
    else
        return tostring(sixteenths)
    end
end


--[[
  Abbreviate details about a Tool for use as a short filename.
]]
function FilenameFromTool(tool)
    local rv
    local ts
    local tnu

    rv = tool.ToolTypeText
    tnu = string.upper(tool.Name)

    if tool.ToolType == Tool.BALL_NOSE then
        rv = "BN"
        rv = rv .. '-' .. AbbreviateToolDiameter(tool)
    elseif tool.ToolType == Tool.END_MILL then
        rv = "EM"
        ts = AbbreviateToolDiameter(tool)
        if string.find( tnu, "DOWNCUT" ) ~= nil then
            rv = "DC"
        elseif string.find( tnu, "UPCUT" ) ~= nil then
            rv = "UC"
        elseif string.find( tnu, "COMPRESSION" ) ~= nil then
            rv = "C"
        elseif string.find( tnu, "SUPER O" ) ~= nil then
            rv = "SO"
        elseif string.find( tnu, "DIAMOND" ) ~= nil then
            rv = "DD"
            if string.find( tnu, "120" ) ~= nil then
                ts = "120"
            elseif string.find( tnu, "90" ) ~= nil then
                ts = "90"
            else
              -- fix?  Do what?
            end
        end
        rv = rv .. '-' .. ts
    elseif tool.ToolType == Tool.VBIT then
        rv = "VB"
        rv = rv .. '-' .. tostring(tool.VBit_Angle)
    elseif tool.ToolType == Tool.DIAMOND_DRAG then
        rv = "DD"
        if string.find( tnu, "120" ) ~= nil then
            ts = "120"
        elseif string.find( tnu, "90" ) ~= nil then
            ts = "90"
        else
            ts = tostring(tool.VBit_Angle)
        end
        rv = rv .. '-' .. ts
    end
    return rv
end
3 Likes

Applique style embroidered patch for an Overwatch Genji costume in progress…

5 Likes

Cool! Isn’t the applique’ option on SewArt convenient?

Was really glad I got to take Matt’s class A Wood Shop project class to build a box with sliding lid to learn basic joints and tool usage and made a box.

10 Likes