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

All NURBS and mesh bugs and their test models in one place #738

Open
ruevs opened this issue Oct 15, 2020 · 20 comments
Open

All NURBS and mesh bugs and their test models in one place #738

ruevs opened this issue Oct 15, 2020 · 20 comments

Comments

@ruevs
Copy link
Member

ruevs commented Oct 15, 2020

This is a list of all SolveSpace issues related to NURBS or mesh bugs.
Links to the .slvs models reproducing the problems and the fixes may be useful for regression testing.
If the "Fixed on" column is empty the issue is probably still open (or I did not update this list :-)

Source Model Author Fixed on Fixed in
#32
#540
#683
#683 (comment)
#683 (comment)
#732
failed.lathe.slvs.zip
adapter-plate.tar.gz
wrong.zip
wrong2.zip
wrong3.zip
coincident4.zip
@jockbert
@baryluk
@starsolaris
@starsolaris
@starsolaris
@phkahler
Not really 2020-10-09 #737 194945f ab10e38 #786 8a3e5b4
#35 (comment)
#35 (comment)
#1410 (comment)
#1452
NURBS_issues.zip
NURBSTests.zip
IntersectionReallyReallyReally...Should.zip
bug-report-naked-edges-with-only-cuboids-extrude-and-unions.zip
@phkahler
@ruevs
@ruevs
@kristianlm
Improved 2023-09-22 #1410 https://github.com/solvespace/solvespace/commit,/1963a836ef8e3c1f5411d2b301c86259cbdf6fa8
#171
#1124
#1268
bug.zip
tube-turns.zip
Geometry Error 1.zip
@whitequark
@Symbian9
@blinkenlight
#652 (comment)
m #175 aaa-minus-weirdly-broken.slvs @wpwrak
m #177 an-top.slvs @wpwrak
m #259 case.zip @jonas-schievink 2017-05-22
m #295 16 sided small circles #626
#296
#693
table.zip
polygon_failures.zip
@tgirod
@phkahler
2020-09-08 #694 0413c1b d8f5a8d
#297 (comment) bug-repro.zip @rpavlik Improved 2023-09-22 #1410 https://github.com/solvespace/solvespace/commit,/1963a836ef8e3c1f5411d2b301c86259cbdf6fa8
#303
#303 (comment)
tangent-circles-break-contour-fill.zip
Tangent_Circle_Test.zip
@natronium
@phkahler
2020-09-13 #697 e74185b
#315 clip.zip @wavexx 2020-08-13 #673 04b332d
#317 Archive.zip @AndyPhil ca. 2020-08-20?
m #320 (comment) 320_death_star.zip @phkahler
#408 screwdriver-sheath-with-taper.zip @rpavlik 2020-06-12 #626 e83e483
#470 revolve-extrude-union-error.slvs @Symbian9
#471
#472
no model
no model
@phkahler
@phkahler
2020-03-27 #473 f7b6f69
#473 (comment) fillet.zip @maz3max Try?
#489 (comment)
#550
model.zip
helix.zip gear90.zip
@kalle
@andres-erbsen
2020-07-01 #643 9802b5d
#497 (comment) issue_497.zip @phkahler
#537
#537 (comment)
#537 (comment)
#594 (comment)
jaw-.zip example2.zip
Prisms_EarFail.zip
537_2D.zip
CouldntFindAnEar_NURBSTests.zip
@rpavlik
@ruevs
@phkahler
@ruevs
Relevant code
#577 wishes
m #632 texttest.zip @ tjader0 mesh
m #647 no model @phkahler 2020-07-12 #648 c75b2e4
#652
#652 (comment)
#652 (comment)
spherecut.zip
triangle.slvs.zip
PrismConeNURBSNormalsTangents.zip
@xzcvczx
@Christoph-D
@ruevs
2020-10-12
2020-10-13
2020-10-16
2020-10-18
#734 5d29f65
#736 ruevs@d900578
ruevs@13c4563
#746 408128a
#652 (comment) lathe-intersection.slvs.zip @Christoph-D
#666 (comment) A_wheel.zip @phkahler 2020-08-03 #667 3c2f82b
#680
#439 (comment) #680 (comment)
second_revolve_test.slvs.zip
path.zip
@zzj1213
@zzj1213
2020-10-15 #737 phkahler@194945f #786 8a3e5b4
#696 no model @phkahler 2020-09-13 e74185b
#728 gusseted-truss.zip @vcaputo
#486 A math improvement @phkahler 2019-09-20 162897e
#623 A math improvement @phkahler 2020-06-02 94a3cfd
#759 perf_test.zip
Performance degradation
@phkahler 2020-10-23 caused by #737 ab10e38
fixed in #765 0f1ece2
m #1091
m #1091 (comment)
turc-nurbs-1.slvs.zip
turc-nurbs-3.slvs.zip
@tomsci
@tomsci
#1091 (comment)
#1091 (comment)
#1091 (comment)
#1091 (comment)
#1291
#1291 (comment)
#1298 (comment)
#1305 (comment)
#1108
turc-nurbs-2.slvs.zip
turc-nurbs-2_simplified.zip
NURBS_ThreePrisms.zip
corner-nurbs_slvs3x.zip
cube_cut.zip
CylinderTangentFromTheInside_AKA_Fillet_NURBSTests.zip
FilletTests.zip
Cluster_set.zip
FT232BL_Case.zip
@tomsci
@ruevs
@ruevs
@Symbian9
@phkahler
@ruevs
@ruevs
@BKLronin
@nanoant
#1058
#1058 (comment)
#1059
#1279
model_and_stderr_output.zip
DoubleWalledSphereZeroLengthEdgeInstersectionCrash.zip
crash.zip
keycap.slvs.zip
@kekscode
@ruevs
@nowakf
@suhr
"Unexpected zero-length edge." crash
#1281
#1281
#1281
Archiv.zip
ShovelStiel_Ultralighr.slvs.zip
Archiv_morecutouts.zip
@BKLronin
@BKLronin
@BKLronin
#1208 slvs3x-cone_fillet.zip @Symbian9
#1204
#1205
slvs3x-nurbs_cut.zip
slvs3x-hex-hole_asm.zip
@Symbian9
@Symbian9
#1281 Many interesting models
Archiv.zip
ShovelStiel_Ultralighr.slvs.zip
Archiv_morecutouts.zip
@BKLronin
#1390 wedge-diff-nurbs.slvs.gz @vthriller
@maz3max
Copy link

