1. Produkti
  2.   CAD
  3.   Python
  4.   CadQuery
 
  

Atvērtā pirmkoda Python bibliotēka 3D CAD failu formātiem

Bezmaksas Python CAD bibliotēka, lai izveidotu parametriskus 3D CAD modeļus. Tas rada augstas kvalitātes CAD formātus, piemēram, STEP, AMF un 3MF papildus tradicionālajiem STL

Atvērtā koda Python bibliotēka CadQuery ir ērti lietojama Python bibliotēka parametrisku 3D CAD modeļu veidošanai. Bibliotēka ir ļoti jaudīga, un, rakstot īsus skriptus, Python lietojumprogrammās var izveidot augstas kvalitātes CAD modeļus. Ir arī iespējams pielāgot skriptu un izveidot daudz dažādu objektu, izmantojot vienu skriptu. CadQuery skripti ir ļoti ātri un var izveidot STL, STEP, AMF un 3MF ātrāk nekā citas pieejamās bibliotēkas.

Bibliotēka piedāvā uzlabotas modelēšanas iespējas, piemēram, filejas, izliektas izspiešanas, parametriskas līknes un bēniņus. Tā ir uz skriptiem balstīta bibliotēka, kas var izveidot parametrisku modeli, ko galalietotāji var viegli pielāgot. Tas rada 3D modeļus ar skriptiem, kas ir pēc iespējas tuvāki tam, kā jūs aprakstītu objektu cilvēkam. CadQuery ir licencēta saskaņā ar Apache publiskās licences versijas 2.0 noteikumiem.

Šī CadQuery bibliotēka ir apzināti izstrādāta tā, lai tajā nebūtu izmantota GUI, lai to varētu izmantot inženierzinātnēs un zinātniskās lietojumprogrammās, lai programmatiski izveidotu 3D modeļus. Ja jums ir jāizmanto GUI, varat apsvērt uz Qt balstītu GUI CQ redaktoru vai Jupyter paplašinājumu jupyter-cadquery. Bibliotēku iespējams izmantot arī kopā ar citām Python bibliotēkām.

Previous Next

Darba sākšana ar CadQuery

Vienkāršākais veids, kā instalēt CadQuery stabilo laidienu, ir izmantot pip. Lūdzu, izmantojiet šo komandu vienmērīgai instalēšanai.

Instalējiet CadQuery, izmantojot pip

pip install cadquery 

Varat lejupielādēt apkopoto koplietoto bibliotēku no Github krātuves.

Strādājiet ar daudzstūri, izmantojot Python 3D bibliotēku

Daudzstūris ir divdimensiju forma ar taisnām malām. Daudzstūra modelēšana ir pieeja objektu modelēšanai, attēlojot vai aproksimējot to virsmas, izmantojot daudzstūru tīklus. Atvērtā koda Python bibliotēka CadQuery ļauj programmatūras izstrādātājiem izveidot daudzstūrus katram steka punktam, izmantojot tikai dažas Python koda rindas. Tas ir ļoti izdevīgi 3D printeros, kuru programmaparatūra nav piemērota maziem caurumu izmēriem.

Izveidojiet darba plaknes uz sejām, izmantojot Python 3D bibliotēku

Atvērtā koda Python bibliotēka CadQuery ir nodrošinājusi pilnīgu atbalstu darbplānu izveidei Python lietojumprogrammās. darba plakņu izmantošana šādā veidā ir galvenā CadQuery iezīme. Tas atbrīvo lietotājus no dažādu funkciju pozīcijas meklēšanas mainīgajos lielumos un ļauj modelim dzēst liekos izmērus. Lietotāji var atlasīt iegūtās cietās virsmas skaldnes, izsaucot metodi Workplane.faces (). Lūdzu, atcerieties, ka pēc noklusējuma jaunas darba plaknes sākumpunkts tiek aprēķināts, izveidojot plakni no atlasītās virsmas un projicējot iepriekšējo sākumpunktu uz šo plakni.

Darba plakņu izveide uz sejām, izmantojot 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
 

Darbs ar 3D LEGO klucīšiem, izmantojot Python

CadQuery bibliotēka ir nodrošinājusi pilnīgu atbalstu 3D animācijas izveidei, kas attēlo Lego klucīšus dažādos izmēros, izmantojot Python komandas. Ir iespējams arī atjaunot ķieģeļus, savienojot kopā vairākus kubus un cilindrus. Mēs varam izveidot saliktu objektu, lai apvienotu šīs 3D formas vienā objektā (ķieģelī). Šis piemērs parāda, kā izveidot jebkura izmēra parasto taisnstūrveida Lego(TM) klucīti. Tas ir sarežģīti tikai loģikas dēļ attiecībā uz ķieģeļa apakšpusi.

Izveidojiet 3D LEGO klučus, izmantojot 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)
 Latviski