Difference between revisions of "Creating a Model Truss Bridge with AI"

From BITPlan Wiki
Jump to navigation Jump to search
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
We would like to get 3D printer design for a [https://www.ncdot.gov/initiatives-policies/Transportation/bridges/historic-bridges/bridge-types/Pages/truss.aspx TrussBridge]
+
We would like to get 3D printer design for a model[https://www.ncdot.gov/initiatives-policies/Transportation/bridges/historic-bridges/bridge-types/Pages/truss.aspx TrussBridge]
<pdf>https://www.nps.gov/subjects/heritagedocumentation/upload/HAER-Truss-Poster_508.pdf</pdf>
+
[[File:trussbridge1.png|400px]][[File:trussbridge2.png|400px]][[File:trussbridge3.png|400px]]
 +
 
  
 
We want a design combining a [https://en.wikipedia.org/wiki/Warren_truss Warren truss] pattern on the side with
 
We want a design combining a [https://en.wikipedia.org/wiki/Warren_truss Warren truss] pattern on the side with
Line 6: Line 7:
  
 
We will use the [https://github.com/WolfgangFahl/nicescad nicescad] webinterface to OpenScad for our design and
 
We will use the [https://github.com/WolfgangFahl/nicescad nicescad] webinterface to OpenScad for our design and
Claude AI as the AI chat tool.
+
* [https://chatgpt.com ChatGPT]
 +
* [https://claude.ai/chat Claude AI]
 +
* [https://chat.deepseek.com/ DeepSeek]
 +
* [https://chat.mistral.ai/chat Mistral]
 +
as the AI chat tools.
  
 
First we need a list of prompts that will lead to a proper scad module.
 
First we need a list of prompts that will lead to a proper scad module.
 +
Note how there area ready made models available at https://www.yeggi.com/q/n+scale+truss+bridge/ and still the AIs behave like stochastical parrots and have no clue what they are doing - see Talk page.
 +
 +
Given the notorious incapability of AI Tools for this kind of task as of 2025-06 we need to be very careful in what
 +
to expect from the AI and what to do our selves.
 +
= Steps =
 +
== Step 1: Create polygonAt and beamAt Modules ==
 +
'''Prompt''': Create an OpenSCAD module named beamAt that places a cube beam at a specified 3D position x,y,z, applies a 3D rotation rx,ry,rz, and uses given dimensions sx,sy,sz. Add an example usage creating a horizontal and vertical beam. Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI and // Copyright Wolfgang Fahl with current iso date
 +
 +
<source lang="openscad">
 +
// Prompt:
 +
// Create an OpenSCAD module named `polygonAt` that places a polygon-based beam at a 3D position `x,y,z`,
 +
// applies 3D rotation `rx,ry,rz`, and extrudes the polygon with `linear_extrude(height=length)`.
 +
// The polygon is defined via `points` and should be extruded symmetrically around its local origin.
 +
// Define a second module `beamAt(x, y, z, rx, ry, rz, sx, sy, sz)` that creates a centered rectangular beam
 +
// cross-section of width `sy`, height `sz` and extrudes it along its axis with length `sx`.
 +
// Add example usage for a horizontal beam (extruded along X) and vertical beam (extruded along Z).
 +
// Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI
 +
// and // Copyright Wolfgang Fahl with current iso date
 +
 +
// https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI
 +
// Copyright Wolfgang Fahl 2025-06-15
 +
 +
// place and extrude a 2D polygon at given 3D position and rotation
 +
module polygonAt(x, y, z, rx, ry, rz, length, points) {
 +
    translate([x, y, z])
 +
        rotate([rx, ry, rz])
 +
            translate([0, 0, -length/2])  // center extrusion symmetrically
 +
                linear_extrude(height=length)
 +
                    polygon(points);
 +
}
 +
 +
// place a rectangular beam at 3D position with given rotation and dimensions
 +
module beamAt(x, y, z, rx, ry, rz, sx, sy, sz) {
 +
    polygonAt(x, y, z, rx, ry, rz, sx, [
 +
        [-sy/2, -sz/2],
 +
        [ sy/2, -sz/2],
 +
        [ sy/2,  sz/2],
 +
        [-sy/2,  sz/2]
 +
    ]);
 +
}
 +
 +
l=10; // length
 +
h=1; // height
 +
w=1; // width
 +
// Example usage
 +
// Horizontal beam along X → rotate Z→X
 +
ry=90;
 +
beamAt(
 +
    0, 0, 0,
 +
    0, ry, 0,
 +
    l, w, h
 +
);
 +
 +
// Vertical beam
 +
beamAt(
 +
    -l/2+w/2, 0, l/2,
 +
    0, 0, 0,
 +
    l, w, h 
 +
);
 +
</source>
 +
* [https://nicescad.bitplan.com/design/gndcm86s Example answer] by [https://chatgpt.com ChatGPT]
 +
Note that this answer was never created by ChatGPT - there was a loop of a dozen hallucinations and the variables and calculations for the example have been introduced manually after giving up.
 +
 +
== Step 2: right triangle ==
 +
'''Prompt''': Based on module <pre>beamAt(x, y, z, rx, ry, rz, sx, sy, sz) {
 +
    translate([x, y, z])
 +
        rotate([rx, ry, rz])
 +
            cube([sx, sy, sz]);
 +
}
 +
 +
// Example usage
 +
// horizontal beam
 +
beamAt( 
 +
  0, 0, 0,
 +
  0, 0, 0,
 +
  10, 1, 1); 
 +
// vertical beam
 +
beamAt(
 +
    0, 0, 0,
 +
    0, 270, 0,
 +
  10, 1, 1); </pre>
 +
 +
create a rightTriangle function consisting of three beams and allow a positioned/rotated version rightTriangleAt. Add an example usage creating a warren truss pattern. Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI and // Copyright Wolfgang Fahl with current iso date
 +
 +
 +
[https://nicescad.bitplan.com/design/7ecaz67e Example]
 +
 +
== Step 3: Warren Truss pattern ==
 +
'''Prompt''':  For a european single track railway bridge - Length: 19.1m - Width: 3.3m - Height: 4.5m - Top beam: 16.2m - we want the Model scale: H0 (1:87) - open scad design. Use the existing beamAt to create a WarrenTruss
 +
pattern function. The base of the pattern are pairs of right angled triangles which in turn form isosceles triangles with a support beam in the middle.
 +
 +
Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI and // Copyright Wolfgang Fahl with current iso date
 +
 +
= References =
 +
== HAER-Truss-Poster ==
 +
see [https://www.nps.gov/subjects/heritagedocumentation/upload/HAER-Truss-Poster_508.pdf HISTORIC AMERICAN EINGINEERIING RECORD]
 +
 +
<pdf>https://www.nps.gov/subjects/heritagedocumentation/upload/HAER-Truss-Poster_508.pdf</pdf>

Latest revision as of 09:06, 15 June 2025

We would like to get 3D printer design for a modelTrussBridge Trussbridge1.pngTrussbridge2.pngTrussbridge3.png


We want a design combining a Warren truss pattern on the side with an X Pattern on the top and bottom of the bridge.

We will use the nicescad webinterface to OpenScad for our design and

as the AI chat tools.

First we need a list of prompts that will lead to a proper scad module. Note how there area ready made models available at https://www.yeggi.com/q/n+scale+truss+bridge/ and still the AIs behave like stochastical parrots and have no clue what they are doing - see Talk page.

Given the notorious incapability of AI Tools for this kind of task as of 2025-06 we need to be very careful in what to expect from the AI and what to do our selves.

Steps

Step 1: Create polygonAt and beamAt Modules

Prompt: Create an OpenSCAD module named beamAt that places a cube beam at a specified 3D position x,y,z, applies a 3D rotation rx,ry,rz, and uses given dimensions sx,sy,sz. Add an example usage creating a horizontal and vertical beam. Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI and // Copyright Wolfgang Fahl with current iso date

// Prompt:
// Create an OpenSCAD module named `polygonAt` that places a polygon-based beam at a 3D position `x,y,z`,
// applies 3D rotation `rx,ry,rz`, and extrudes the polygon with `linear_extrude(height=length)`.
// The polygon is defined via `points` and should be extruded symmetrically around its local origin.
// Define a second module `beamAt(x, y, z, rx, ry, rz, sx, sy, sz)` that creates a centered rectangular beam 
// cross-section of width `sy`, height `sz` and extrudes it along its axis with length `sx`.
// Add example usage for a horizontal beam (extruded along X) and vertical beam (extruded along Z).
// Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI
// and // Copyright Wolfgang Fahl with current iso date

// https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI
// Copyright Wolfgang Fahl 2025-06-15

// place and extrude a 2D polygon at given 3D position and rotation
module polygonAt(x, y, z, rx, ry, rz, length, points) {
    translate([x, y, z])
        rotate([rx, ry, rz])
            translate([0, 0, -length/2])  // center extrusion symmetrically
                linear_extrude(height=length)
                    polygon(points);
}

// place a rectangular beam at 3D position with given rotation and dimensions
module beamAt(x, y, z, rx, ry, rz, sx, sy, sz) {
    polygonAt(x, y, z, rx, ry, rz, sx, [
        [-sy/2, -sz/2],
        [ sy/2, -sz/2],
        [ sy/2,  sz/2],
        [-sy/2,  sz/2]
    ]);
}

l=10; // length
h=1; // height
w=1; // width
// Example usage
// Horizontal beam along X → rotate Z→X
ry=90; 
beamAt(
    0, 0, 0,
    0, ry, 0,
    l, w, h
);

// Vertical beam 
beamAt(
    -l/2+w/2, 0, l/2,
    0, 0, 0,
    l, w, h   
);

Note that this answer was never created by ChatGPT - there was a loop of a dozen hallucinations and the variables and calculations for the example have been introduced manually after giving up.

Step 2: right triangle

Prompt: Based on module

beamAt(x, y, z, rx, ry, rz, sx, sy, sz) {
    translate([x, y, z])
        rotate([rx, ry, rz])
            cube([sx, sy, sz]);
}

// Example usage
// horizontal beam
beamAt(  
   0, 0, 0, 
   0, 0, 0, 
  10, 1, 1);   
// vertical beam 
beamAt(
    0, 0, 0,
    0, 270, 0, 
   10, 1, 1); 

create a rightTriangle function consisting of three beams and allow a positioned/rotated version rightTriangleAt. Add an example usage creating a warren truss pattern. Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI and // Copyright Wolfgang Fahl with current iso date


Example

Step 3: Warren Truss pattern

Prompt: For a european single track railway bridge - Length: 19.1m - Width: 3.3m - Height: 4.5m - Top beam: 16.2m - we want the Model scale: H0 (1:87) - open scad design. Use the existing beamAt to create a WarrenTruss pattern function. The base of the pattern are pairs of right angled triangles which in turn form isosceles triangles with a support beam in the middle.

Add a header comment with a link to https://wiki.bitplan.com/index.php/Creating_a_Model_Truss_Bridget_with_AI and // Copyright Wolfgang Fahl with current iso date

References

HAER-Truss-Poster

see HISTORIC AMERICAN EINGINEERIING RECORD

load PDF