Compare commits
1 Commits
e70d2abed2
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e29f86fa70 |
6
arm.py
6
arm.py
@@ -147,7 +147,5 @@ if "show_object" not in globals(): # running outside CQ-editor
|
||||
show_object(result)
|
||||
|
||||
if __name__ == "__main__":
|
||||
vol = result.val().Volume()
|
||||
m = vol * CF_DENSITY
|
||||
print(f"arm mass {m:.2f} g each, {4*m:.2f} g for four")
|
||||
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("arm", v * CF_DENSITY))
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
import cadquery as cq
|
||||
from math import sqrt
|
||||
from frame_params import TPU_DENSITY
|
||||
|
||||
def camera_mount():
|
||||
|
||||
@@ -130,9 +131,5 @@ if "show_object" not in globals(): # running outside CQ-editor
|
||||
show_object(result)
|
||||
|
||||
if __name__ == "__main__":
|
||||
TPU_DENSITY = 1.21e-3 # g/mm3
|
||||
|
||||
solid = result.val()
|
||||
|
||||
print("camera_mount %.2f g in TPU"
|
||||
% (solid.Volume() * TPU_DENSITY))
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("camera mount", v * TPU_DENSITY))
|
||||
|
||||
14
fc.py
14
fc.py
@@ -3,13 +3,7 @@
|
||||
#
|
||||
|
||||
import cadquery as cq
|
||||
|
||||
# A flight controller is not a material, it is a stack: two boards, their
|
||||
# spacers, and everything soldered to them. This models only the envelope, as
|
||||
# one solid, so the density is FR4's -- bare PCB -- and the dense parts (FETs,
|
||||
# inductors, connectors) stand in for the air between the boards. It lands the
|
||||
# block at about 12 g, which is what a real 25.5 mm FC plus 4-in-1 ESC weighs.
|
||||
PCB_DENSITY = 1.85e-3 # g/mm3, FR4
|
||||
from frame_params import PCB_DENSITY
|
||||
|
||||
|
||||
def fc():
|
||||
@@ -76,8 +70,6 @@ if "show_object" not in globals(): # running outside CQ-editor
|
||||
|
||||
show_object(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
print("fc %.2f g" % (result.val().Volume() * PCB_DENSITY))
|
||||
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("fc", v * PCB_DENSITY))
|
||||
|
||||
@@ -7,7 +7,10 @@ from math import cos, radians, sin, sqrt
|
||||
# --- material ---------------------------------------------------------------
|
||||
|
||||
THICKNESS = 2.0
|
||||
CF_DENSITY = 1.55e-3 # g/mm3, for mass reporting
|
||||
CF_DENSITY = 1.55e-3 # g/mm3
|
||||
TPU_DENSITY = 1.21e-3 # g/mm3
|
||||
PCB_DENSITY = 1.85e-3 # g/mm3
|
||||
ALU_DENSITY = 2.70e-3 # g/mm3, for mass reporting
|
||||
|
||||
# --- joint fit --------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#
|
||||
|
||||
import cadquery as cq
|
||||
from frame_params import TPU_DENSITY
|
||||
|
||||
|
||||
def lollipop():
|
||||
@@ -126,6 +127,5 @@ show_object(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
TPU_DENSITY = 1.21e-3 # g/mm3
|
||||
|
||||
print("lollipop %.2f g in TPU" % (result.val().Volume() * TPU_DENSITY))
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("lollipop", v * TPU_DENSITY))
|
||||
|
||||
@@ -114,11 +114,6 @@ if "show_object" not in globals(): # running outside CQ-editor
|
||||
|
||||
show_object(result)
|
||||
|
||||
# Mass report
|
||||
def report():
|
||||
vol = result.val().Volume()
|
||||
print(f" Mass = {vol * CF_DENSITY:5.2f} g")
|
||||
print(f" Mass x4 = {4 * vol * CF_DENSITY:5.2f} g")
|
||||
|
||||
if __name__ == "__main__":
|
||||
report()
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("motor base", v * CF_DENSITY))
|
||||
|
||||
25
plate.py
25
plate.py
@@ -106,33 +106,37 @@ def plate():
|
||||
p = p.cut(bones.rotate((0, 0, 0), (0, 0, 1), a).translate((x, y, 0)))
|
||||
|
||||
# Triangle cuts to reduce weight
|
||||
# the small one near center
|
||||
cut1 = (
|
||||
cq.Workplane("XY")
|
||||
.polyline([
|
||||
(6.5, -9),
|
||||
(6.5, 9),
|
||||
(1, 0),
|
||||
(7, -7),
|
||||
(7, 7),
|
||||
(1.5, 0),
|
||||
]).close()
|
||||
.extrude(THICKNESS)
|
||||
.edges("|Z")
|
||||
.fillet(1.0)
|
||||
)
|
||||
# strap holes
|
||||
cut2 = (
|
||||
cq.Workplane("XY")
|
||||
.polyline([
|
||||
(9.5, -9),
|
||||
(9.5, 9),
|
||||
(15, 0),
|
||||
(11, -8),
|
||||
(11, 8),
|
||||
(13, 8),
|
||||
(13, -8),
|
||||
]).close()
|
||||
.extrude(THICKNESS)
|
||||
.edges("|Z")
|
||||
.fillet(1.0)
|
||||
.fillet(0.99)
|
||||
)
|
||||
# the big one
|
||||
cut3 = (
|
||||
cq.Workplane("XY")
|
||||
.polyline([
|
||||
(11, 15),
|
||||
(-11, 15),
|
||||
(10, 15),
|
||||
(-10, 15),
|
||||
(0, 4),
|
||||
]).close()
|
||||
.extrude(THICKNESS)
|
||||
@@ -168,6 +172,5 @@ show_object(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
v = result.val().Volume()
|
||||
print("plate mass %.2f g each, %.2f g for two" % (v * CF_DENSITY, 2 * v * CF_DENSITY))
|
||||
print("%-12s %.2f g" % ("plate", v * CF_DENSITY))
|
||||
|
||||
9
spar.py
9
spar.py
@@ -111,12 +111,6 @@ result = spar()
|
||||
|
||||
assert result.solids().size() == 1, "spar is not one solid"
|
||||
|
||||
# Mass report
|
||||
def report():
|
||||
vol = result.val().Volume()
|
||||
print(f" Mass = {vol * CF_DENSITY:5.2f} g")
|
||||
print(f" Mass x4 = {4 * vol * CF_DENSITY:5.2f} g")
|
||||
|
||||
# Running outside CQ-editor
|
||||
if "show_object" not in globals():
|
||||
def show_object(*args, **kwargs):
|
||||
@@ -125,4 +119,5 @@ if "show_object" not in globals():
|
||||
show_object(result)
|
||||
|
||||
if __name__ == "__main__":
|
||||
report()
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("spar", v * CF_DENSITY))
|
||||
|
||||
12
standoff.py
12
standoff.py
@@ -4,12 +4,9 @@
|
||||
|
||||
import cadquery as cq
|
||||
|
||||
from frame_params import PLATE_GAP
|
||||
from frame_params import (ALU_DENSITY, PLATE_GAP)
|
||||
|
||||
OD = 3.5 # round M2 standoff
|
||||
ALU_DENSITY = 2.70e-3 # g/mm3, for mass reporting
|
||||
PLATE_GAP=16
|
||||
|
||||
|
||||
def standoff():
|
||||
p = (cq.Workplane("XY")
|
||||
@@ -39,8 +36,5 @@ show_object(result)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
solid = result.val()
|
||||
|
||||
print("standoff %.3f g each, %.3f g for four"
|
||||
% (solid.Volume() * ALU_DENSITY,
|
||||
4 * solid.Volume() * ALU_DENSITY))
|
||||
v = result.val().Volume()
|
||||
print("%-12s %.2f g" % ("standoff", v * ALU_DENSITY))
|
||||
|
||||
Reference in New Issue
Block a user