Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: Fillet fails after a shell is used #3257

Closed
r-barton opened this issue Aug 4, 2024 · 3 comments · Fixed by #3261
Closed

[BUG]: Fillet fails after a shell is used #3257

r-barton opened this issue Aug 4, 2024 · 3 comments · Fixed by #3261
Assignees
Labels
bug Something isn't working

Comments

@r-barton
Copy link
Contributor

r-barton commented Aug 4, 2024

Describe the bug

The shell command appears to be causing the upstream fillet command to fail

Steps to Reproduce

The below code causes the fillet to fail with "no such edge or face exists". Commenting out the shell command at the end, the fillets are correct

const rpizWidth = 30
const rpizLength = 65

const caseThickness = 1

const border = 4

const screwHeight = 4

const caseWidth = rpizWidth + border * 2
const caseLength = rpizLength + border * 2
const caseHeight = 8

const widthBetweenScrews = 23
const lengthBetweenScrews = 29 * 2

const miniHdmiDistance = 12.4
const microUsb1Distance = 41.4
const microUsb2Distance = 54

const miniHdmiWidth = 11.2
const microUsbWidth = 7.4
const connectorPadding = 4

const miniHdmiHole = startSketchAt([
       0,
       border + miniHdmiDistance - (miniHdmiWidth / 2)
     ])
  |> lineTo([
       0,
       border + miniHdmiDistance + miniHdmiWidth / 2
     ], %)
  |> lineTo([
       1,
       border + miniHdmiDistance + miniHdmiWidth / 2
     ], %)
  |> lineTo([
       1,
       border + miniHdmiDistance - (miniHdmiWidth / 2)
     ], %)
  |> close(%)

const case = startSketchOn('XY')
  |> startProfileAt([0, 0], %)
  |> lineTo([caseWidth, 0], %, $edge1)
  |> lineTo([caseWidth, caseLength], %, $edge2)
  |> lineTo([0, caseLength], %, $edge3)
  |> close(%, $edge4)
  |> extrude(caseHeight, %)
  |> fillet({
    radius: 1,
    tags: [
    getNextAdjacentEdge(edge1),
    getNextAdjacentEdge(edge2),
    getNextAdjacentEdge(edge3),
    getNextAdjacentEdge(edge4)
    ],
  }, %)
  

fn m25Screw = (x, y, height) => {
  const screw = startSketchOn("XY")
    |> startProfileAt([0, 0], %)
    |> circle([x, y], 2.5, %)
    |> hole(circle([x, y], 1.25, %), %)
    |> extrude(height, %)
  return screw
}

m25Screw(border + rpizWidth / 2 - (widthBetweenScrews / 2), 0 + border + rpizLength / 2 - (lengthBetweenScrews / 2), screwHeight)

m25Screw(border + rpizWidth / 2 - (widthBetweenScrews / 2), 0 + border + rpizLength / 2 + lengthBetweenScrews / 2, screwHeight)

m25Screw(border + rpizWidth / 2 + widthBetweenScrews / 2, 0 + border + rpizLength / 2 + lengthBetweenScrews / 2, screwHeight)

m25Screw(border + rpizWidth / 2 + widthBetweenScrews / 2, 0 + border + rpizLength / 2 - (lengthBetweenScrews / 2), screwHeight)

shell({
  faces: ['end'],
  thickness: caseThickness
}, case)

Expected Behavior

Fillets should work after the shell command has been applied

Screenshots and Recordings

No response

Desktop OS

Win10, MacOS

Browser

No response

Version

v0.24.7

Additional Context

No response

@r-barton r-barton added the bug Something isn't working label Aug 4, 2024
@jessfraz
Copy link
Contributor

jessfraz commented Aug 4, 2024 via email

@jessfraz
Copy link
Contributor

jessfraz commented Aug 4, 2024

I have the fillets executing before the shell operation now (#3261) but now it will fail with "Shell of non-planar solid3d not available yet" which we know @benjamaan476 is working on

@jessfraz
Copy link
Contributor

this is fixed now in engine!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants