Sidst opdateret: 20 Aug, 2026

CAD Automation without AutoCAD Open Source Alternatives for Developers

CAD-automatisering uden AutoCAD: Open source-alternativer for udviklere

I årtier betød automatisering af computerstøttet design (CAD) at håndtere Autodesks proprietære API’er: AutoLISP-scripts, der kører i en desktop-session, ObjectARX skrevet i tung C++, eller .NET-omslag, der er strengt knyttet til Windows-runtime.

Selvom AutoCAD fortsat er en industristandard, kræver moderne softwareudvikling mere fleksibilitet:

  • Kørsel uden brugergrænseflade i letvægts Linux Docker-containere.
  • Kontinuerlig integration / Kontinuerlig levering (CI/CD) pipelines, der genererer mekaniske tegninger eller arkitektoniske leverancer ved push.
  • Web-native konfiguratorer der genererer CAD-modeller dynamisk i skyen.
  • Ingen licensflaskehalse, eliminerer per-sæde eller token-baserede omkostninger blot for at køre automatiserede batchjobs.

Heldigvis har open‑source‑økosystemet modnet betydeligt. Udviklere kan nu programmatisk generere, inspicere, modificere og eksportere både 2D‑tegninger og komplekse 3D‑solider ved hjælp af ren kode.

Her er en omfattende oversigt over de bedste open‑source‑alternativer til AutoCAD til udviklerdrevet CAD‑automatisering.

1. ezdxf: Python-kræfter til 2D-automatisering

Hvis dit primære behov fra AutoCAD er at generere eller parse .dxf (Drawing Exchange Format)-filer — såsom plantegninger, laser‑skærenprofiler, CNC‑vektorstier eller titelblokke — er ezdxf sandsynligvis det mest pålidelige Python‑bibliotek, der findes.

Hvorfor udviklere vælger det

  • Ingen tunge afhængigheder: Ren Python med valgfrie C‑udvidelser for ydeevne.
  • Fuld DXF‑understøttelse: Understøtter DXF versioner fra R12 til moderne AC1032 (AutoCAD 2018+).
  • Headless & Cloud‑klar: Kører problemfrit inden for letvægts‑AWS‑Lambda‑funktioner eller mikrotjenester.
  • Vektor‑matematik & rendering: Indeholder moduler til tekstlayout, dimensionering, skravering og rendering af DXF‑data direkte til SVG, Matplotlib eller PDF.

Minimal eksempel: Generering af en lagdelt 2D-profil

import ezdxf

# Create a modern DXF document (AutoCAD 2018 format)
doc = ezdxf.new("R2018")
msp = doc.modelspace()

# Define layers with specific line weights and colors
doc.layers.add(name="OUTLINE", color=1)  # Red
doc.layers.add(name="ANNOTATIONS", color=7)  # White/Black

# Add geometry
msp.add_lwpolyline(
    [(0, 0), (100, 0), (100, 50), (50, 50), (0, 20)],
    is_closed=True,
    dxfattribs={"layer": "OUTLINE"}
)

# Add programmatic text / annotation
msp.add_text(
    "Automated Bracket Spec #A-12",
    dxfattribs={"layer": "ANNOTATIONS", "height": 3.5}
).set_placement((5, 10))

# Save output
doc.saveas("automated_part.dxf")

Bedst til: generering af 2D-tegninger, eksport af laserklippebaner, batch-ændring af tegninger, forbehandling til CNC-nesting.

2. CadQuery: Den kode‑første parametriske 3D CAD-motor

Traditionelle CAD-værktøjer fokuserer på en grafisk brugergrænseflade (GUI), hvor du tegner skitser og klikker for at ekstrudere eller afrunding. CadQuery vender dette paradigme på hovedet: det behandler CAD som standard softwareudvikling.

Bygget oven på den gennemprøvede Open CASCADE Technology (OCCT)-motor, giver CadQuery udviklere et flydende, intuitivt Python-API til at konstruere komplekse grænseflade-repræsentations (B-Rep) solide.

Hvorfor udviklere vælger det

  • Ægte solid modellering: I modsætning til polygon-mesh værktøjer arbejder CadQuery med præcise analytiske overflader (NURBS, planer, cylindre).
  • Parametrisk efter design: Ændringer i en enkelt variabel påvirker hele designet på en ren måde.
  • Standardeksport: Direkte eksport til STEP, IGES, STL og DXF.
  • Moderne CI/CD-passform: Fremragende til automatiseret regressionstest af mekaniske komponenter.

