Skip to content

2. Computer-aided Design

PrintBotRendering

Overview of week 2 assignment

  1. Computer-aided design
    1. model (raster, vector, 2D, 3D, render, animate, simulate, …) a possible final project
    2. compress your images and videos
    3. and post a description with your design files on your class page

Computer-aided design

Through learning and trying CAD programs, I modeled and studied mechanical design and logo of my final project, which is so far a mobile 3D printer with infinite print size.

1. Model a possible final project

A. Vizcom: AI design tool
B. Affinity Photo: Laster
C. Affinity Designer: Vector
D. Fusion 360: CAD, while comparing it with Rhinoceros
E. Fusion 360: Render

(I tried GIMP and Inkscape but stuck to familiar tools due to time constraints.)

A. AI: Vizcom

I tried Vizcom, an AI sketch tool designed specifically for industrial designers. Rather than generating images just from text, it refines sketches while preserving designer's intention. Designer can also draw in the program, enabling an iterative process, like a conversation with ChatGPT, where AI augment designer's cability rather than replacing it.

Vizcom

Here's the iterative process I followed:

  1. Import drawing from the "+" button on the top
  2. Choose "Render" or "Refine" on the right panel
  3. Add prompt (I couldn't see any influence of prompt though) and reference images (I added "Mayday lamp" by Konstantin Grcic)
  4. Edit "Influence" of drawing, reference and palette (Balance of these is the most impactful point.)
  5. Render... and generated images become layers, on the left panel (I tried several times until getting the fine image)
  6. Add layers and draw on the generated image to communicate intent to the AI... this is an another kind of prompt
  7. Re-render after turning "Refine" mode and got fine rendering

Vizcom process

B. Raster: Affinity Photo

I used Affinity Photo, an image editing software, to edit the sketch. I only adjusted cropping, brightness and contrast. In Affinity, adjustment are done by adding adjustment layers. Then I exported the image as a JPEG (File > Export > Choose file format). Size and quality can also be changed.

Vizcom render

Vizcom render

C. Vector: Affinity Designer

I use Affinity Designer as an alternative to Adobe Illustrator, as Affinity is very affordable. I designed a logo that combines termites and 3D printers, since the motif of the project is termites. This also takes its style inspiration from circuit diagrams.
Here are the steps:

  • Draw "Guides" by dragging from rulers (Ruler and column guides)
  • Draw lines on the guides using Pen tool
  • "Expand stroke" to turn it from lines to shapes (Expand stroke) (The difference can be seen by changing view mode from "Vector" to "Outline")

AffinityDesigner

I also trid using Inkscape. I had some difficulty getting used to the commands, which are all slightly different to Adobe and Affinity, but I found a useful tool not available in Affinity Designer; "Bitmap Trace", to convert raster data to vector. I converted some ISO graphic symbols for safety compliance (tracing ISO isn't so compliant action though...)   Inkscape

D. 3D CAD: Fusion 360

I've been a big fan of Rhinoceros and Grasshopper, but I've noticed some major weaknesses in it. For this week's assignment, while using Fusion 360, I compared it with Rhino and Grasshopper, primarily in terms of modeling approach, parametricity and thought process in each CAD program.

Fusion 360 (Sketch and design)
RhinoAndFusion

Example of Rhino & Grasshopper
RhinoGH

a. Comparison

Fusion 360, Rhino, and Grasshopper offer distinct modeling approaches, modification flexibility, and parametric capabilities. Below are my thoughts on the typical design process for each program.

CAD

  • Fusion 360 requires a structured, parametric approach, making design modifications easier, though it is constrained by an initial parametric definition and requires redefinition when it goes beyond the scope of that definition.
  • Rhino allows intuitive, freeform modeling without considering about constraints, but the lack of a parametric history can make modifications very difficult, often requiring remodeling from scratch.
  • Grasshopper is fully parametric, offering precise control, but modifications often require rethinking the entire logic rather than making direct changes.

For my project, I decided to use Fusion 360 because its structured workflow makes it easy to make the changes required for engineering, but I also use Rhino and Grasshopper in parts.


b. Design

Below is the modleling process so far.

  1. Sketch the side profile
    • Positioned a 1kg filament spool at the center (to keep the center of mass stable regardless of the spool weight)
    • Sketch a triangle (Because I wanted to make it triangular without any good reason!)
    • Quickly extruded the triangle volume as a temporary reference
    • Positioned 4 wheels
  2. Sketch the bottom profile
    • Extruded bottom frame
    • Extruded side frame which fit the bottom frame
  3. Add components
    • Model the Nema 17 stepper motor (although I havn't decided motor)
    • Inserted omni wheel (I downloaded omni wheel STEP model from McMaster-Carr)
  4. Model the arms and the extruder
    • Sketch the side profile of the arm while considering range of motion
    • Construct the plane for the arm and sketch the top profole of the arm (I should have model the arm at the horizontal position, it would be much easier!)
    • Model the extruder as a bare minimal temporary object

Detailed designs will be documented on the Project page.

Screen recording of the modeling history (it can be played ▶ at the bottom left corner of the history panel)


Here are tips helpful for me when modeling my project.

FusionTips


c. Motion study

I learned from below pages.
How to Render an Animation in Fusion 360
Tutorial: Enabling motion using joints and contact sets

  1. Before following these steps, I needed to save my design as a separate Fusion file.
    File > Save as
  2. Create components to add joints
    Understanding Autodesk Fusion Bodies & Components for New Designers (2024 Update)
    Create new components
    • Create a component: Right click the default component on the top
    • Activate the component by clicking the dot at the right of the component name
    • Drag and drop existing bodies (or model new bodies in the component)
  3. Add joints
    There are some types of joints such as Rigid, Revolute, Slider, Cylindrical (Joints).
    I used As-built Joint since the bodies are already positioned. Otherwise, Joint can be used.

    • Assemble > As-built joint > Select 2 components
    • Select motion type: in this case, Revolute
    • Set a center point (by clicking a circular part, Fusion automatically recognize a center and an axis) and set a minimum and maximum joint limits, and preview the motion

    FusionAssembly

  4. Motion study
    Tutorial: Easy Motion Study with Fusion 360

    • Assemble > Motion study
    • Select joints to animate
    • Add point on the curve and set parameter (in this case, 30 degree)

E. Render

Fusion Render

As an industrial designer, I've used some rendering tools such as KeyShot, Blender, Twinmotion (Unreal Engine), but I only tried Fusion 360 for now.

  1. SCENE SETTING including environment, camera, ground etc.
  2. IN-CANVAS RENDER for previewing effects
  3. Hit the RENDER
  4. Appear in GALLERY

FusionRender

2. Compression of images and videos

A. Image compression

At FabLab Kannai, Tamiya-san, our instructor, taught us how to set screenshot image size, remove shadows, and adjust resolution. He also shared a script (AppleScript Application) to resize images. At first, I tried to download and run the script, but my Mac's security wouldn't let me run the script, so I pasted it into a text editor and saved it as ".app".

B. Video compression

Below is a steps to install and use FFmpeg, video compression program widely used.

  1. Installed Homebrew
  2. Download FFmpeg using Homebrew brew install ffmpeg
  3. Make a directory for FFmpeg and put videos in it
  4. Using terminal, move to the folder with cd and use commands below.

Commands

  1. Convert Video Format
    Convert a MOV video to MP4:

    ffmpeg -i input.mov output.mp4
    

  2. Compress Video
    Compress with CRF value (compression rate) set to 32:

    ffmpeg -i input.mp4 -crf 32 compressed.mp4
    

  3. Resize Video

    A. Resize width to 800px while maintaining aspect ratio:

    ffmpeg -i input.mp4 -vf scale=800:-1 resized.mp4
    
    B. Resize height to 1080px while maintaining aspect ratio:
    ffmpeg -i input.mp4 -vf scale=-2:1080 resized_1080p.mp4
    

  4. Crop Video
    Crop a region of 800x800 from XY position (x=311, y=0):

    ffmpeg -i input.mp4 -vf "crop=800:800:311:0" cropped.mp4
    

  5. Create Video Without Audio
    Remove audio using the -an option:

    ffmpeg -i input.mp4 -vcodec libx264 -crf 32 -preset medium -vf scale=-2:800 -an no_audio.mp4
    

  6. Change Video Playback Speed
    Change frame rate from 300fps to 30fps (10x speedup):

    ffmpeg -r 300 -i input.mp4 -r 30 fast_forward.mp4
    

Command example

  • Simply resize video to width 800px with CRF 32

    ffmpeg -i input.mp4 -crf 32 -vf scale=800:-1 output_resized.mp4
    

  • Create 1080p video with variable bitrate, encode with CRF=25 and MP3 audio:

    ffmpeg -i input.mp4 -vcodec libx264 -crf 25 -preset medium -vf scale=-2:1080 -acodec libmp3lame -q:a 4 -ar 48000 -ac 2 output_1080p.mp4
    

As a test, I resized, compressed the pen plotter video on my about page.

3. Design files

Afterthought

  • From a time management perspective, I need to be careful when designing the aesthetics. It's better to declare and limit time before I start.
  • Learning multiple programs and comparing them is important to not be limited by a single tool...but it's tough.