Week 2: Computer-aided design

Week 2 individual work splits into two CAD tracks. First, a 2D laser workflow for an Elsa / ISA Innovation Centre tech–music violin wall bracket: vector booleans in LaserMaker, a real cut on the lab machine, and spray finish with laser-cut masks. Second, 3D CAD in Blender for the final-project planter on the omni-wheel base. FDM print verification comes later on Week 5; this page keeps the bracket story and Blender mesh pipeline together. I also note how I shrink screenshots and clips for site uploads (same pass in the group section).

Individual assignment

What I was trying to cover this week

I kept two tracks. On the laser side I wanted the full loop on one page: CAD booleans, motifs from a small music-symbol library file, machine time, then masking for two-tone spray. On the 3D side I documented Blender CAD for the final-project planter on the omni base (eight-step mesh workflow from import through mask booleans). I rewrote the laser section to match what I actually did; the filenames on my captures already spell out the design order. Week 5 later tested that Blender mesh on the printer.

Laser-cut flat design: Elsa tech–music violin wall bracket

I wanted one panel that reads as Elsa / “ISA Innovation Centre” sci‑tech but still sings as a music object: circuit-like engraving, a clear layout for the hook / magnets, and motifs I could reuse instead of redrawing. I worked entirely in LaserMaker, using its vector tools and booleans the way my screenshot filenames tag each stage (“design 1…4”). On the machine I ran mark/cut on approved sheet stock, then finished with clearcoat and two-tone spray through laser-cut masks so paint never flooded the fine engraved lines.

2D software: LaserMaker (what it is, install, rough workflow)

LaserMaker is the lab’s paired 2D vector + laser CAM package: I draw and boolean-cut ornament on one canvas, assign cut vs engrave by color or layer as the machine expects, then send the job to the cutter without round-tripping through a separate illustration app. That keeps kerf, fill, and small engraved strokes in one place, which matters for a panel where art and mechanical holes share the same outline.

