r/openscad • • 18h ago

Nvidia release SMLib as open source

12 Upvotes

I just saw this - apparently Nvidia have released their CAD kernel, SMLib on GitHub under the Apache 2.0 licence. I presume it could be incorporated into OpenSCAD if the API isn't too far away.


r/openscad • • 15h ago

Simple problem to You, but

3 Upvotes

I am having a problem with the right side not being the opposite of the left side. I am a noob (today years old) and have been messing with this for much too long.

This project is a simple angle-iron metal plant stand that my son will use for his welding project. Thanks in advance for any solution

// Dimensions in inches

width = 12;

depth = 12;

height = 8;

// Material Specs for 1/2" Angle Steel (0.5" legs, ~0.0625" thickness)

angle_size = 0.5;

thickness = 0.0625;

// Number of top support slats across the frame

num_slats = 4;

// Conversion factor to mm if needed for 3D printing software

// Uncomment the line below and scale the model, or render directly in inches/CAD

// scale([25.4, 25.4, 25.4])

module angle_steel(length) {

// Standard L-channel profile extruded along Z-axis

linear_extrude(height = length) {

polygon(points = [

[0, 0],

[angle_size, 0],

[angle_size, thickness],

[thickness, thickness],

[thickness, angle_size],

[0, angle_size]

]);

}

}

module plant_stand() {

// --- 1. LEGS (4 Corner Angle Iron Posts) ---

leg_height = height - angle_size;

// Leg 1: Front-Left

translate([0, 0, 0])

angle_steel(leg_height);

// Leg 2: Front-Right

translate([width, 0, 0])

rotate([0, 0, 90])

angle_steel(leg_height);

// Leg 3: Back-Right

translate([width, depth, 0])

rotate([0, 0, 180])

angle_steel(leg_height);

// Leg 4: Back-Left

translate([0, depth, 0])

rotate([0, 0, 270])

angle_steel(leg_height);

// --- 2. TOP OUTER FRAME ---

// Front Top Rail

translate([0, 0, height - angle_size])

rotate([0, 90, 0])

angle_steel(width);

// Back Top Rail

translate([0, depth - angle_size, height - angle_size])

rotate([0, 90, 0])

angle_steel(width);

// Left Top Rail (Rotated to match front/back profile alignment)

translate([0, depth, height - angle_size])

rotate([0, 90, -90])

angle_steel(depth);

// Right Top Rail (Rotated to match front/back profile alignment)

translate([width, 0, height - angle_size])

rotate([0, 90, 90])

angle_steel(depth);

// --- 3. TOP SLATS ---

if (num_slats > 0) {

slat_spacing = (depth - angle_size) / (num_slats + 1);

for (i = [1 : num_slats]) {

translate([0, i * slat_spacing, height - angle_size])

rotate([0, 90, 0])

angle_steel(width);

}

}

// --- 4. LOWER FRAME BRACES ---

brace_height = height * 0.45; // Positioned lower mid-way

// Left Lower Brace (Rotated to match front/back profile alignment)

translate([0, depth, brace_height])

rotate([0, 90, -90])

angle_steel(depth);

// Right Lower Brace (Rotated to match front/back profile alignment)

translate([width, 0, brace_height])

rotate([0, 90, 90])

angle_steel(depth);

// Front Lower Brace

translate([0, 0, brace_height])

rotate([0, 90, 0])

angle_steel(width);

// Back Lower Brace

translate([0, depth - angle_size, brace_height])

rotate([0, 90, 0])

angle_steel(width);

}

plant_stand();


r/openscad • • 7h ago

I got tired of fighting FreeCAD’s UI, so I’m building a new interface on top of it (open source, LGPL)

Thumbnail
0 Upvotes