Paskutinį kartą atnaujinta: 2026 m. rugpjūčio 20 d.

CAD automatizavimas be AutoCAD: Atviro kodo alternatyvos kūrėjams
Dešimtmečius CAD (kompiuterinio projektavimo) automatizavimas reikšdavo susidurimą su Autodesk nuosavybinėmis API: AutoLISP skriptai, veikiantys darbalaukio sesijoje, ObjectARX, parašytas sunkiu C++, arba .NET apvalkikliai, griežtai susieti su Windows vykdymo aplinka.
Nors AutoCAD išlieka pramonės etalonu, šiuolaikinė programinės įrangos inžinerija reikalauja didesnio lankstumo:
- Be vartotojo sąsajos vykdymas lengvuose Linux Docker konteineriuose.
- Nuolatinė integracija / nuolatinis diegimas (CI/CD) vamzdynai, kurie generuoja mechaninius brėžinius arba architektūrinius pristatymus įkėlimo metu.
- Interneto natūralūs konfigūratoriai , kurie dinamiškai generuoja CAD modelius debesyje.
- Nuliniai licencijavimo apribojimai, pašalinant sėdimų vietų arba žetonų pagrindu skaičiuojamus kaštus, kad būtų galima paprastai vykdyti automatizuotas paketines užduotis.
Laimei, atviro kodo ekosistema žymiai subrendė. Dabar kūrėjai gali programiškai generuoti, tikrinti, modifikuoti ir eksportuoti tiek 2D brėžinius, tiek sudėtingus 3D kūnus, naudodami gryną kodą.
Čia pateikiama išsami analizė geriausių atviro kodo alternatyvų AutoCAD, skirtų kūrėjų valdomai CAD automatizacijai.
1. ezdxf: Python galingiausia priemonė 2D automatizavimui
Jei pagrindinis jūsų poreikis iš AutoCAD yra generuoti arba analizuoti .dxf (Drawing Exchange Format) failus – pavyzdžiui, grindų planus, lazerinio pjovimo profilius, CNC vektorines trajektorijas arba antraštės blokus – ezdxf yra, be abejonės, patikimiausia prieinama Python biblioteka.
Kodėl kūrėjai renkasi jį
- Nėra sunkių priklausomybių: Grinis Python su pasirenkamais C plėtiniais našumui.
- Pilnas DXF palaikymas: Palaiko DXF versijas nuo R12 iki šiuolaikinio AC1032 (AutoCAD 2018+).
- Be galvos ir paruošta debesų aplinkai: Veikia sklandžiai lengvuose AWS Lambda funkcijose arba mikroservisuose.
- Vektorinė matematika ir atvaizdavimas: Įtraukia modulius teksto išdėstymui, matmenų žymėjimui, kryžminiam brėžimui ir DXF duomenų atvaizdavimui tiesiai į SVG, Matplotlib arba PDF.
Minimalus pavyzdys: Daugiasluoksnio 2D profilio generavimas
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")
Geriausiai tinka: 2D brėžinių generavimas, lazerinio pjovimo kelių eksportas, partinių brėžinių modifikavimas, CNC išdėstymo išankstinis apdorojimas.
2. CadQuery: Kodu pagrįsta parametrinė 3D CAD variklis
Tradiciniai CAD įrankiai koncentruojasi į grafinę vartotojo sąsają (GUI), kur piešiate eskizus ir spustelėdami iškeliat arba suapvalinate. CadQuery apverčia šį paradigmą galvoje: jis traktuoja CAD kaip įprastą programinės įrangos inžineriją.
Sukurtas ant patikimo Open CASCADE Technology (OCCT) variklio, CadQuery suteikia kūrėjams sklandžią, intuityvią Python API sudėtingų ribų atvaizdavimo (B-Rep) kietųjų kūnų kūrimui.
Kodėl kūrėjai renkasi jį
- Tikras kietųjų kūnų modeliavimas: Skirtingai nuo daugiakampių tinklelio įrankių, CadQuery dirba su tiksliomis analitinėmis paviršiais (NURBS, plokštumos, cilindrai).
- Parametrinis pagal dizainą: Vieno kintamojo pakeitimai sklandžiai persiskleidžia per visą dizainą.
- Standartiniai eksportai: Tiesioginis eksportas į STEP, IGES, STL ir DXF.
- Modernus CI/CD pritaikymas: Puikiai tinka automatizuotam regresijos testavimui mechaninių komponentų.
Minimalus pavyzdys: Parametrinis flanguotas vamzdis
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")
Geriausiai tinka: Parametriniai dalių generatoriai, internetiniai 3D modelių konfigūruotojai, inžineriniai komponentai, automatizuota STEP/IGES gamyba.
3. FreeCAD (Be vartotojo sąsajos Python API): Pilno masto darbalaukio galia debesyje
FreeCAD yra plačiai žinomas kaip pagrindinė atviro kodo darbalaukio CAD programa, tačiau jo didžiausia slaptas ginklas kūrėjams – tai, kad visa jo branduolys yra atskleistas kaip modulinė Python biblioteka.
FreeCAD galima paleisti be galvos režimu (be X‑serverio ar grafinės sąsajos), kad atliktų sudėtingus surinkimo patikrinimus, loginės operacijas, techninių brėžinių generavimą (per TechDraw modulį) ir failų konvertavimą.
Kodėl kūrėjai renkasi jį
- Milžiniška ekosistema: Įgimta parama Arch/BIM, PartDesign, Mesh, SheetMetal ir TechDraw darbo stotims.
- Tiesioginė DXF/DWG interoperabilumas: Gali būti integruotas su išoriniais konverteriais, tokiais kaip LibreDWG arba ODA File Converter.
- Automatinis brėžimas:
TechDrawmodulis gali programiškai generuoti kelių vaizdų ortografines projekcijas, skersinius vaizdus ir matmenis kaip SVG arba PDF failus.
Be vartotojo sąsajos darbo srauto koncepcija
# 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")
Geriausiai tinka: Sudėtingiems surinkiniams, BIM/architektūriniam automatizavimui, programiškam PDF brėžinių generavimui.
4. Open CASCADE Technology (OCCT): Įmonės lygio branduolys
Jei kuriate pritaikytą komercinę CAD programą, geometriją intensyvų SaaS platformą arba jums reikia aukštos našumo daugiagijų geometrijos skaičiavimų C++, žiūrėkite tiesiai į Open CASCADE Technology (OCCT).
FreeCAD ir CadQuery abu remiasi OCCT varikliu. Praleidžiant tarpinį sluoksnį gaunate gryną našumą ir gilų geometrinį valdymą.
Pagrindinės galimybės
- Pramonės lygio B-Rep (Ribų atvaizdavimas) ir topologinės duomenų struktūros.
- Paviršių ir kreivių įvertinimas, sankirtos, nuolatiniai perėjimai ir pažangus apvalinimas.
- Tinklo generavimas ir galinių elementų išankstinis apdorojimas.
- pythonOCC: Išvystyta Python apvalkalo rinkinys, jei norite C++ našumo su Python iteracijos greičiu.
Geriausiai tinka: Didelio pralaidumo debesų geometrinių duomenų srautų, aukštos tikslumo loginės operacijos, individualios nuosavybinės CAD/CAM programinės įrangos kūrimas.
5. LibreCAD ir LibreDWG: senų formatų ir 2D darbo eigų tvarkymas
Dažna problema pereinant nuo AutoCAD yra darbų su .dwg failais — Autodesk uždaru, nuosavybiniu dvejetainiu formatu.
- GNU LibreDWG: Nemokama C biblioteka, skirta tiesioginiam DWG failų skaitymui ir rašymui. Nors sukurta atvirkštiniu inžineriniu būdu, ji suteikia plačią paramą geometrijos, atributų išgavimui ir DWG konvertavimui į DXF arba JSON.
- LibreCAD (LibreCAD v3 / libcad): Siūlo be galvos C++ pagrindines bibliotekas, skirtas brėžinių primityvams ir architektūriniams sluoksniams.
Kombinuodami LibreDWG su tokiais įrankiais kaip ezdxf, galite sukurti automatizuotas įsisavinimo konvejerius, kurie priima nuosavybinius .dwg failus iš klientų ir normalizuoja juos į atvirų duomenų konvejerius be AutoCAD licencijos.
Architektūrinis palyginimas: pasirinkti tinkamą įrankį
| Įrankis | Pagrindinė kalba | Pagrindinis dėmesys | Geriausias naudojimo atvejis | Be galvos/Paruošta debesų aplinkai? |
|---|---|---|---|---|
| ezdxf | Python | 2D DXF | Vektorinis brėžimas, CNC/ lazerio eksportas, metaduomenų analizė | Taip (ypač lengvas) |
| CadQuery | Python (virš OCCT) | 3D parametriniai kūnai | Programinis CAD, debesų konfigūruotojai, STEP modeliai | Taip (Docker draugiškas) |
| FreeCAD | C++ / Python | 2D/3D ir BIM | Daugių vaizdų brėžiniai, formato konvertavimas, sudėtingi surinkimai | Taip (freecadcmd / headless build) |
| OpenSCAD | Individualizuota DSL / C++ | 3D CSG kietieji kūnai | Procedūriniai 3D spausdinimo komponentai, mėgėjų procesai | Taip (Native CLI) |
| Open CASCADE | C++ | Geometrijos branduolys | Galinga pritaikyta programinė įranga, įmonės skaičiavimo varikliai | Taip (aukštas našumas) |
Rekomenduojama sistemos architektūra automatizuotoms CAD vamzdynams
Inžinerijos komandų, siekiančių sukurti visapusišką automatizacijos kanalą be AutoCAD, rekomenduojame šį modernų mikroservisų modelį:
- Klientas / Priekinė dalis: Žiniatinklio sąsaja priima parametrus (pvz., pritaikytus matmenis, medžiagų pasirinkimus).
- API sluoksnis (FastAPI/Node.js): Patikrina įvesties schemas ir siunčia užduotis į eilę (Celery, Redis arba SQS).
- Darbiniai mazgai (Dockerizuotas CadQuery/ezdxf):
- Be galvos konteineriai paleidžiami geometrijai apskaičiuoti.
- Sugeneruoti išvesties failai:
.stepgamybai,.dxfCNC profiliams ir.gltf/.threejsformatas realaus laiko 3D peržiūrai naršyklėje.
- Saugojimas ir pristatymas: Failai išsaugomi tiesiogiai S3 suderinamoje objektų saugykloje ir grąžinami vartotojui arba gamybos eilėje.
Ši architektūra veikia standartiniuose Linux serveriuose, automatiškai plečiasi pagal poreikį ir pašalina licencijavimo, darbalaukio apribojimų bei VM našumo išlaidas, susijusias su senovine CAD programine įranga.
Dažnai užduodami klausimai (DUK)
**Q1: Ar galiu visiškai be galvos vykdyti CAD automatizacijos konvejerius Linux Docker konteineriuose? Taip, tokios priemonės kaip CadQuery, ezdxf ir FreeCAD CLI veikia natūraliai Linux sistemoje be jokios grafinės vartotojo sąsajos (GUI) ar vaizdo serverio.
**Q2: Kaip konvertuoti nuosavybinį AutoCAD DWG failus neperkant AutoCAD? Galite naudoti GNU LibreDWG arba Open Design Alliance (ODA) File Converter CLI, kad paketiniu režimu konvertuotumėte DWG failus į standartinius DXF arba vektorinius formatus.
**Q3: Ar įmanoma sukurti pramonės lygio 3D STEP failus naudojant tik Python? Taip, CadQuery ir pythonOCC sukuria tikrą ribų atvaizdavimo (B-Rep) kietąją geometriją ir eksportuoja visiškai atitinkančius STEP ir IGES failus.
**Q4: Kaip CadQuery lyginamas su OpenSCAD programiškai modeliuojant? CadQuery sukuria tikrus topologinius B-Rep kietuosius objektus su NURBS ir apvalinimais, tuo tarpu OpenSCAD naudoja konstruktyvią kietąją geometriją (CSG), kuri daugiausia optimizuota tinklo išvestims, tokioms kaip STL.
**Q5: Ar atviro kodo CAD įrankiai gali automatiškai generuoti matmenis turinčius 2D brėžinius iš 3D modelių? Taip, FreeCAD galvos be sąsajos TechDraw API ir CadQuery brėžinių projekcijos moduliai gali projekuoti 3D geometriją į matmenis turinčius SVG, DXF arba PDF vaizdus.
Taip pat žiūrėkite
CAD failų formatai FileFormat.com
Atviro kodo API darbui su CAD failų formatais
Failų formatų naujienos – Jūsų vienas šaltinis visoms naujienoms, susijusioms su failų formatais iš viso pasaulio
Failų formato forumai – Pateikite savo užklausas failų formato forumuose, kad gautumėte naudingą informaciją iš failų formato ekspertų ir bendruomenės vartotojų
Failų formatų wiki – Naršykite failų formatų kategorijas, kad gautumėte informaciją apie įvairius failų formatus
STEP vs IGES paaiškinta: modernių ir senų CAD keitimo formatų palyginimas