Getting the app: I installed it from the vendor’s software portal (pick the build that matches the lab PC or my laptop (typically Windows x64; macOS builds are listed when available). Official download and updates: LaserMaker official software portal — downloads & docs. Flow on a new machine: open the site → download the installer for my OS → run it → sign in or activate per lab policy → confirm the laser model/driver preset matches our bench before drawing.

Rough workflow in LaserMaker for this bracket: new document → set artboard / stock size → sketch functional regions (hook, holes) → boolean union for one outer contour → add engraving graphics (circuit texture, badges) → duplicate geometry into mask plates for spray → assign process colors → simulate / send. The motif library is a separate .lcpx so I can import or copy consistent music symbols instead of redrawing staffs each time. See Design 1–4 below and the downloadable projects at the end of this section.

Design 1: sheet size, hook zone, and decoration plan

First I locked the board outline, the functional regions (hook pocket, fastener holes), and the mix of STEM + anime-adjacent ornament I could actually cut cleanly. Getting this right early saved me from splitting hairs on booleans while the vectors were still messy.

LaserMaker screenshot: dimensions and decoration plan for violin bracket
Figure 1: Design step 1:dimensions, hook logic, and the decorative fields sketched before heavy boolean work.

Design 2: unions for one clean outer silhouette

I merged the ornamental outlines with the functional frame using boolean union so the outer profile was a single closed path the laser could follow without duplicate or orphan segments, which made it easier to color by process (cut vs engrave) in the CAM side of LaserMaker.

LaserMaker screenshot: combined union outline for violin stand
Figure 2: Design step 2:combined unions give one coherent outer contour and fewer CAM surprises.

Design 3: “circuit + 二次元” graphic pass

On top of the silhouette I layered the circuit-board texture, badge shapes, and the flatter graphic strokes that sell the “tech” story. I watched minimum feature size so skinny traces would engrave rather than vanish in soot, and kept pockets wide enough to sand later without erasing artwork.

LaserMaker screenshot: circuit traces and stylized decoration on bracket
Figure 3: Design step 3:adding circuit texture and stylized graphics after the union pass.

Music-symbol motif library (separate .lcpx)

Staff lines and note heads repeat across the piece, so I did not want to freehand them each time. I keep a small music-symbol library as its own LaserMaker project (music-symbol-motif-library.lcpx), essentially my clip-art shelf. In the main bracket file I import / copy-merge motifs from that library when I need another flourish, which keeps spacing and note shapes consistent. You can download both the library and the assembled layout below in Design files.

Design 4: laser-cut paint masks alongside the bracket

Spray paint is fast but sloppy without a plan. I drafted companion mask plates in the same CAD session: closed vectors that register against the real board and cover everything that should stay bare wood during a given color pass. The masks were cut from thin scrap on the same machine; the orange/black sequence below follows mask 1 → mask 2 so the two accent colors never wrestle in the same region.

LaserMaker screenshot: companion geometry for spray-paint masking
Figure 4: Design step 4:mask outlines paired with the bracket art before sending the job.

Machine pass, video and still on the LaserMaker bed

I ran the lab’s laser with our usual focus / power / speed recipe for the sheet thickness, engraving before through-cuts so small islands do not lift early. The short clip is sped-up proof of the job; the still shows the panel on the honeycomb in context.

Video: Laser cut of the bracket panel (screen capture from the cutter workflow).
Laser cutter engraving the violin bracket plywood on honeycomb bed
Figure 5: Still from the lab.head working across the panel on the LaserMaker honeycomb.

Post-processing: off the laser, hardware, clearcoat

Right off the bed the panel was warm and smoky; I brushed off char without sanding through shallow engraving. I mounted the metal bracket hardware through the prepared slots so I could trust alignment before painting. Then I misted clear acrylic as a dust seal, light coats so the grain still reads but fingerprints and graphite from handling do not embed in the texture.

Violin bracket panel freshly cut, before finish
Figure 6: Fresh cut.checking engraving depth and kerf before hardware.
Metal support bracket installed to laser-cut wooden panel
Figure 7: Mechanical hardware installed.paint order comes after this fit check.
Clearcoat applied to wooden bracket for dust protection
Figure 8: Clearcoat pass.seals the surface before masked color accents.

Masked spray: orange (mask 1), then black (mask 2)

With the laser-cut mask inserts taped flat, I shot orange through the first opening set, peeled, aligned mask 2, then laid down black. Keeping coats light avoided bleed-under at mask edges; anywhere the tape lifted, I paused and re-sealed before continuing. The physical mask pieces themselves are shown for transparency—same geometry as design step 4.

Laser-cut mask piece number one for orange spray
Figure 9: Mask piece 1.cut from thin stock, registers on the board for the orange field.
Laser-cut mask piece number two for black spray
Figure 10: Mask piece 2.second pass isolates the black regions without touching orange zones.
Spraying orange paint while using first laser-cut mask on bracket
Figure 11: Orange pass with mask 1.ventilated space, light rattle-can strokes.
Spraying black paint while using second laser-cut mask on bracket
Figure 12: Black pass with mask 2.peel between colors so edges stay crisp.

Finished piece and in-use context

The last photos are what I’d submit as evidence the loop closes: a finished bracket close-up and a wider scene showing how it reads on the wall next to other lab work. I still owe a tidy table of power / speed / kerf for this specific plywood lot—that’s the next spreadsheet pass when I sync with our group characterization sheet.

Finished painted laser-cut violin wall bracket
Figure 13: Finished bracket.orange/black accents registered off the same laser masks.
Violin bracket shown in use or display context
Figure 14: Context shot.how the piece reads in the space beside the rest of the wall rig.

Design files (download)

Both projects are native LaserMaker (.lcpx) archives—same format as in the workflow above, so anyone with LaserMaker can open layers and CAM settings intact. I host copies here so reviewers don’t depend on my laptop; if you only need geometry, exporting SVG/DXF from LaserMaker is also possible, but the live assignments use .lcpx.

How to fetch them from this site: click a link below → if the browser previews XML/text, use Save As… (or right-click → Download linked file) so the file lands as .lcpx → open in LaserMaker → point the machine profile at the lab cutter. On GitLab Pages, “open instead of download” is common; saving explicitly avoids a corrupted workflow bundle.

Why these two files: the main layout is the full bracket + masks for the Elsa / ISA tech–music story; the motif library is the reusable clip-art shelf for notes and staffs so the main file stays readable and I don’t scatter duplicate vectors. Splitting “ornament library” from “final panel” matches how I actually iterate.

3D CAD (Blender): root planter & omni-wheel base

Following final-project.html and the repo’s final-project-weekly-plan.md, this block documents Week 2 CAD where the main structure becomes geometry I could actually print: how the planter meets the base, where cables run, and whether parts clash. This step supports Milestone 1 (mobile platform and basic safety).

3D software choice: I used Blender for all steps below: mesh import, edit mode cleanup, modifiers (taper, booleans), and STL export for the slicer. It is free / open source and cross-platform, which made it easy to iterate on the same .blend between lab machines and my own computer. Official installers and release notes live on the project download page: Blender — Download. Typical install: choose the latest stable or LTS build → select operating system (macOS/Windows/Linux) → run the downloaded package → on first launch, pick defaults suitable for “general” modeling and enable import/export add-ons if needed for uncommon mesh formats.

The practical order in Blender is an eight-step pipeline: import meshadapt detailsscale to the rovertaperbottom volumemask solidsboolean union (trunk + bottom) → boolean intersection / difference with masks for wheel wells, routing, and fasteners. That order stabilized after Week 5 showed the first full print failed when the root and wheel ring were not a single watertight solid. The slicer bridged gaps instead of tracing shared perimeters. The captures below record the workflow I use now. A one-line-per-step outline also lives in documents/week05-modeling-process-outline.docx; file names in the repo follow the step/sub-step pattern (for example 1.1, 2.3).

Blender, and why I used it

Blender is open-source 3D software: mesh modeling, modifiers (including booleans), and STL/OBJ import/export are enough for mixed organic-and-mechanical parts like this planter. The same official download page bundles the documentation and release highlights; I stayed on a recent stable build so modifier behavior matched what Week 5 used for the failed / reworked prints.

I used it mainly because the planter is an irregular organic surface from a downloaded mesh, and I needed the root and the wheel base in one scene to line them up, add a printable bottom, and cut openings without leaving floating shells. It is free and runs on my laptop, which helps for trial and error.

Open-source starting mesh

The planter starts from an open-source root “pencil holder” mesh (same asset family as in the steps below). Figure 15 shows the source listing / provenance I kept for the assignment.

Choosing and downloading the base file: on the repository page I checked the license (e.g. Creative Commons / explicit commercial-use OK) and the file format , I picked a mesh I could import with Blender’s File → Import (commonly .stl, .obj, or .fbx). Download steps are usually: sign in if the site requires it → click Download → save into my project folder with a clear filename → in Blender, File → Import → … and scale/orient once in the viewport. I chose this particular stump/holder because the silhouette already reads as a planter, the cavity fits the “root” story for the final project, and starting from a sculpt saved days of blocking organic bark that weren’t the learning goal for Week 2 (booleans against the rover base were).

Screenshot of the open-source root pencil holder listing
Figure 15: Open-source root “pencil holder” asset used as the starting mesh for the planter.

Step 1: Import the trunk pencil-holder model

With the downloaded file from the listing (see Open-source starting mesh), I used Blender’s File → Import menu and the appropriate entry for the format I saved (for example STL or Wavefront (.obj)). That brings the trunk in as the starting body, staged for a print-ready assembly, not only a render prop, centered and scaled roughly before the first cleanup pass.

Blender viewport: imported trunk pencil-holder mesh as starting geometry
Figure 16: Step 1.1: base mesh imported into the scene before boolean and modifier passes.

Step 2: Adapt and refine details

I adapted the mesh and edited fine detail so the organic shell could take the later taper, masks, and booleans without self-intersections, pinholes, or knife-edge walls that FDM cannot reproduce.

Blender viewport: detail edits on trunk mesh step 2.1
Figure 17: Step 2.1: first detail pass on the trunk surface and openings.
Blender viewport: detail edits on trunk mesh step 2.2
Figure 18: Step 2.2: continuing local refinements before scaling to the base.
Blender viewport: detail edits on trunk mesh step 2.3
Figure 19: Step 2.3: balancing wall thickness and silhouette for FDM.
Blender viewport: detail edits on trunk mesh step 2.4
Figure 20: Step 2.4: detail passes complete enough to match the omni-wheel plate.

Step 3: Resize the trunk to match the rover

I scaled the trunk to the omni-wheel plate and chassis so wheel pockets, cable exits, and mounting features lined up with the mobile base in one assembly.

Blender viewport: trunk scaled to match omni-wheel base footprint
Figure 21: Step 3.1: scale locked relative to the wheel base reference.

Step 4: Add the taper modifier

I added Blender’s Taper modifier and tuned it so the trunk silhouette fit the rover footprint, narrowing or flaring the mesh before the bottom and masks were merged in.

Blender viewport: taper modifier applied to trunk mesh
Figure 22: Step 4.1: taper settings previewed before applying booleans.

Step 5: Add the bottom to match rover and trunk scale

I modeled a bottom volume sized to both the rover plate and the trunk so the flat platform and the organic shell met with solid contact. That was the main fix for a reliable FDM joint instead of a long air bridge in the slicer.

Blender viewport: bottom geometry aligned to trunk and base step 5.1
Figure 23: Step 5.1: bottom volume sketched to match both tree and chassis.
Blender viewport: bottom geometry refinement step 5.2
Figure 24: Step 5.2: bottom mass adjusted for printable thickness and overlap.

Step 6: Add masks for the various cuts

I added separate mask solids (helpers for wheel pockets, routing holes, and clearance cylinders) so each feature could be driven with predictable booleans instead of ad hoc mesh edits alone.

Blender viewport: mask objects for wheel and opening cuts step 6.1
Figure 25: Step 6.1: first mask solids positioned for feature cuts.
Blender viewport: additional mask geometry step 6.2
Figure 26: Step 6.2: extending masks for clearance and cable paths.
Blender viewport: mask set complete before boolean operations step 6.3
Figure 27: Step 6.3: mask stack ready for boolean union/intersection with the trunk.

Step 7: Boolean union: trunk and bottom

I applied a boolean union so the trunk and bottom became one watertight solid for export. That directly addressed the weak root-to-base junctions I saw in slicing.

Blender viewport: boolean union result of trunk and bottom block
Figure 28: Step 7.1: merged solid after trunk–bottom union.

Step 8: Boolean intersection: trunk and masks

I used boolean intersection (and difference where needed) so the mask volumes carved the final openings (wheel wells, cable path, fastener holes) without leaving non-manifold or floating fragments in the exported mesh.

Blender viewport: boolean intersection of trunk with mask objects for final openings
Figure 29: Step 8: intersection pass yields the trimmed shell ready for export.

Final Blender source file

The final Week 2 Blender drawing is my planter model with the hand-shaped chassis/base included — the scene after I brought the organic planter and the bottom platform together. The raw .blend is about 144 MB; zipping it shrinks the download to about 57 MB, but Fab Academy GitLab still rejects any single push larger than roughly 50 MiB, so I split the zip into two parts for this site. Download both below, then follow the restore steps in the next subsection.

  1. 花盆_v3.2.blend.zip.part-aa — part 1 of 2 (~40 MB)
  2. 花盆_v3.2.blend.zip.part-ab — part 2 of 2 (~17 MB)

How to restore the split archive (复原教程)

Anyone cloning this assignment should end up with the same 花盆_v3.2.blend I used in lab. The parts are not two different models — they are one zip file cut in half for upload. You need both parts in the same folder before merging.

Step 1 — Download both parts

Click each link above (or right-click → Save Link As…). Put 花盆_v3.2.blend.zip.part-aa and 花盆_v3.2.blend.zip.part-ab in one directory, e.g. design-files/week02/ on your machine. If either file is missing, the merge will produce a broken zip.

Step 2 — Merge the parts into one zip

macOS or Linux (Terminal) — open Terminal, cd into the folder that holds both parts, then:

cd path/to/design-files/week02
cat 花盆_v3.2.blend.zip.part-* > 花盆_v3.2.blend.zip
ls -lh 花盆_v3.2.blend.zip

The merged file should be about 57 MB. If it is only ~40 MB, part-ab is probably still missing or was not included in the cat command.

Windows (Command Prompt) — open cmd, cd to the folder with both parts, then:

cd path\to\design-files\week02
copy /b 花盆_v3.2.blend.zip.part-aa+花盆_v3.2.blend.zip.part-ab 花盆_v3.2.blend.zip

Windows (PowerShell) — same folder, then:

cd path\to\design-files\week02
Get-Content -Path "花盆_v3.2.blend.zip.part-aa","花盆_v3.2.blend.zip.part-ab" -AsByteStream |
  Set-Content -Path "花盆_v3.2.blend.zip" -AsByteStream
Step 3 — Unzip to get the Blender file

Double-click 花盆_v3.2.blend.zip in Finder or Explorer, or from a terminal:

unzip 花盆_v3.2.blend.zip

You should see 花盆_v3.2.blend (~144 MB). Open it in Blender (File → Open) — the same version I used is fine; Blender generally opens older .blend files forward-compatible.

Step 4 — Quick sanity check

In the Blender viewport I expect the planter trunk, tapered shell, bottom platform, and mask objects from the eight-step pipeline above. If the file fails to open or reports corruption, re-download both parts (a partial download is the usual cause) and repeat the merge — do not rename the part files before merging.

I kept the unsplit .blend and full zip on my laptop for local edits; only the two part files live on GitLab so the class site stays within the upload limit.

What’s on this page and what’s next

Week 2 individual work covers the Elsa tech–music violin bracket in LaserMaker (including the separate music-symbol .lcpx), the machine run, and mask-guided spray, plus Blender CAD for the planter and omni-wheel base (eight-step pipeline: import → detail → scale → taper → bottom → masks → union → intersection), with the final .blend split archive linked above (see restore steps to merge the two parts). FDM validation is on Week 5: 3D scanning and printing.

Next: tabulate sheet thickness, power, speed, focus, and kerf for this plywood lot next to the downloadable .lcpx files; keep versioning Blender sources as the rover hardware shifts; repeat the mask workflow if I add a third accent color so registration stays predictable.

Website uploads: shrinking photos and clips

The class site/GitLab uploads cap how heavy each file can be, so before publishing I prepared smaller versions of the same screenshots and a screen recording. Two ideas I kept in mind: resolution sets how many pixels describe the scene, while JPEG export quality sets roughly how many bits encode each pixel—I used both knobs in sequence on stills. For motion, exporting a lower-resolution movie from QuickTime is the simple built-in route on macOS when I only need proof of process, not mastering quality.

Images: Preview (adjust size → export JPEG)

I duplicated my working files first, then in Preview used Tools → Adjust Size… with proportional scaling checked. I snapped Finder Get Info before and after so the assignment shows the shrink in MB, not only a guess.

Finder Get Info for original PNG before resizing
Figure 30: Original PNG: Get Info (~9.9 MB) before resizing.
Preview Adjust Size dialog with width height and proportional scale options
Figure 31: Tools → Adjust Size…, reduced pixel dimensions proportionally before export.
Preview size dialog showing 72 DPI field
Figure 32: Pixel dimensions / resolution fields while resizing (dpi note left as-is for web use).
Adjust Size scaled to percentage of original
Figure 33: Same dialog with scale set to ~36 % of original width/height.
Finder Get Info showing smaller PNG after resizing
Figure 34: After resize: Get Info (~3.3 MB).

I then used File → Export…, picked JPEG for photographic captures, lowered the quality slider another notch, and saved under a new name so I could compare side by side with the archive copy.

Video: QuickTime Player export

For clips I opened the source in QuickTime Player and exported to a smaller preset (480p or 720p) so fewer pixels ride in each frame compared with the original capture on disk.

QuickTime Player with video open before export
Figure 35: Clip open in QuickTime before export.
QuickTime Export As menu listing 480p and 720p options
Figure 36: File → Export As…, choosing a lower-resolution export path (480p/720p as needed).

Before / after screen recordings

The two files below archive the uncompressed capture and the 480p export I kept for uploads. Codec and wrapper differ (original .mp4, export .mov), so byte size alone is not the whole story—the scaled export trades frame size for a lighter clip on the page.

Clip A: Original screen capture (week02-video-before-compression.mp4).
Clip B: QuickTime export labeled 480p (week02-video-after-480p.mov).

Group assignment, media sizing for documentation

Same constraint as elsewhere in the academy site: uploads need manageable stills and short clips without blocking the pipeline. Below is the pass I documented for Lasermaker/screenshot walkthrough assets. It mirrors what I summarized in my individual section (compressing assets for uploads) so instructors can skim either page.

Photos: macOS Preview, Tools → Adjust Size…File → Export… → JPEG quality; keep originals under a renamed copy. Video: QuickTime, File → Export As… → 480p or 720p preset; retain both source and scaled exports for comparisons.

Finder Get Info before shrinking documentation stills
Group note, Finder size before shrinking stills (~9.9 MB original PNG).
QuickTime Export As menu with 480p and 720p options
Group note, Export ladder in QuickTime (480p/720p presets).

Archived comparison clips

Original capture for reference.
480p-class export retained for uploads.