CadQuery: Rastpin – Beispiel
English
Deutsch

latching_pin_cadquery.py
import cadquery as cq
import math
# Parameter festlegen
n = 2 # Anzahl der Pins
P = 3.96 # mm Pin-Rastermaß
C1 = 6.8 # mm Höhe der Bodenplatte
H1 = 9.4 # mm Höhe der Rastplatte
O1 = 2 # mm Vertikaler Versatz Pin-Mitte zu Bodenplattenrand
D1 = 3.2 # mm Gesamttiefe der Bodenplatte
Pw = 1.14 # mm Breite & Höhe des quadratischen Pins
D2 = 1.3 # mm (Gemessen) Tiefe der Rastplatte (schmalster Abschnitt)
Wx1 = 1.0 # mm (Gemessen) Breite des obersten Teils der Rastplatte
Hx1 = 0.5 # mm (Gemessen) Höhe der Rastfläche, die von den Pinen abgewandt ist
alpha = 90 # ° Winkel der Rastfläche. Im Datenblatt als ~45° angegeben, aber echte Bauteile haben 90°
beta = 15 # ° (Geschätzt) Verjüngungswinkel der Rastplatte
WL1 = 1.27 # mm (Gemessen) Breite des Abschnitts der Bodenplatte ohne Rastplatte pro Seite)
Dlatch = 1.75 # mm (Gemessen) Gesamttiefe der Rastplatte
delta = 70 # ° (Geschätzt) Verjüngungswinkel der Pin-Ober- und -Unterseiten
FilletRadiusBaseplate = 0.4 # mm
# Abgeleitete Variablen berechnen
A1 = ( n - 1 ) * P # Gesamtbreite aller Pins (Abstand von Mitte des letzten Pins zu Mitte des ersten Pins)
B1 = A1 + ( 1.95 * 2 ) # Breite der Bodenplatte
LLatch = B1 - ( WL1 * 2 ) # Länge der Rastplatte
LPinTop = 7.7 + D1 # Länge des Pins, gemessen von der Bodenebene bis zur Pin-Oberseite (entfernt von der PCB)
LPinBottom = 14.6 - LPinTop # Länge des Pins in Bodenrichtung, gemessen von der Bodenebene
Pin1XOffset = ( ( n - 1 ) * P ) / 2 # X-Versatz des ersten Pins, gemessen von der X-Achse
# Asymmetrische Fase mit Dreiecksseiten bei konstantem Winkel berechnen
# Hinweis: Der nach oben zeigende Winkel des Fasen-Dreiecks ist [beta]
opposing_side = (Dlatch - Wx1) / 2 # So berechnen, dass der verbleibende Teil der Rastplatte Wx1 breit ist
adjacent_side = opposing_side * (1/math.tan(math.radians(beta)))
# Direkt außerhalb der Bodenplatte beginnen
xstart = C1/2
xend = xstart + Dlatch
h1MinusChamfer = H1 - adjacent_side
latchPlate = (cq.Workplane("YZ")
.sketch()
# Von unten bis zum Beginn der Fase
.segment((xstart, 0), (xstart, h1MinusChamfer))
# Faskante
.segment((xstart + opposing_side, H1))
# Oberseite der Rastplatte (gerade Linie) (bis zum Beginn der Fase der anderen Seite)
.segment((xend - opposing_side, H1))
# Faskante
.segment((xend, h1MinusChamfer))
# Nach unten zum Beginn der Rastfläche bewegen
.segment((xend, h1MinusChamfer - Hx1))
# Nach innen (-X) für die Rastfläche bewegen. HINWEIS: wir nehmen hier einen 90°-Winkel an
# HINWEIS: D2 ist die Tiefe der Rastplatte unterhalb der Rastfläche
.segment((xstart + D2, h1MinusChamfer - Hx1))
# Von der Rastfläche innen nach unten
.segment((xstart + D2, 0))
.close()
.assemble(tag="face")
.finalize()
.extrude(1.0)
)
latchPlateIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow