Open Source Python Library for 3D CAD-filformater
Gratis Python CAD-bibliotek for å lage parametriske 3D CAD-modeller. Det skaper høykvalitets CAD-formater som STEP, AMF og 3MF i tillegg til tradisjonelle STL
Python-biblioteket med åpen kildekode CadQuery er et brukervennlig Python-bibliotek for å bygge parametriske 3D CAD-modeller. Biblioteket er veldig kraftig og kan ved å skrive korte skript produsere høykvalitets CAD-modeller i Python-applikasjoner. Det er også mulig å tilpasse skriptet og lage mange forskjellige objekter ved å bruke et enkelt skript. CadQuery-skriptene er veldig raske og kan bygge STL, STEP, AMF og 3MF raskere enn andre tilgjengelige biblioteker.
Biblioteket tilbyr avanserte modelleringsevner som fileter, krumlinjede ekstruderer, parametriske kurver og lofter. Det er et skriptbasert bibliotek som kan lage en parametrisk modell som enkelt kan tilpasses av sluttbrukere. Den lager 3D-modeller med skript som er så nært som mulig hvordan du vil beskrive objektet for et menneske. CadQuery er lisensiert under vilkårene i Apache Public License, versjon 2.0.
Dette CadQuery-biblioteket er bevisst designet for å være uten GUI, slik at det kan brukes i tekniske og vitenskapelige applikasjoner for å lage 3D-modeller med programmering. Hvis du trenger å bruke en GUI, kan du vurdere Qt-basert GUI CQ-editor eller Jupyter extension jupyter-cadquery. Det er også mulig å bruke biblioteket sammen med andre Python-bibliotek.
Komme i gang med CadQuery
Den enkleste måten å installere CadQuery stabil utgivelse på er å bruke pip. Bruk følgende kommando for en jevn installasjon.
Installer CadQuery via pip
pip install cadquery
Du kan laste ned det kompilerte delte biblioteket fra Github-depotet.
Arbeid med Polygon via Python 3D Library
En polygon er en todimensjonal form med rette sider. Polygonal modellering er en tilnærming for å modellere objekter ved å representere eller tilnærme overflatene deres ved å bruke polygonmasker. Åpen kildekode Python Library CadQuery gjør det mulig for programvareutviklere å lage polygoner for hvert stabelpunkt med bare et par linjer med Python-kode. Det er veldig fordelaktig i 3d-skrivere hvis fastvare ikke korrigerer for små hullstørrelser.
Lag arbeidsplaner på ansikter via Python 3D Library
Åpen kildekode Python Library CadQuery har gitt fullstendig støtte for å lage Workplanes on Faces i Python-applikasjoner. bruk av arbeidsplaner på denne måten er en nøkkelfunksjon i CadQuery. Det frigjør brukere fra å søke posisjonen til ulike funksjoner i variabler, og gjør det mulig for modellen å slette de overflødige dimensjonene. Brukere kan velge flatene til det resulterende solidet ved å kalle Workplane.faces ()-metoden. Husk at opprinnelsen til et nytt arbeidsplan som standard beregnes ved å lage et plan fra det valgte ansiktet og projisere den forrige opprinnelsen på det planet.
Opprette arbeidsplaner på Faces 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
Arbeid med 3D LEGO-klosser via Python
CadQuery-biblioteket har gitt fullstendig støtte for å lage 3D-animasjon som representerer Lego-klossene i forskjellige størrelser ved hjelp av Python-kommandoer. Det er også mulig å gjenskape klosser ved å sette sammen flere terninger og sylindre. Vi kan lage et sammensatt objekt for å slå sammen disse 3D-formene i et enkelt objekt (kloss). Følgende eksempel viser hvordan du genererer en vanlig rektangulær Lego(TM)-kloss i alle størrelser. Det er bare vanskelig på grunn av logikken angående undersiden av mursteinen.
Lag 3D LEGO-klosser 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)