Viimeksi päivitetty: 20 elokuu, 2026

CAD-automaatio ilman AutoCADia: avoimen lähdekoodin vaihtoehdot kehittäjille
Vuosikymmenten ajan CAD:n (tietokoneavusteinen suunnittelu) automatisointi tarkoitti Autodesk:n omien API:en käsittelemistä: AutoLISP-skriptit, jotka ajetaan työpöytäistunnossa, ObjectARX, kirjoitettu raskaalla C++:lla, tai .NET-kääreet, jotka ovat tiukasti sidottuja Windows-ympäristöihin.
Vaikka AutoCAD on edelleen alan mittapuu, nykyaikainen ohjelmistosuunnittelu vaatii enemmän joustavuutta:
- Päätön suoritus kevyissä Linux Docker -kontissa.
- Jatkuva integraatio / jatkuva käyttöönotto (CI/CD) -putket, jotka luovat mekaanisia piirustuksia tai arkkitehtonisia toimituksia pushin yhteydessä.
- Verkkoon natiivit konfiguraattorit jotka luovat CAD-malleja dynaamisesti pilvessä.
- Ei lainkaan lisenssirajoitteita, poistamalla per-istunto- tai token-pohjaiset kustannukset pelkästään automatisoitujen eräajojen suorittamiseen.
Onneksi avoimen lähdekoodin ekosysteemi on kehittynyt merkittävästi. Kehittäjät voivat nyt ohjelmallisesti luoda, tarkastella, muokata ja viedä sekä 2D-piirustuksia että monimutkaisia 3D-kiintomuotoja pelkän koodin avulla.
Tässä on kattava erittely parhaista avoimen lähdekoodin vaihtoehdoista AutoCADille kehittäjäkeskeisiä CAD-automaatioita varten.
1. ezdxf: Pythonin voimala 2D-automaatioon
Jos AutoCADista tarvitset ensisijaisesti .dxf (Drawing Exchange Format) -tiedostojen luomista tai jäsentämistä — kuten pohjapiirroksia, laserleikkausprofiileja, CNC-vektoripolkuja tai otsikkolohkoja — ezdxf on väistämättä luotettavin saatavilla oleva Python-kirjasto.
Miksi kehittäjät valitsevat sen
- Ei raskaita riippuvuuksia: Puhtaan Pythonin kanssa valinnaiset C-laajennukset suorituskykyä varten.
- Täydellinen DXF-tuki: Tukee DXF -versioita R12:sta nykyaikaisiin AC1032 (AutoCAD 2018+).
- Päätön & Pilvi-valmis: Toimii saumattomasti kevyiden AWS Lambda -funktioiden tai mikropalveluiden sisällä.
- Vektorimatematiikka & Renderöinti: Sisältää moduuleja tekstin asetteluun, mittakaavaan, ristikuviointiin ja DXF-datan renderöintiin suoraan SVG:ksi, Matplotlibiksi tai PDF:ksi.
Minimaalinen esimerkki: Kerrostetun 2D-profiilin luominen
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")
Paras käyttö: 2D-piirustusten luominen, laserleikkauspolkujen vienti, eräpiirustusten muokkaus, CNC-pinoituksen esikäsittely.
2. CadQuery: Koodipohjainen parametrinen 3D CAD -moottori
Perinteiset CAD-työkalut keskittyvät graafiseen käyttöliittymään (GUI), jossa piirrät luonnoksia ja napsautat ulostuloa tai pyöristystä. CadQuery kääntää tämän paradigman ylösalaisin: se käsittelee CADia tavallisena ohjelmistosuunnitteluna.
Rakennettu pitkään testatun Open CASCADE Technology (OCCT) -moottorin päälle, CadQuery tarjoaa kehittäjille sujuvan, intuitiivisen Python-API:n monimutkaisten rajaesitysten (B-Rep) kappaleiden luomiseen.
Miksi kehittäjät valitsevat sen
- Aito kiinteämallinnus: Toisin kuin polygoniverkko-työkalut, CadQuery toimii tarkkojen analyyttisten pintojen (NURBS, tasot, sylinterit) kanssa.
- Parametrinen suunnittelu: Yhden muuttujan muutokset leviävät koko suunnitteluun siististi.
- Standardi vienti: Suora vienti STEP-, IGES-, STL- ja DXF-muotoihin.
- Moderni CI/CD-sopivuus: Erinomainen mekaanisten komponenttien automatisoituun regressiotestaukseen.
Minimaalinen esimerkki: Parametrinen laippa-putki
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")
Paras käyttö: Parametriset osageneraattorit, verkkopohjaiset 3D-mallien konfiguraattorit, insinöörikomponentit, automatisoitu STEP/IGES-tuotanto.
3. FreeCAD (Headless Python API): Täysimittainen työpöytäteho pilvessä
FreeCAD on tunnettu ensisijaisena avoimen lähdekoodin työpöytä-CAD-sovelluksena, mutta sen suurin salainen ase kehittäjille on, että sen koko ydin on avattu modulaariseksi Python-kirjastoksi.
Voit ajaa FreeCADia headless-tilassa (ilman X-palvelinta tai käyttöliittymää) suorittaaksesi kehittyneitä kokoonpanojen tarkistuksia, boolen operaatioita, teknisten piirustusten luomista (TechDraw-moduulin kautta) ja tiedostomuunnoksia.
Miksi kehittäjät valitsevat sen
- Massiivinen ekosysteemi: Alkuperäinen tuki Arch/BIM-, PartDesign-, Mesh-, SheetMetal- ja TechDraw-työpöydille.
- Suora DXF/DWG-yhteensopivuus: Voidaan integroida ulkoisiin muuntimiin, kuten LibreDWG tai ODA File Converter.
- Automaattinen piirustus:
TechDraw-moduuli voi ohjelmallisesti luoda moninäkökulmaisia ortogonaalisia projisointeja, poikkileikkauskuvia ja mittoja SVG- tai PDF-muodossa.
Headless-työnkulun käsite
# 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")
Paras: Monimutkaiset kokoonpanot, BIM-/arkkitehtuuriautomaatio, ohjelmallinen PDF-piirustusten luonti.
4. Open CASCADE Technology (OCCT): Yritystason ydin
Jos rakennat räätälöityä kaupallista CAD-sovellusta, geometriaan painottuvaa SaaS-alustaa tai tarvitset korkean suorituskyvyn monisäikeistä geometrialaskentaa C++:ssa, tutustu suoraan Open CASCADE Technology (OCCT).
Sekä FreeCAD että CadQuery perustuvat OCCT:hen taustalla. Välikerrosten ohittaminen antaa sinulle raaka‑suorituskykyä ja syvällistä geometrisen hallinnan mahdollisuuden.
Keskeiset ominaisuudet
- Teollisuusluokan B-Rep (Boundary Representation) ja topologiset tietorakenteet.
- Pintojen ja käyrien arviointi, leikkaukset, jatkuvat liitokset ja kehittyneet pyöristykset.
- Verkon (mesh) luominen ja äärellisten elementtien esikäsittely.
- pythonOCC: Kypsä kokoelma Python-kääreitä, jos haluat C++‑suorituskykyä Python‑iteraationopeudella.
Paras: Korkean läpimenon pilvipohjaiset geometria‑putkistot, tarkat boolean‑operaatiot, räätälöidyn suljetun CAD/CAM‑ohjelmiston kehittäminen.
5. LibreCAD & LibreDWG: Vanhojen formaattien ja 2D-työnkulkujen käsittely
Yleinen haaste siirryttäessä pois AutoCADista on .dwg‑tiedostojen käsittely — Autodeskin suljettu, oma binäärimuotonsa.
- GNU LibreDWG: Ilmainen C‑kirjasto, joka on suunniteltu DWG‑tiedostojen suoraan lukemiseen ja kirjoittamiseen. Vaikka se on käännetty takaperin, se tarjoaa laajan tuen geometrian, attribuuttien poimintaan sekä DWG‑tiedostojen muuntamiseen DXF‑ tai JSON‑muotoon.
- LibreCAD (LibreCAD v3 / libcad): Tarjoaa headless C++-ydin kirjastoja, jotka keskittyvät piirustusprimitiiveihin ja arkkitehtonisiin kerroksiin.
Yhdistämällä LibreDWG-työkalun kaltaisiin ezdxf-työkaluihin, voit rakentaa automatisoituja sisääntuloputkia, jotka hyväksyvät asiakkaiden omistusoikeudelliset .dwg-tiedostot ja normalisoivat ne avoimiin dataputkiin ilman AutoCAD-lisenssiä.
Arkkitehtoninen vertailu: Oikean työkalun valinta
| Työkalu | Ydin Kieli | Ensisijainen Painopiste | Paras käyttötapaus | Headless/Cloud Valmis? |
|---|---|---|---|---|
| ezdxf | Python | 2D DXF | Vektoripiirustus, CNC/Laser-vienti, metatietojen jäsentäminen | Kyllä (Erittäin kevyt) |
| CadQuery | Python (OCCT:n päällä) | 3D Parametriset kiinteät kappaleet | Ohjelmallinen CAD, pilvipohjaiset konfiguraattorit, STEP mallit | Kyllä (Docker-ystävällinen) |
| FreeCAD | C++ / Python | 2D/3D & BIM | Moninäkymäpiirustukset, formaattimuunnos, monimutkaiset kokoonpanot | Kyllä (freecadcmd / headless build) |
| OpenSCAD | Mukautettu DSL / C++ | 3D CSG -kiinteät | Proceduraaliset 3D-tulostuskomponentit, harrastajaputket | Kyllä (Native CLI) |
| Open CASCADE | C++ | Geometriaydin | Raskas räätälöity ohjelmisto, yritystason laskentamoottorit | Kyllä (korkea suorituskyky) |
Suositeltu järjestelmäarkkitehtuuri automatisoiduille CAD-putkille
Insinööritiimeille, jotka haluavat rakentaa kokonaisvaltaisen automaatioputken ilman AutoCADia, kannattaa harkita tätä modernia mikropalvelumallia:
- Asiakas / Front-End: Web‑käyttöliittymä ottaa parametreja (esim. räätälöidyt mitat, materiaalivalinnat).
- API-kerros (FastAPI/Node.js): Vahvistaa syötteiden skeemat ja työntää tehtäviä jonoon (Celery, Redis tai SQS).
- Työntekijäsolmut (Dockerisoitu CadQuery/ezdxf):
- Headless-kontit käynnistyvät geometrian laskemiseksi.
- Luodut tulosteet:
.stepvalmistukseen,.dxfCNC‑profiileille ja.gltf/.threejs-muoto reaaliaikaista 3D‑selaimen esikatselua varten.
- Tallennus & toimitus: Tiedostot tallennetaan suoraan S3-yhteensopivaan objektivarastoon ja toimitetaan takaisin käyttäjälle tai valmistusjonoon.
Tämä arkkitehtuuri toimii tavallisilla Linux-palvelimilla, skaalautuu automaattisesti tarpeen mukaan ja poistaa lisensointi-, työpöytärajoitukset- ja VM-ylikuormituksesta aiheutuvat haitat, jotka liittyvät perinteiseen CAD‑ohjelmistoon.
Usein kysytyt kysymykset (FAQ)
**Q1: Voinko suorittaa CAD‑automaatioputket täysin headless‑tilassa Linux‑Docker‑konteissa? Kyllä, työkalut kuten CadQuery, ezdxf ja FreeCAD CLI toimivat natiivisti Linuxissa ilman graafista käyttöliittymää (GUI) tai näyttöpalvelinta.
**Q2: Kuinka muunnan omistusoikeudelliset AutoCAD DWG -tiedostot ostamatta AutoCADia? Voit käyttää GNU LibreDWG:tä tai Open Design Alliance (ODA) File Converter CLI:tä DWG‑tiedostojen erämuunnokseen standardimuotoihin, kuten DXF‑ tai vektoriformaattiin.
**Q3: Onko mahdollista luoda teollisuusluokan 3D STEP -tiedostoja pelkästään Pythonilla? Kyllä, CadQuery ja pythonOCC rakentavat todellista rajaesitys (B-Rep) -kiinteää geometriaa ja vievät täysin yhteensopivia STEP- ja IGES-tiedostoja.
**Q4: Miten CadQuery vertautuu OpenSCADiin ohjelmallisessa mallinnuksessa? CadQuery luo todellisia topologisia B-Rep -kiinteitä NURBS- ja pyöristysominaisuuksilla, kun taas OpenSCAD käyttää konstruktio‑kiinteägeometriaa (CSG), joka on pääasiassa optimoitu verkkomuotoisten tulosteiden, kuten STL:n, varten.
**Q5: Voivatko avoimen lähdekoodin CAD-työkalut luoda automaattisesti mitattuja 2D-piirustuksia 3D-malleista? Kyllä, FreeCADin headless TechDraw API ja CadQueryn piirustusprojektio-moduulit voivat projisoida 3D-geometrian mitattuihin SVG-, DXF- tai PDF-näkymiin.
Katso myös
CAD-tiedostomuodot FileFormat.comissa
Avoimen lähdekoodin API:t CAD-tiedostomuotojen käsittelyyn
Tiedostomuotojen Uutiset – Kaikkien tiedostomuotoihin liittyvien uutisten yksi pysäkki ympäri maailmaa
Tiedostomuotofoorumit – Lähetä kysymyksesi tiedostomuotofoorumeille saadaksesi hyödyllistä tietoa tiedostomuotoasiantuntijoilta ja yhteisön käyttäjiltä
Tiedostomuotojen Wiki – Tutustu tiedostomuotojen luokkiin saadaksesi tietoa erilaisista tiedostomuodoista
STEP vs IGES Selitetty: Modernien ja Perinteisten CAD-vaihtoformaattejen vertailu