Doghouse DXF with Insulation and Bluetooth
This Python snippet demonstrates how to generate a DXF file for a doghouse with dimensions specified in millimeters. It includes provisions for sound insulation and hints at Bluetooth connectivity.unknown
python
a year ago
2.5 kB
2
Indexable
```python import ezdxf import math def create_doghouse_dxf(filename, width, depth, height): # Creare un nuovo documento DXF doc = ezdxf.new('R2010') msp = doc.modelspace() # Definire le dimensioni in mm w, d, h = width, depth, height wall_thickness = 50 # Spessore della parete per l'insonorizzazione # Creare il pavimento con insonorizzazione msp.add_rectangle((0, 0), (w, d)) msp.add_rectangle((wall_thickness, wall_thickness), (w-wall_thickness, d-wall_thickness)) # Creare le pareti con insonorizzazione for x, y in [(0, 0), (0, d), (w, 0), (w, d)]: msp.add_rectangle((x, y), (wall_thickness, h)) msp.add_rectangle((0, 0), (w, wall_thickness)) msp.add_rectangle((0, d-wall_thickness), (w, wall_thickness)) # Creare il tetto con insonorizzazione msp.add_rectangle((0, 0), (w, d)).translate(0, 0, h) msp.add_rectangle((wall_thickness, wall_thickness), (w-wall_thickness, d-wall_thickness)).translate(0, 0, h-wall_thickness) # Creare la porta (rettangolo trasparente) door_width, door_height = w * 0.6, h * 0.8 door_x = (w - door_width) / 2 door_y = 0 msp.add_rectangle((door_x, door_y), (door_width, door_height)) # Aggiungere simboli per gli altoparlanti speaker_radius = 50 msp.add_circle((speaker_radius+wall_thickness, speaker_radius+wall_thickness, h-wall_thickness-speaker_radius), speaker_radius) msp.add_circle((w-speaker_radius-wall_thickness, speaker_radius+wall_thickness, h-wall_thickness-speaker_radius), speaker_radius) # Aggiungere una linea per la striscia LED msp.add_line((0.1*w, 0.1*d, h-wall_thickness-10), (0.9*w, 0.9*d, h-wall_thickness-10)) # Aggiungere simbolo per il modulo Bluetooth bluetooth_size = 30 msp.add_rectangle((w-wall_thickness-bluetooth_size, d-wall_thickness-bluetooth_size, h/2), (bluetooth_size, bluetooth_size)) # Aggiungere testo per le dimensioni msp.add_text(f"{w}mm", dxfattribs={'height': 100}).set_pos((w/2, -200)) msp.add_text(f"{d}mm", dxfattribs={'height': 100}).set_pos((-200, d/2), align='CENTER').rotate_z(90, (-200, d/2)) msp.add_text(f"{h}mm", dxfattribs={'height': 100}).set_pos((w+200, h/2), align='CENTER').rotate_z(90, (w+200, h/2)) # Salvare il file DXF doc.saveas(filename) # Usare la funzione con dimensioni in mm create_doghouse_dxf('cuccia_insonorizzata_dettagliata.dxf', 1500, 1500, 1800) ```
Editor is loading...
Leave a Comment