Minimal eksempel: Parametrisk flanget rør

import cadquery as cq

# Define variables
outer_radius = 25.0
wall_thickness = 3.0
height = 80.0
flange_radius = 40.0
hole_radius = 4.0

# Build parametric 3D body
pipe = (
    cq.Workplane("XY")
    .circle(flange_radius)
    .extrude(6.0)
    .faces(">Z")
    .workplane()
    .circle(outer_radius)
    .extrude(height)
    .faces(">Z")
    .hole(2 * (outer_radius - wall_thickness))
)

# Add bolt holes on the flange
flange_holes = (
    pipe.faces("<Z")
    .workplane()
    .polarArray(radius=32.0, startAngle=0, angle=360, count=4)
    .hole(hole_radius * 2)
)

# Export standard interchange format
cq.exporters.export(flange_holes, "pipe_flange.step")

Bedst til: Parametriske delgeneratorer, webbaserede 3D-modelkonfiguratorer, ingeniørkomponenter, automatiseret STEP/IGES-produktion.

3. FreeCAD (Headless Python API): Fuldskala desktopkraft i skyen

FreeCAD er velkendt som den primære open-source desktop CAD-applikation, men dens største hemmelige våben for udviklere er, at dens hele kerne er eksponeret som et modulært Python-bibliotek.

Du kan køre FreeCAD i headless-tilstand (uden en X-server eller GUI) for at udføre avancerede samlingskontroller, boolske operationer, teknisk tegninggenerering (via TechDraw-modulet) og filkonverteringer.

Hvorfor udviklere vælger det

  • Massivt Økosystem: Indbygget support for Arch/BIM, PartDesign, Mesh, SheetMetal og TechDraw arbejdsbænke.
  • Direkte DXF/DWG-interoperabilitet: Kan integreres med eksterne konvertere som LibreDWG eller ODA File Converter.
  • Automatiseret Tegning: TechDraw-modulet kan programmatisk generere fler-views ortho-projektioner, snitvisninger og dimensioner som SVG’er eller PDF’er.

Headless arbejdsflow-koncept

# Executed within FreeCAD's headless environment: freecadcmd script.py
import FreeCAD as App
import Part

doc = App.newDocument("AutomatedDoc")

# Create geometry programmatically
box = Part.makeBox(100, 50, 30)
cylinder = Part.makeCylinder(15, 40)
cylinder.translate(App.Vector(50, 25, 0))

# Boolean difference
result = box.cut(cylinder)

# Assign to document
part_obj = doc.addObject("Part::Feature", "CutBlock")
part_obj.Shape = result
doc.recompute()

# Export to standard format
Part.export([part_obj], "cut_block.step")

Bedst til: Komplekse samlinger, BIM/arkitektonisk automatisering, programmatisk PDF-tegninggenerering.

4. Open CASCADE Technology (OCCT): Den virksomhedsniveau kerne

Hvis du bygger en skræddersyet kommerciel CAD-applikation, en geometrisk tung SaaS-platform, eller har brug for højtydende flertrådet geometriberegning i C++, så kig direkte på Open CASCADE Technology (OCCT).

Både FreeCAD og CadQuery er afhængige af OCCT bag kulisserne. At springe de mellemliggende lag over giver dig rå ydeevne og dyb geometrisk kontrol.

Nøglefunktioner

  • Industrikvalitets B-Rep (grænseflade-repræsentation) og topologiske datastrukturer.
  • Overflade- og kurveevaluering, skæringer, kontinuerlige overgange og avanceret afrunding.
  • Mesh-generering og forbehandling af finite elementer.
  • pythonOCC: Et modent sæt af Python-omslag, hvis du vil have C++-ydeevne med Python-iterationshastighed.

Bedst til: Høj-gennemløbs skygeometri-pipelines, højpræcisions boolske operationer, udvikling af tilpasset proprietær CAD/CAM-software.

5. LibreCAD & LibreDWG: Håndtering af ældre formater og 2D-arbejdsprocesser

En almindelig udfordring ved at bevæge sig væk fra AutoCAD er håndtering af .dwg-filer — Autodesks lukkede, proprietære binære format.

  • GNU LibreDWG: Et gratis C-bibliotek designet til at læse og skrive DWG-filer direkte. Selvom det er reverse-engineered, giver det bred support til at udtrække geometri, attributter og konvertere DWG-filer til DXF eller JSON.
  • LibreCAD (LibreCAD v3 / libcad): Tilbyder hovedløse C++ kernebiblioteker fokuseret på tegneprimitiver og arkitektoniske lag.

