Difference between revisions of "Creating a Model Truss Bridge with AI"
(20 intermediate revisions by the same user not shown) | |||
Line 7: | 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 | ||
− | [https://claude.ai/chat Claude AI] as the AI chat | + | * [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 = | = Steps = | ||
− | == Step 1: Create beamAt | + | == Step 1: Create polygonAt and beamAt Modules == |
− | '''Prompt''': Create | + | '''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"> | <source lang="openscad"> | ||
− | module beamAt(position, | + | // 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); | ||
} | } | ||
− | beamAt([ | + | |
+ | // 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> | </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 = | = References = | ||
== HAER-Truss-Poster == | == 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> | <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
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
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