Compare commits

...

2 Commits

8 changed files with 183460 additions and 154540 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -55,6 +55,7 @@ kbd_lower_pillars = (
# Measured from top-left corner OUTSIDE
mounting_pillar_positions = [
(6, -6),
(6, -40),
(120, -6),
(170, -6),
(width - 6, -6),

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -42,15 +42,10 @@ board_cutout = cq.Sketch().trapezoid(
kbd_cable_hole = cq.Sketch().trapezoid(20, 9, 90, mode="a").vertices().fillet(1)
# The last mounting pillar is handled specially
x, y = mounting_pillar_positions[-1]
mounting_pillars = (
cq.Sketch()
.polygon([(0, 0), (width, 0), (width, -12), (0, -12), (0, 0)], mode="a")
.polygon(
[(x - 6, y - 6), (x - 6, y + 6), (x + 6, y + 6), (x + 6, y - 6), (x - 6, y - 6)]
)
.push(mounting_pillar_positions)
.trapezoid(-12, 12, 90, mode="a")
.circle(ti_radius, mode="s")
)
@ -72,25 +67,11 @@ def model():
# of the inclined screen
.placeSketch(cq.Sketch().trapezoid(1000, 1000, 90, mode="a"))
.cutBlind(1000)
# Cut off viewport hole so we can see the screen
.workplaneFromTagged("slanted")
.placeSketch(viewport_cutout)
.cutBlind(-shell_t)
# Make hole for screen assembly so the whole screen fits
.workplaneFromTagged("slanted")
.workplane(offset=-shell_t, centerOption="CenterOfBoundBox")
# Left bezel is wider than right one, so this hole is displaced to the left
.center(-3, 0)
.placeSketch(screen_cutout)
.cutBlind(-scr_thickness)
# Trim the top
.workplaneFromTagged("mid_height")
.workplane(offset=21)
.placeSketch(cq.Sketch().trapezoid(1000, 1000, 90, mode="a"))
.cutBlind(100)
# Fillet top of the object
.edges(">Z and |X")
.fillet(2.5)
# Make bottom smaller to fit with base
.faces(">X")
.workplane(centerOption="CenterOfBoundBox")
@ -112,6 +93,20 @@ def model():
.fillet(3)
)
.cutBlind(-1000)
# Fillet top of the object
.edges("|X and >Z")
.fillet(3)
# Cut off viewport hole so we can see the screen
.workplaneFromTagged("slanted")
.placeSketch(viewport_cutout)
.cutBlind(-shell_t)
# Make hole for screen assembly so the whole screen fits
.workplaneFromTagged("slanted")
.workplane(offset=-shell_t, centerOption="CenterOfBoundBox")
# Left bezel is wider than right one, so this hole is displaced to the left
.center(-3, 0)
.placeSketch(screen_cutout)
.cutBlind(-scr_thickness)
# Make it hollow
.faces("<Z")
# Can't be exactly shell_t because cq fails
@ -122,11 +117,11 @@ def model():
.placeSketch(board_cutout)
.cutBlind(-6)
# Make small hole for the keyboard cable
.faces(">Y")
.workplane(offset=-5, centerOption="CenterOfBoundBox")
.center(-width / 2 + 134, -44)
.faces("<Y")
.workplane(centerOption="CenterOfBoundBox")
.center(width / 2 - 175, -4)
.placeSketch(kbd_cable_hole)
.cutBlind(-1000)
.cutBlind(-height / 2)
# Pillars to join with bottom half
.workplaneFromTagged("mid_height")
.workplane(offset=-thickness / 2, centerOption="CenterOfBoundBox")

File diff suppressed because it is too large Load Diff