Ved at kombinere LibreDWG med værktøjer som ezdxf, kan du opbygge automatiserede indtags‑pipelines, der accepterer proprietære .dwg‑filer fra kunder og normaliserer dem til åbne datapipelines uden en AutoCAD‑licens.

Arkitektonisk sammenligning: Vælg det rigtige værktøj

VærktøjKerne sprogPrimært fokusBedste anvendelsestilfældeHeadless/Cloud klar?
ezdxfPython2D DXFVektor-tegning, CNC/laser‑eksport, metadata‑parsingJa (Ekstremt let)
CadQueryPython (over OCCT)3D parametriske legemerProgrammatisk CAD, cloud-konfiguratorer, STEP modellerJa (Docker-venlig)
FreeCADC++ / Python2D/3D & BIMFlere-visnings tegninger, formatkonvertering, komplekse samlingerJa (freecadcmd / headless build)
OpenSCADTilpasset DSL / C++3D CSG-solidProcedurale 3D-print komponenter, hobbyist-pipelinesJa (Native CLI)
Open CASCADEC++GeometrikerneRobust specialsoftware, virksomhedsberegningsmotorerJa (Høj ydeevne)

Anbefalet systemarkitektur til automatiserede CAD-pipelines

For ingeniørteams, der ønsker at bygge en ende-til-ende automatiseringspipeline uden AutoCAD, bør I overveje dette moderne mikrotjenestemønster:

  1. Klient / Front-End: Webgrænseflade tager parametre (f.eks. brugerdefinerede dimensioner, materialevalg).
  2. API-lag (FastAPI/Node.js): Validerer inputskemaer og sender opgaver til en kø (Celery, Redis eller SQS).
  3. Arbejder‑noder (Dockeriseret CadQuery/ezdxf):
    • Headless-containere startes for at beregne geometri.
    • Genererede output: .step til fremstilling, .dxf til CNC-profiler, og .gltf / .threejs format til realtids‑3D‑browser‑preview.
  4. Lagring & Levering: Filer gemmes direkte i en S3-kompatibel objektlager og leveres tilbage til brugeren eller fremstillingskøen.

Denne arkitektur kører på standard Linux‑servere, auto‑skalerer efter behov og eliminerer licensiering, desktop‑begrænsninger og VM‑overhead, der er forbundet med ældre CAD‑software.

Ofte stillede spørgsmål (FAQ)

**Q1: Kan jeg køre CAD‑automatiserings‑pipelines helt headless i Linux Docker‑containere? Ja, værktøjer som CadQuery, ezdxf og FreeCAD CLI fungerer native på Linux uden nogen grafisk brugerflade (GUI) eller display‑server.

**Q2: Hvordan kan jeg konvertere proprietære AutoCAD DWG‑filer uden at købe AutoCAD? Du kan bruge GNU LibreDWG eller Open Design Alliance (ODA) File Converter CLI til at batch‑konvertere DWG‑filer til standard DXF‑ eller vektorformater.

**Q3: Er det muligt at generere industrielle 3D STEP-filer kun ved hjælp af Python? Ja, CadQuery og pythonOCC konstruerer ægte grænseflade-repræsentation (B-Rep) solid geometri og eksporterer fuldt kompatible STEP- og IGES-filer.

**Q4: Hvordan sammenlignes CadQuery med OpenSCAD til programmatisk modellering? CadQuery skaber ægte topologiske B-Rep-solid med NURBS og afrundinger, mens OpenSCAD bruger konstruktiv solid geometri (CSG), primært optimeret til mesh-udgange som STL.

**Q5: Kan open-source CAD-værktøjer automatisk generere dimensionerede 2D-tegninger fra 3D-modeller? Ja, FreeCADs headless TechDraw API og CadQuery’s tegneprojektion-moduler kan projicere 3D-geometri til dimensionerede SVG-, DXF- eller PDF-visninger.

Se også

CAD-filformater på FileFormat.com

Open Source API’er til arbejde med CAD-filformater

Filformatnyheder – Din eneste destination for alle nyheder relateret til filformater fra hele verden

Filformatfora – Post dine forespørgsler i filformatfora for at få nyttig information fra filformat‑eksperter og fællesskabsbrugere

File Format Wiki – Udforsk filformatkategorier for information om forskellige filformater

STEP vs IGES forklaret: Sammenligning af moderne og ældre CAD-udvekslingsformater