maz3max commented Oct 20, 2020

image
My error persists :/ (Just tried the most recent master)

@ruevs
Copy link
Member Author

ruevs commented Oct 20, 2020

It does :-)

@phkahler
Copy link
Member

My error persists :/ (Just tried the most recent master)

@maz3max It looks like my old comment was wrong - that was not the same issue as 315. One thing I noticed just now is that your final Lathe operation creates a cylinder coincident with the existing hole. That will cause problems. I tried changing the sketch so it was just the 2 arcs and the short segements needed to cut the fillets but that didn't work either. Also tried making the segments so they are not coincident with the hole and plane and that didn't work either. After those changes I'm not sure why it still fails. That is a difficult problem. As a work around I tried leaving out the hole extrusion and making a similar cross-section to cut the entire hole at once. I will probably open a new issue including that and another sketch I have - both work for intersection but not difference.

I really hate to pollute this long-term tracking issue with this, but here's a super cool pro-tip on sketching inside another object:
CrossSection1
After the original extrusion I dropped a datum point on the line highlighted in yellow. Then selected a pair of lines on the end of the extrusion and that point to create a new workplane. You can slide the point off the end of the line - it is the one at the bottom of the picture - and the workplane will follow. You can constrain against the entities from the other groups even though they are behind the workplane- it will constrain projected to workplane. You can even create the lathe group out there in space and then move that original datum point back to somewhere along the edge to move the hole into position. Go back to a previous group to constrain the position of the point along that edge and you're done. Like I said earlier, in this case it does not work - the hole works as intersection but not difference. Just wanted to point out the construction method.

Also, lastly. I had one more idea. Use that technique but don't create a cutting surface coincident with the top or bottom. This is how to work around the issue without going to triangle mesh:
437_work_around.zip
The hole can still need to be constrained in the first extrusion group.

