Open Source Python Library til 3D CAD-filformater
Gratis Python CAD-bibliotek til at skabe parametriske 3D CAD-modeller. Det skaber højkvalitets CAD-formater som STEP, AMF & 3MF ud over traditionelle STL
Open source Python-biblioteket CadQuery er et letanvendeligt Python-bibliotek til at bygge parametriske 3D CAD-modeller. Biblioteket er meget kraftfuldt og kan ved at skrive korte scripts producere højkvalitets CAD-modeller inde i Python-applikationer. Det er også muligt at tilpasse scriptet og lave mange forskellige objekter ved hjælp af et enkelt script. CadQuery-scripts er meget hurtige og kan bygge STL, STEP, AMF og 3MF hurtigere end andre tilgængelige biblioteker.
Biblioteket tilbyder avancerede modelleringsevner såsom fileter, buede ekstruder, parametriske kurver og lofter. Det er et script-baseret bibliotek, der kan skabe en parametrisk model, som let kan tilpasses af slutbrugere. Det skaber 3D-modeller med scripts, der er så tæt som muligt på, hvordan du vil beskrive objektet for et menneske. CadQuery er licenseret under vilkårene i Apache Public License, version 2.0.
Dette CadQuery-bibliotek er bevidst designet til at være uden GUI, så det kan bruges i tekniske og videnskabelige applikationer til programmatisk at skabe 3D-modeller. Hvis du skal bruge en GUI, kan du overveje Qt-baseret GUI CQ-editor eller Jupyter extension jupyter-cadquery. Det er også muligt at bruge biblioteket sammen med andre Python-biblioteker.
Kom godt i gang med CadQuery
Den nemmeste måde at installere CadQuery stabil udgivelse på er at bruge pip. Brug venligst følgende kommando for en problemfri installation.
Installer CadQuery via pip
pip install cadquery
Du kan downloade det kompilerede delte bibliotek fra Github-lageret.
Arbejd med Polygon via Python 3D Library
En polygon er en todimensionel form med lige sider. Polygonal modellering er en tilgang til modellering af objekter ved at repræsentere eller tilnærme deres overflader ved hjælp af polygonmasker. Open source Python Library CadQuery gør det muligt for softwareudviklere at oprette polygoner for hvert stackpunkt med blot et par linjer Python-kode. Det er meget fordelagtigt i 3d-printere, hvis firmware ikke korrigerer for små hulstørrelser.
Opret arbejdsplaner på ansigter via Python 3D Library
Open source Python Library CadQuery har ydet komplet support til at skabe Workplanes on Faces inde i Python-applikationer. brugen af arbejdsplaner på denne måde er en nøglefunktion i CadQuery. Det frigør brugere fra at søge efter placeringen af forskellige funktioner i variabler og gør det muligt for modellen at slette de overflødige dimensioner. Brugere kan vælge overfladerne af det resulterende faste stof ved at kalde metoden Workplane.faces (). Husk, at udgangspunktet for et nyt arbejdsplan som standard beregnes ved at lave et plan fra den valgte flade og projicere den tidligere oprindelse på dette plan.
Oprettelse af arbejdsplaner på ansigter via Python
result = cq.Workplane("front").box(2, 3, 0.5) # make a basic prism
result = result.faces(">Z").workplane().hole(0.5) # find the top-most face and make a hole
Arbejde med 3D LEGO-klodser via Python
CadQuery-biblioteket har ydet komplet support til at skabe 3D-animation, der repræsenterer Lego-klodserne i forskellige størrelser ved hjælp af Python-kommandoer. Det er også muligt at genskabe klodser ved at samle flere terninger og cylindre sammen. Vi kan skabe et sammensat objekt for at forbinde disse 3D-former i et enkelt objekt (klods). Følgende eksempel viser, hvordan man genererer almindelig rektangulær Lego(TM)-klods i enhver størrelse. Det er kun vanskeligt på grund af logikken vedrørende undersiden af murstenen.
Skab 3D LEGO-klodser via Python
#####
# Inputs
######
lbumps = 6 # number of bumps long
wbumps = 2 # number of bumps wide
thin = True # True for thin, False for thick
#
# Lego Brick Constants-- these make a lego brick a lego :)
#
pitch = 8.0
clearance = 0.1
bumpDiam = 4.8
bumpHeight = 1.8
if thin:
height = 3.2
else:
height = 9.6
t = (pitch - (2 * clearance) - bumpDiam) / 2.0
postDiam = pitch - t # works out to 6.5
total_length = lbumps*pitch - 2.0*clearance
total_width = wbumps*pitch - 2.0*clearance
# make the base
s = cq.Workplane("XY").box(total_length, total_width, height)
# shell inwards not outwards
s = s.faces("Z").workplane(). \
rarray(pitch, pitch, lbumps, wbumps, True).circle(bumpDiam / 2.0) \
.extrude(bumpHeight)
# add posts on the bottom. posts are different diameter depending on geometry
# solid studs for 1 bump, tubes for multiple, none for 1x1
tmp = s.faces(" 1 and wbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, wbumps - 1, center=True). \
circle(postDiam / 2.0).circle(bumpDiam / 2.0).extrude(height - t)
elif lbumps > 1:
tmp = tmp.rarray(pitch, pitch, lbumps - 1, 1, center=True). \
circle(t).extrude(height - t)
elif wbumps > 1:
tmp = tmp.rarray(pitch, pitch, 1, wbumps - 1, center=True). \
circle(t).extrude(height - t)
else:
tmp = s
# Render the solid
build_object(tmp)