You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
3.2 KiB

from cadquery import exporters
from cq_warehouse.extensions import Workplane
from cq_warehouse.fastener import *
from cq_warehouse.thread import *
from svg_path import addSvgPath
from svgpathtools import svg2paths
from cqmore.polygon import regularPolygon
import cadquery as cq
import cqmore
Workplane = cqmore.extend(Workplane)
Workplane.addSvgPath = addSvgPath
probe_diameter = 22.15 # OD of the main probe housing
probe_radius = probe_diameter / 2.0
probe_length = 100.0 # length of the probe housing
coax_diameter = 7.5 # OD diameter of the coax with insulation
coax_radius = coax_diameter / 2.0
ground_cable_diameter = 3.0
ground_cable_radius = ground_cable_diameter / 2.0
wall_width = 2.0
gland_od = 22.0
gland_or = gland_od / 2.0
gland_id = 16
gland_ir = gland_id / 2.0
probe_tip_cover = (
Workplane()
.cylinder(15, coax_radius + 0.1)
.workplane(offset=1)
.cylinder(15, coax_radius - 0.6, combine="cut")
)
full_probe = Workplane()
full_probe = full_probe.cylinder(
probe_length + wall_width * 2, probe_radius + wall_width
)
# probe end cap must be 8.8mm longer for the switch
probe_end_cap = full_probe.workplane(offset=-4).split(keepTop=True)
probe_end_cap = probe_end_cap.workplane(offset=2).cylinder(
(probe_length / 2.0) + 6, probe_radius, combine="cut"
)
probe_end_cap = probe_end_cap.workplane(offset=-(probe_length / 4.0)).cylinder(
4, coax_radius, combine="cut"
)
probe_end_cap = (
probe_end_cap.workplane(offset=-(probe_length / 4.0))
.move(3, 8)
.cylinder(4, ground_cable_radius, combine="cut")
)
probe_end_cap = (
probe_end_cap.workplane(offset=(probe_length / 2.0) - 24.53)
.move(probe_radius, 0)
.box(5.6, 5, 9.0, combine="cut")
) # 8.85 and 5.6 are the switch dimensions
# Need to add 4.9 mm to this to account for the cable gland, it's 4.9 / 2.0 though
cable_end_cap = full_probe.workplane(offset=-4 + 7.4).split(keepBottom=True)
cable_end_cap = cable_end_cap.workplane(offset=2 + (2.9 / 2.0)).cylinder(
(probe_length / 2.0) - 2.0 + 4.68, probe_radius, combine="cut"
)
cable_end_cap = cable_end_cap.workplane(offset=-(probe_length / 5.0)).cylinder(
11, gland_ir, combine="cut"
)
# led hole should be 11.0 mm from end + width of the end ring
cable_end_cap = (
cable_end_cap.workplane(offset=-(probe_length / 6.0) + 12.74)
.move(12, 0)
.sphere(2.5, combine="cut")
)
probe_end_cap_inner_cut = (
Workplane()
.workplane(offset=-3)
.cylinder(3, probe_radius + wall_width)
.cylinder(3, probe_radius - 1.0, combine="cut")
)
probe_end_cap_inner_fitting = (
probe_end_cap.workplane(offset=-25)
.split(keepBottom=True)
.cut(probe_end_cap_inner_cut)
)
cq.exporters.export(
cable_end_cap, "/home/deck/model_files/carlson_probe_cable_end_cap.stl"
)
cq.exporters.export(
probe_end_cap, "/home/deck/model_files/carlson_probe_probe_end_cap.stl"
)
cq.exporters.export(
probe_tip_cover, "/home/deck/model_files/carlson_probe_probe_tip_cover.stl"
)
cq.exporters.export(
probe_end_cap_inner_fitting,
"/home/deck/model_files/carlons_probe_end_cap_inner_fitting.stl",
)
try:
# show_object(probe_end_cap)
# show_object(cable_end_cap)
# show_object(probe_tip_cover)
show_object(probe_end_cap_inner_fitting)
except NameError:
pass