@maz3max
Copy link

maz3max commented Oct 30, 2020

Thanks for looking into that! :)

@ghost
Copy link

ghost commented Jan 20, 2021

Another case, inspired by "nucleus" OpenClipArt

NURBS operation says that all is ok, but real mesh is failed:

mesh

@giannissc
Copy link

Another one causing issues
dove-table.zip

@JiangXL
Copy link

JiangXL commented Jul 7, 2021

Another NURBS Fail case: NURBS_Fail.zip. When two holes with same diameter, NURBS surface will fail.
Screenshot_20210707_151759

@phkahler
Copy link
Member

phkahler commented Jul 7, 2021

@JiangXL That is a common failure. There are some known work-arounds. Try creating the sketch plane for the second hole by using lines that are not orthogonal to the original box - make them at some arbitrary angle. Another option that may not be OK (depends on your design requirements) is to make one hole 0.001 larger or smaller than the other.

@JiangXL
Copy link

JiangXL commented Jul 8, 2021

Thank for your kind reply! I decide to make one hole larger than other. I'm curious whether it is a NURBS limitation. If not, it will be so great that solvespace can solve it in the future.

@phkahler
Copy link
Member

phkahler commented Jul 8, 2021

I'm curious whether it is a NURBS limitation. If not, it will be so great that solvespace can solve it in the future.

It is a problem in the NURBS code. A cylinder is composed of 4 surfaces of 90 degrees each. The problem seems to be failure to find the intersection of trim curves with the edge of those surfaces. I'd like to add code to split trim curves against trim curves which I suspect will fix this issue. Either that or figure out why the curve-surface intersection is failing on those edges and find a fix for that.

@ghost
Copy link

ghost commented Jul 11, 2021

It is a problem in the NURBS code. A cylinder is composed of 4 surfaces of 90 degrees each.

Could be this value increased to 8 (45° stepping) for "Lathe" operations?

@phkahler
Copy link
Member

@Symbian9 this issue is not meant to be a dumping ground for NURBS issues. @ruevs created an index to other issues.

@phkahler phkahler reopened this Sep 27, 2021
@ghost
Copy link

ghost commented Sep 27, 2021

For #738 (comment)

That is a common failure. There are some known work-arounds. Try creating the sketch plane for the second hole by using lines that are not orthogonal to the original box - make them at some arbitrary angle.

Here is a sample of such solution (not a bug case).

@ruevs ruevs mentioned this issue Jan 9, 2022
@ConductiveInsulation
Copy link

I was told here to post and upload it here too. The "red hole" moved by a bit when i saved the file at another angle but its still there. Dont fully understand why it's there and how to remove it

hook.slvs.tar.gz
solsphook

@phkahler
Copy link
Member

@ConductiveInsulation Did you add the threads as a helix around an existing cylinder? If so, try having some (more) overlap so the threads cut into the cylinder an let the boolean union clean it up. That's just a suggestion to try, not a sure thing. I have a bolt model that does not use a boolean and has some red in the threads - that one is a a real mystery to me.

@ghost
Copy link

ghost commented Jan 18, 2022

I have a bolt model that does not use a boolean and has some red in the threads

@phkahler, May I take a look on this SLVS?

@ghost
Copy link

ghost commented Jan 31, 2022

Another one NURBS fail on intersection (not sure which issue is related here)

@phkahler
Copy link
Member

@Symbian9 Please open new issues for new NURBS problems so they get unique issue numbers. We can add them to the table at the top of this tracker.

Also, the second version seems to work fine for me (on Windows: Version 3.x commit 5cb299b)

@ghost
Copy link

ghost commented Jan 31, 2022

Please open new issues for new NURBS problems so they get unique issue numbers. We can add them to the table at the top of this tracker.

OK.

@MayeulC
Copy link

MayeulC commented Aug 2, 2023

Here is my humble contribution to this list:

Screenshots and file

partial_2023-08-02-171503_grim
partial_2023-08-02-171438_grim

nurbs-fail.slvs.tar.gz

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

7 participants