
FreeCAD
Avoimen lähdekoodin 3D parametrinen CAD-mallinnustyökalu
Luo, muokkaa ja automatisoi 3D-suunnitelmia Python API:n avulla mekaaniseen suunnitteluun, arkkitehtuuriin ja tuotesuunnitteluun.
Mikä on FreeCAD?
FreeCAD on tehokas, avoimen lähdekoodin 3D-parametrinen CAD-mallinnustyökalu, joka on suunniteltu luomaan todellisia kohteita kaikenkokoisina. Se tukee parametrista mallinnusta, mikä mahdollistaa käyttäjien helposti muokata suunnitelmia säätämällä mallin historiassa olevia parametreja. Rakennettu vahvalle arkkitehtuurille, jossa käytetään OpenCASCADEa, Coin3D:tä, Qt:ta ja Pythonia, FreeCAD palvelee mekaanista tekniikkaa, arkkitehtuuria, tuotesuunnittelua ja paljon muuta. Sen joustava Python-API antaa kehittäjille ja edistyneille käyttäjille mahdollisuuden automatisoida tehtäviä, laajentaa toiminnallisuutta ja integroida ulkoisiin työkaluihin. Olitpa sitten harrastaja, opiskelija, insinööri tai opettaja, FreeCAD tarjoaa ammattitason alustan 3D-suunnitteluun ilman lisenssikustannuksia.
FreeCADin ydinvoima perustuu sen kykyyn yhdistää 2D-piirustus ja 3D-mallinnus, jolloin käyttäjät voivat piirtää geometrisesti rajoitettuja 2D-profiileja ja venyttää ne 3D-ominaisuuksiksi. Se sisältää erikoistuneita työpöytiä, kuten Part Design, Assembly, Drafting, Architecture ja muita. Sovellus toimii natiivisti Windowsissa, macOSissa ja Linuxissa, mikä takaa laajan saavutettavuuden. Aktiivisen yhteisötuen, kattavan dokumentaation ja modulaarisen lisäosarakenteen ansiosta FreeCAD on ihanteellinen sekä aloittelijoille että kokeneille CAD-ammattilaisille, jotka etsivät läpinäkyvää, muokattavaa ja ilmaista vaihtoehtoa proprietaarisille työkaluille. Sen integrointi simulointi- ja valmistusprosessiin tekee siitä sopivan koko tuotteen kehityskaareen.
FreeCADin aloitus
FreeCAD on saatavilla esikäännettyinä asennusohjelmina Windowsille, macOS:lle ja Linuxille viimeisimmän julkaisun sivu. Linuxilla se on usein saatavilla jakelusi pakettienhallinnan tai ohjelmistokeskuksen kautta. Kehittäjille ja edistyneille käyttäjille lähdekoodista kääntäminen on tuettu CMake:n avulla. Virallinen Kehittäjäopas tarjoaa yksityiskohtaiset käännösohjeet. Kun asennus on valmis, käynnistä FreeCAD ja tutustu työpöytiin työkalupalkin kautta. Python-konsoli ja makrojärjestelmä mahdollistavat automaation ja mukauttamisen. Oppimateriaaleja varten käy Aloitusopas-oppaassa FreeCAD-wikissä.
Asenna FreeCAD pakettienhallinnan (Linux) kautta tai lataa
# Ubuntu/Debian
sudo apt install freecad
# macOS (Homebrew)
brew install --cask freecad
# Windows: Download from https://github.com/FreeCAD/FreeCAD/releases/latest
Parametrinen 3D-mallinnus Python-API:n avulla
FreeCADin parametrinen mallinnusmoottori mahdollistaa käyttäjien määritellä objekteja muokattavilla parametreilla, jolloin suunnittelusilmukat toteutuvat pelkällä arvojen säätämisellä. Python API paljastaa koko mallinnuspinon, antaen kehittäjille mahdollisuuden luoda monimutkaisia geometrioita ohjelmallisesti. Käyttämällä Part- ja PartDesign-työpöytiä voit luoda perusmuotoja, suorittaa Boolen‑operaatioita, lisätä pyöristymiä/viistoja, ja luoda ominaisuuksia kuten padi, taskut ja pyörimiset – kaikki Pythonin kautta. Tämä kyky on olennaista generatiivisessa suunnittelussa, topologisessa optimoinnissa ja CAD:n integroinnissa simulointi- tai valmistusprosessiin. API tukee sekä oliopohjaista että funktionaalista lähestymistapaa, mikä tekee siitä sopivan skriptaamiseen, makroihin ja täysimittaisiin lisäosiin. Pääsyyn alla olevaan OpenCASCADE-ytimeen FreeCAD tarjoaa ammattimaisia geometrisia operaatioita säilyttäen helppokäyttöisyyden aloittelijoille.
Luo parametrinen kuutio ja muokkaa sen mittoja Pythonin avulla
import FreeCAD as App
import Part
# Create document and object
doc = App.newDocument()
cube = doc.addObject("Part::Box", "Cube")
cube.Length = 10
cube.Width = 20
cube.Height = 30
App.ActiveDocument.recompute()
# Modify dimensions later
cube.Length = 15
App.ActiveDocument.recompute()
2D-luonnostelu- ja piirustustyöpöytä
FreeCAD sisältää vankat 2D‑luonnostyöympäristön, joka on integroitu 3D‑mallinnusputkeen. Sketcher‑työpöytä mahdollistaa käyttäjien piirtää geometrisesti rajoitettuja 2D‑profiileja käyttäen viivoja, kaaria, ympyröitä ja splineja. Rajoitukset, kuten vaakasuorat, pystysuorat, rinnakkaiset, kohtisuorat ja mittarajoitukset, varmistavat tarkan hallinnan luonnoksen geometriassa. Kun ne on valmis, nämä luonnokset toimivat perustana 3D‑ominaisuuksille, kuten pursotuksille, pyörityksille ja loft-ominaisuuksille. Lisäksi Draft‑työpöytä tarjoaa työkaluja 2D‑vektorigrafiikan luomiseen ilman rajoituksia, mikä on ihanteellista arkkitehtonisiin pohjapiirroksiin tai teknisiin kuviin. Drawing‑työpöytä mahdollistaa ortografisten projisointien, leikkausnäkymien ja merkitysten sisältävien piirustusten luomisen 3D‑malleista, tukien ISO‑standardin mukaisia teknisiä asiakirjoja, joissa on mittakaava, toleranssit ja materiaaliluettelon ominaisuudet.
Luo luonnos, lisää rajoitteita ja extrudoi muodostaaksesi 3D-ominaisuuden
import FreeCAD as App
import Sketcher
import PartDesign
doc = App.newDocument()
Part = doc.addObject("PartDesign::Body")
Sketch = doc.addObject("Sketcher::SketchObject", "Sketch")
Sketch.Placement = App.Placement(App.Vector(0,0,0), App.Rotation(App.Vector(0,0,1),0))
# Add geometry
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,0,0),App.Vector(10,0,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,0,0),App.Vector(10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(10,10,0),App.Vector(-10,10,0)),False)
Sketch.addGeometry(Part.LineSegment(App.Vector(-10,10,0),App.Vector(-10,0,0)),False)
# Add constraints
Sketch.addConstraint(Sketcher.Constraint('Coincident',0,2,1,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',1,2,2,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',2,2,3,1))
Sketch.addConstraint(Sketcher.Constraint('Coincident',3,2,0,1))
Sketch.addConstraint(Sketcher.Constraint('Horizontal',0))
Sketch.addConstraint(Sketcher.Constraint('Vertical',1))
# Extrude
Pad = doc.addObject("PartDesign::Pad", "Pad")
Pad.Profile = Sketch
Pad.Length = 5
doc.recompute()
Kokoonpanosuunnittelu ja rajoitteiden ratkaisu
FreeCAD tukee monimutkaista kokoonpanomallinnusta Assembly4- ja Assembly3-työpöytien kautta, mahdollistaen käyttäjien yhdistää useita osia toiminnallisiksi mekanismeiksi. Kokoonpanot rakennetaan rajoitteiden, kuten yhtenevä, yhdensuuntainen, kohtisuora, tangentti ja etäisyys, avulla määrittelemään komponenttien suhteelliset sijainnit ja liikkeet. Ratkaisija päivittää automaattisesti kokoonpanon, kun jokin osa tai rajoite muutetaan, varmistaen suunnittelun eheyden. Tämä ominaisuus on elintärkeä mekaanisen tekniikan tehtäviin, kuten hammasrataskokonaisuuksiin, linkkeihin ja kotelomalleihin. Kokoonpanot voidaan viedä STEP-tiedostoina yhteistyötä varten muiden CAD-järjestelmien kanssa, ja liike‑simulaatio on mahdollista ulkoisten työkalujen, kuten Yade:n tai mukautettujen Python-skriptien, integroinnin avulla. FreeCADin parametrinen luonne varmistaa, että yksittäisten osien muutokset leviävät automaattisesti kokoonpanoon, vähentäen manuaalisia päivityksiä ja minimoiden virheet.
Luo yksinkertainen kokoonpano, jossa on kaksi osaa, ja lisää yhtenevä rajoite
import FreeCAD as App
import Assembly4
doc = App.newDocument("Assembly")
# Add parts
Part1 = doc.addObject("Part::Box", "Block1")
Part1.Length, Part1.Width, Part1.Height = 10, 10, 10
Part2 = doc.addObject("Part::Cylinder", "Cylinder1")
Part2.Radius, Part2.Height = 3, 15
# Create assembly
asm = doc.addObject("App::Part", "Assembly")
asm.Type = "Assembly"
asm.addObject(Part1)
asm.addObject(Part2)
# Apply constraint (simplified)
# In practice, use Assembly4's Constraint class for full functionality
App.ActiveDocument.recompute()
BIM- ja arkkitehtuurimallinnustyökalut
FreeCAD sisältää erikoistyökaluja rakennustietomallinnukseen (BIM) ja arkkitehtuurisuunnitteluun Arch-työpöydän kautta. Käyttäjät voivat luoda seiniä, lattioita, kattoja, ikkunoita, ovia ja rakenteellisia elementtejä intuitiivisten parametrinen objektien avulla. Nämä objektit päivittyvät automaattisesti, kun niiden parametrit muuttuvat, tukien iteratiivista suunnittelua ja rakennusmääräysten noudattamista. Työpöytä tukee IFC (Industry Foundation Classes) -tuontia/vientiä, mahdollistaen yhteentoimivuuden alan standardi BIM -ohjelmistojen, kuten Revitin ja Archicadin, kanssa. Toiminnot, kuten tonttisuunnittelu, energianalyysin asettaminen ja materiaalien otto, tekevät FreeCADista sopivan varhaisen arkkitehtuurisuunnittelun ja dokumentoinnin vaiheisiin. Lisäksi Draft- ja Sketcher-työpöydät integroituvat saumattomasti tarkkojen pohjapiirustusten ja elevaatioiden luomiseen, kun taas Drawing-työpöytä tuottaa rakennusasiakirjoja merkinnöillä, mitoilla ja aikatauluilla.
Luo seinä ja lisää ikkuna Python-API:n avulla
import FreeCAD as App
import Arch
doc = App.newDocument("Building")
# Create wall
Wall = Arch.makeWall(length=5000, width=200, height=3000)
Wall.Base = Arch.makeSketch([0,0,0], [5000,0,0], [5000,200,0], [0,200,0])
# Create window
Window = Arch.makeWindow(1200, 1500)
Window.Base = Arch.makeSketch([1000,100,0], [2200,100,0], [2200,1600,0], [1000,1600,0])
Window.Host = Wall
App.ActiveDocument.recompute()
