download
raw
1.64 kB
import cadquery as cq
from trame.app import get_server
from trame.ui.vuetify import SinglePageLayout
from trame.widgets import vuetify, vtk as vtk_widgets
# 1. Configuration du serveur Trame
server = get_server()
state, ctrl = server.state, server.controller
# Valeur initiale de la taille de notre pièce
state.box_size = 10
# 2. Logique de génération CAO (CadQuery)
def generate_mesh(size):
# On crée une boîte avec CadQuery et un trou au milieu
result = (
cq.Workplane("XY")
.box(size, size, size)
.faces(">Z")
.hole(size / 2)
)
# On exporte en format polygone pour l'affichage (VTK)
# Note : Dans un vrai projet, on utiliserait un convertisseur direct
return result.toVtkPolyData()
# 3. Mise à jour de la vue 3D
@state.change("box_size")
def update_view(box_size, **kwargs):
polydata = generate_mesh(box_size)
ctrl.view_update(polydata)
# 4. Interface Utilisateur (UI) avec Vuetify
with SinglePageLayout(server) as layout:
layout.title.set_text("Mon Mini-Onshape Python")
with layout.sidebar:
vuetify.VSlider(
v_model=("box_size", 10),
min=5, max=50, step=1,
label="Taille de la boîte",
classes="pa-4"
)
vuetify.VBtn("Réinitialiser", click="box_size = 10", classes="ma-4")
with layout.content:
with vuetify.VContainer(fluid=True, classes="pa-0 fill-height"):
# Fenêtre de rendu 3D
view = vtk_widgets.VtkRemoteView(server)
ctrl.view_update = view.update
# 5. Lancement de l'application
if __name__ == "__main__":
server.start()

Xet Storage Details

Size:
1.64 kB
·
Xet hash:
4c723b8ef16db3f20e13fdc21e6a248ab2f594e179cf6163bd7cfb0ec13d699f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.