<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.opensourceecology.org/index.php?action=history&amp;feed=atom&amp;title=Iconic_CAD_Workflow_Concept_Detail</id>
	<title>Iconic CAD Workflow Concept Detail - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opensourceecology.org/index.php?action=history&amp;feed=atom&amp;title=Iconic_CAD_Workflow_Concept_Detail"/>
	<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=Iconic_CAD_Workflow_Concept_Detail&amp;action=history"/>
	<updated>2026-05-04T01:32:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=Iconic_CAD_Workflow_Concept_Detail&amp;diff=321102&amp;oldid=prev</id>
		<title>Marcin: Created page with &quot;= How to Map Icons to CAD =  Icon-to-CAD mapping is a compiler workflow.  A human arranges icons visually. The system interprets each icon as a semantic module. A compiler then generates actual CAD geometry from those module definitions.  The full workflow is:  {| class=&quot;wikitable&quot; ! Step ! Name ! What Happens ! Output |- | 1 | Define module ontology | Define the universe of parts or assemblies that the system supports, such as walls, windows, doors, beams, motors, shaft...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=Iconic_CAD_Workflow_Concept_Detail&amp;diff=321102&amp;oldid=prev"/>
		<updated>2026-03-10T20:56:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= How to Map Icons to CAD =  Icon-to-CAD mapping is a compiler workflow.  A human arranges icons visually. The system interprets each icon as a semantic module. A compiler then generates actual CAD geometry from those module definitions.  The full workflow is:  {| class=&amp;quot;wikitable&amp;quot; ! Step ! Name ! What Happens ! Output |- | 1 | Define module ontology | Define the universe of parts or assemblies that the system supports, such as walls, windows, doors, beams, motors, shaft...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= How to Map Icons to CAD =&lt;br /&gt;
&lt;br /&gt;
Icon-to-CAD mapping is a compiler workflow.&lt;br /&gt;
&lt;br /&gt;
A human arranges icons visually.&lt;br /&gt;
The system interprets each icon as a semantic module.&lt;br /&gt;
A compiler then generates actual CAD geometry from those module definitions.&lt;br /&gt;
&lt;br /&gt;
The full workflow is:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Step&lt;br /&gt;
! Name&lt;br /&gt;
! What Happens&lt;br /&gt;
! Output&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Define module ontology&lt;br /&gt;
| Define the universe of parts or assemblies that the system supports, such as walls, windows, doors, beams, motors, shafts, brackets, or fasteners.&lt;br /&gt;
| Controlled vocabulary of buildable module types&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| Define semantic schema for each module&lt;br /&gt;
| For each module type, define machine-readable fields such as module ID, parameters, allowable ranges, interfaces, connection logic, material assumptions, and constraints.&lt;br /&gt;
| Formal module schema&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Define syntactic rules&lt;br /&gt;
| Specify how modules are allowed to connect in purely structural or grammatical terms, such as allowed adjacency, orientation, snapping rules, and interface compatibility.&lt;br /&gt;
| Assembly syntax rules&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Define semantic rules&lt;br /&gt;
| Specify real-world validity conditions such as structural logic, material compatibility, code constraints, fabrication constraints, and performance assumptions.&lt;br /&gt;
| Assembly semantic rules&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Create parametric CAD generator for each module&lt;br /&gt;
| Build a CAD-producing function for each module family so that a schema plus parameters can generate actual geometry.&lt;br /&gt;
| Parametric CAD generators&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Create icon for each module family&lt;br /&gt;
| Design a simple human-readable icon that corresponds to each module family.&lt;br /&gt;
| Icon library&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| Embed machine-readable metadata in each icon&lt;br /&gt;
| Add identifiers and parameter hooks inside the SVG object, such as module ID, parameter names, interface references, or type tags.&lt;br /&gt;
| Parseable SVG icon objects&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| Add visible human labels to icons&lt;br /&gt;
| Make sure the icon also communicates meaning to humans, such as wall, door, 24 in, 8 ft, or other visible identifiers.&lt;br /&gt;
| Human-readable icon system&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| Define icon parameter strategy&lt;br /&gt;
| Decide which parameters are fixed in the icon library and which are editable in the drawing. For example, wall type may be fixed while length is editable.&lt;br /&gt;
| Parameterization strategy&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| Define interface markers&lt;br /&gt;
| Encode connection points or edge semantics so the compiler can detect where modules connect and whether those connections are valid.&lt;br /&gt;
| Interface-aware icons&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| Standardize SVG authoring rules&lt;br /&gt;
| Define exactly how icons must be authored in Inkscape or another SVG editor, including layers, IDs, transforms, coordinate origin, naming conventions, and metadata fields.&lt;br /&gt;
| SVG authoring standard&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| Build icon library repository&lt;br /&gt;
| Store approved icons, schemas, and CAD generators in a controlled library so users only compose with valid modules.&lt;br /&gt;
| Reusable part library&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| Configure the graphics tool for assembly authoring&lt;br /&gt;
| Set up Inkscape or similar software with snapping, grid alignment, rotation increments, and symbol reuse so icon placement is predictable.&lt;br /&gt;
| Controlled visual editing environment&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| Compose assemblies visually&lt;br /&gt;
| The user arranges icons into a larger design such as a wall layout, machine frame, or building plan.&lt;br /&gt;
| Visual assembly drawing&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| Export assembly as SVG&lt;br /&gt;
| Save the completed icon arrangement as plain SVG so it can be processed by the compiler.&lt;br /&gt;
| SVG assembly file&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| Normalize SVG&lt;br /&gt;
| Clean the SVG so transforms, groups, layers, IDs, and coordinates are in a consistent format for reliable parsing.&lt;br /&gt;
| Normalized SVG&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| Parse icon instances from SVG&lt;br /&gt;
| Read every icon instance in the drawing and extract module ID, position, rotation, scale, visible annotations, and metadata.&lt;br /&gt;
| Parsed icon instance list&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| Resolve icon parameters&lt;br /&gt;
| Convert labels, metadata, and defaults into actual parameter values for each module instance.&lt;br /&gt;
| Parameterized module instances&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| Build assembly graph&lt;br /&gt;
| Convert the parsed icons into a structured graph of components and connections.&lt;br /&gt;
| Assembly graph&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| Run syntactic validation&lt;br /&gt;
| Check whether the arrangement follows formal placement and interface rules, such as allowed contacts, alignment, orientation, and topology.&lt;br /&gt;
| Syntactically valid or invalid assembly&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| Run semantic validation&lt;br /&gt;
| Check whether the arrangement makes sense in the real world, such as structural feasibility, material logic, spatial clearance, or fabrication plausibility.&lt;br /&gt;
| Semantically valid or invalid assembly&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Generate module CAD&lt;br /&gt;
| For each icon instance, call the corresponding CAD generator using the resolved parameters.&lt;br /&gt;
| CAD for each module instance&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| Assemble full CAD model&lt;br /&gt;
| Combine all generated modules into one coordinated CAD assembly according to the assembly graph.&lt;br /&gt;
| Complete CAD assembly&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| Run post-processing&lt;br /&gt;
| Clean geometry, merge bodies if needed, assign part names, resolve tolerances, and prepare files for downstream use.&lt;br /&gt;
| Production-ready CAD model&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| Generate downstream outputs&lt;br /&gt;
| Produce BOM, cut list, fabrication drawings, CNC files, instructions, or simulation models from the compiled assembly.&lt;br /&gt;
| Fabrication and documentation outputs&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| Publish validated library improvements&lt;br /&gt;
| Feed back improved schemas, icons, rules, and CAD generators into the library so the system becomes more robust over time.&lt;br /&gt;
| Evolving Iconic CAD platform&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Minimal Logic of the System =&lt;br /&gt;
&lt;br /&gt;
The core mapping is:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Layer&lt;br /&gt;
! Role&lt;br /&gt;
|-&lt;br /&gt;
| Icon&lt;br /&gt;
| Human-visible symbol in drawing&lt;br /&gt;
|-&lt;br /&gt;
| Schema&lt;br /&gt;
| Machine-readable meaning of that symbol&lt;br /&gt;
|-&lt;br /&gt;
| Generator&lt;br /&gt;
| Function that produces CAD from schema plus parameters&lt;br /&gt;
|-&lt;br /&gt;
| Compiler&lt;br /&gt;
| System that parses icon arrangements into assembled CAD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
So the fundamental relation is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Icon instance -&amp;gt; module schema -&amp;gt; parameter resolution -&amp;gt; CAD generator -&amp;gt; CAD geometry&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What Must Be Stored in the Icon System =&lt;br /&gt;
&lt;br /&gt;
For robust icon-to-CAD mapping, each icon instance should ultimately provide:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Required Data&lt;br /&gt;
! Why It Matters&lt;br /&gt;
|-&lt;br /&gt;
| Module ID&lt;br /&gt;
| Tells the compiler what object the icon represents&lt;br /&gt;
|-&lt;br /&gt;
| Parameters&lt;br /&gt;
| Tells the compiler which version or dimensions to generate&lt;br /&gt;
|-&lt;br /&gt;
| Position&lt;br /&gt;
| Places the generated object in space&lt;br /&gt;
|-&lt;br /&gt;
| Rotation&lt;br /&gt;
| Orients the generated object correctly&lt;br /&gt;
|-&lt;br /&gt;
| Interface definitions&lt;br /&gt;
| Allows connection detection and validation&lt;br /&gt;
|-&lt;br /&gt;
| Human-visible label&lt;br /&gt;
| Allows humans to read and edit the system reliably&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Practical Rule =&lt;br /&gt;
&lt;br /&gt;
The icon should not be the CAD.&lt;br /&gt;
&lt;br /&gt;
The icon should be a semantic handle that points to CAD logic.&lt;br /&gt;
&lt;br /&gt;
That means:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Icon != geometry&lt;br /&gt;
Icon = instruction to generate geometry&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Recommended Principle for Iconic CAD =&lt;br /&gt;
&lt;br /&gt;
Use one integrated system with clearly separated layers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Layer&lt;br /&gt;
! Recommendation&lt;br /&gt;
|-&lt;br /&gt;
| Human editing layer&lt;br /&gt;
| SVG icons with visible labels&lt;br /&gt;
|-&lt;br /&gt;
| Semantic layer&lt;br /&gt;
| Structured schema for each module family&lt;br /&gt;
|-&lt;br /&gt;
| Validation layer&lt;br /&gt;
| Syntax and semantic rule checking&lt;br /&gt;
|-&lt;br /&gt;
| CAD layer&lt;br /&gt;
| Parametric generators&lt;br /&gt;
|-&lt;br /&gt;
| Compiler layer&lt;br /&gt;
| SVG-to-assembly interpreter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Bottom Line =&lt;br /&gt;
&lt;br /&gt;
Mapping icons to CAD requires six core things:&lt;br /&gt;
&lt;br /&gt;
# A controlled icon library&lt;br /&gt;
# A schema for what each icon means&lt;br /&gt;
# A parametric CAD generator for each schema&lt;br /&gt;
# A parser that reads the SVG&lt;br /&gt;
# Validators that check syntax and semantics&lt;br /&gt;
# A compiler that assembles the resulting CAD&lt;br /&gt;
&lt;br /&gt;
That is the full path from visual symbolic composition to real engineering geometry.&lt;/div&gt;</summary>
		<author><name>Marcin</name></author>
	</entry>
</feed>