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

incorrect rendering #3472

Closed
vuvova opened this issue Oct 31, 2020 · 4 comments
Closed

incorrect rendering #3472

vuvova opened this issue Oct 31, 2020 · 4 comments

Comments

@vuvova
Copy link

vuvova commented Oct 31, 2020

This works:

LL=100;
W=38;
module nut() {
  module twosides() { square([LL,W], center=true); }
  intersection() {
    twosides();
    rotate([0,0, 60]) twosides();
    rotate([0,0,120]) twosides();
  }
}
linear_extrude(4)
difference() {
  circle(d=60);
  nut();
  translate([0, LL/2+W/2-0.0001]) square([LL,LL], center=true);
}

but if you remove -0.0001 the object is rendered incorrectly, solid, without a hole


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@t-paul
Copy link
Member

t-paul commented Oct 31, 2020

This is a caching issue, I'm almost sure we have an issue for that somewhere. It works with just F6 (or Design->Flush Caches + F6).

@vuvova
Copy link
Author

vuvova commented Nov 1, 2020

It doesn't seem to work with just F6 (just = directly after opening the file) or with Design->Flush Caches. At least not with the version 2019.05.

@Scopeuk
Copy link
Contributor

Scopeuk commented Nov 14, 2020

This appears to come in during the 2d operation.
preview appears to show the shape is incorrectlt derived in two dimensions, possibly due to the 0 width edge closing the shape (someone with more knowledge of the pipeline may be able to help here).
substituting the -0.0001 for a +0.001 also produces a valid shape unfilled which then exports.
-0.0001 (2D)
image
0 (2D)
image
+0.001
image

additionally adding a union causes this to behave as expected

LL=100;
W=38;
module nut() {
  module twosides() { square([LL,W], center=true); }
  intersection() {
    twosides();
    rotate([0,0, 60]) twosides();
    rotate([0,0,120]) twosides();
  }
}
linear_extrude(4)
difference() {
  circle(d=60);
  union(){
    nut();
    translate([0, LL/2+W/2]) square([LL,LL], center=true);
  }
}

@kintel
Copy link
Member

kintel commented Mar 31, 2024

Status as of 2024-03-24: Works now!

@kintel kintel closed this as completed Mar 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants
@kintel @lf94 @t-paul @vuvova @Scopeuk and others