Bowtie quads within official parts


Bowtie quads within official parts
#1
Hi everyone,

I'm currently developing a software that renders official parts. I recently figured out that some of them contain bowtie quads. So I implemented an algorithm to detect and correct them.

Is it interesting to post here an exhausted list of faulty part files?
FYI, that concerns at least 70 files over 7000. So that's not much, but I reckon official parts have to respect that rule.
I can also code something to fix bowtie quads within .dat files - and not only within the rendering process - and submit corrected files on this forum for new validation.

Let me know what I should do.

V.
Reply
Re: Bowtie quads within official parts
#2
It would be certainly interesting to have the list... and it's even better if you can provide a fix to the files themselves. But be aware that files that have bowtie quads generally have other flaws, as they are early parts issued before "modern" rules:
- they are not BFCed
- they may contain non-planar quads
- they may contain primitives with degenerated transformation matrix.
Reply
Re: Bowtie quads within official parts
#3
Ok, so here is the list:

2342.dat 2466p07.dat 2573.dat 2599.dat 2599c01.dat 2609.dat 2621.dat 2627.dat 2638.dat 2641.dat 2680.dat 2681.dat 2907.dat 2982.dat 30037.dat 30082.dat 30140.dat 30151.dat 30152.dat 30159.dat 30195.dat 30231.dat 30235.dat 30376.dat 30378.dat 30378ps1.dat 30378ps2.dat 30382.dat 3186.dat 3297ps1.dat 3298p19.dat 3298p21.dat 3358.dat 3491.dat 3705c01.dat 3737c01.dat 3846p4e.dat 4498.dat 4698.dat 4714.dat 4856.dat 577.dat 6035.dat 6039.dat 6042.dat 6117.dat 6159.dat 6222.dat 654.dat 713.dat 828.dat 880.dat 973p02.dat 973p16.dat 973p17.dat 973p24.dat 973p42.dat 973p47.dat 973p4r.dat 973p4t.dat 973p4u.dat 973p52.dat 973p60.dat 973p61.dat 973p74.dat 973pa3.dat 973pa4.dat 973pn6.dat 973ps2.dat 975.dat 976.dat s/2573-12.dat s/25931-12.dat s/25931-8h.dat s/2903s01.dat s/30375s01.dat s/30375s03.dat s/30378s01.dat s/30378s02.dat s/30378s03.dat s/3039s101.dat s/3740a.dat s/3960p2a.dat s/3960p2b.dat s/4186p01e.dat s/4288-15.dat s/6579a.dat s/6580a.dat s/6580b.dat s/6581a.dat s/6582a.dat s/6582b.dat s/6594a.dat s/6594b.dat s/6594c.dat s/6595a.dat s/6595b.dat s/6595c.dat s/6595d.dat s/73839a.dat s/973p42a.dat s/973p71b.dat s/numb5a.dat s/numb5b.dat s/swh1.dat s/swh4.dat

As you can notice, there are parts under s/ directory too, and 106 files are concerning. I opened some of them with and without correction, corrected files are always well rendered. I can post some screenshots if you want to see the difference.

I will look closely whether files are BFCed or not, but I don't know how to check for non planar quads... And what do you exactly mean by degenerated matrix ? because I also can detect them easily if it's only a matter of math formula.

Anyway, I will implement a tool to correct faulty .dat files, but then where do I submit them for validation?

V.
Reply
Re: Bowtie quads within official parts
#4
All updates to the official library go through the parts tracker, however, updates to existing parts need to go through the library admin first.
Reply
Re: Bowtie quads within official parts
#5
Thanks for the tip, I will submit there asa I fix them.

V.
Reply
Re: Bowtie quads within official parts
#6
Specifications for coplanarity are here: http://www.ldraw.org/article/512.html#coplanar
Datheader tool detects and fix this (by splitting into triangles). BTW, it also find and correct bowties, but this may result in wrong winding.

By degenerated matrix I meant non-singular (determinant != 0). Also detected by Datheader.

Note also that some files may have been updated but are still on parts tracker, such as 2573 or 6035

Looks like some files appear twice in your list?
Reply
Re: Bowtie quads within official parts
#7
Oh, that Datheader tool seems great. I should definitely try to implement that kind of correcting features within mine.

Thanks for the links, it really helps. I just discovered LDraw library, and I still don't have a global view of every tool available.

Bowtie quad fix can reverse the binding, so if I develop a software to correct that, I will let the user change the winding afterward.
By the way, I detected even more winding issues than bowtie, but visually, not automatically, of course.

Ok, that what I expected for determinant. My software detects matrix whose determinant is lower than 0, but not equal to 0. It's easy to adapt it though.

Ok, maybe these two pieces will be corrected then.

Thanks for pointing out doubloons, I removed 7 parts from the list and edited my post consequently.

Last question: I assumed official parts were almost perfect. But obviously some still need some work. So what's the difference between unofficial parts and official parts that still need to be fixed?
Reply
Re: Bowtie quads within official parts
#8
The official parts that need fixing are old ones. Some of the parts you listed date back to the 90s and the standards have become stricter since then.

The unofficial parts are parts that are sitting in the parts tracker for the certification process. They're submissions of new parts and fixes to official parts that aren't yet approved.
Reply
Re: Bowtie quads within official parts
#9
Quote:Thanks for the links, it really helps. I just discovered LDraw library, and I still don't have a global view of every tool available.
Do you happen to be French speaking? (your name/surname makes me think maybe...) Then there is a very detailed panorama of available tools here: http://jc-tchang.philohome.com/
Even if you are not... Google translate is your friend Wink
Reply
Re: Bowtie quads within official parts
#10
Ahah, I hoped you would not notice that. Fortunately, my grammar is not responsible!
Yeah, I'm French, and I know that website, but haven't read every article yet. This is quite huge. I found a lot of interesting stuff, some translated from LDraw website itself, other from his own experience. The author seems to be a great LEGO fan, and his work is really useful.

I've never found that Datheader software on his website though.

Thanks for everything, I'm going to develop a Datheader-like software, to correct errors within .dat files, but that renders parts too in order to make corrections easier, and cross platform (GNULinux/Mac/Windows), and of course open source.

V.

Edit: ok, I found it, http://jc-tchang.philohome.com/manuel/DATHeader.htm
Reply
Re: Bowtie quads within official parts
#11
Ok, I got it, it's a matter of new stricter rules. Thanks for the precision.

V.
Reply
Re: Bowtie quads within official parts
#12
Quote:Fortunately, my grammar is not responsible!
My own shortcomings prevent me from noticing Wink
Quote:Thanks for everything, I'm going to develop a Datheader-like software, to correct errors within .dat files, but that renders parts too in order to make corrections easier, and cross platform (GNULinux/Mac/Windows), and of course open source.
Datheader does have a built in viewer (based on LDView library). There used to be a Linux version using Mono, but nothing for Mac. You should probably contact Mikeheide to coordinate your efforts... I guess he will chime in here a bit later!
Reply
Re: Bowtie quads within official parts
#13
Philippe Hurbain Wrote:It would be certainly interesting to have the list... and it's even better if you can provide a fix to the files themselves. But be aware that files that have bowtie quads generally have other flaws, as they are early parts issued before "modern" rules:
- they are not BFCed
- they may contain non-planar quads
- they may contain primitives with degenerated transformation matrix.

Given people seem interested in the corrected data, I just wanted to say:

my LDCad detects, corrects and reports in it's log all these flaws. It also detects/fix/rep ref case mismatches and duplicate points in type 2, 3, 4 and 5 lines. Shouldn't be to difficult to use those outputs to patch things.

Also LDView does pretty much the same thing but using a gui log.
Reply
Re: Bowtie quads within official parts
#14
Hi - Thanks Philo for pointing me to this thread Smile

Currently the actual DATHeader version only works under Windows, as the MONO-Framework has some features missing and I am tired to work around those features. Sorry guys.

So it would be great to have a tool that does the same as DATHeader but is usable also on Linux and Mac.

DATHeader is coded in Visual Basic Net and if you need some answers, just ask Smile
Reply
Re: Bowtie quads within official parts
#15
Hi Michael,

I'm currently developing a software to highlight flaws and correct them. I'm using Qt Framework to manage window application and OSG to render parts. So my work can easily be cross platform, even though I've only tested it on Linux for the moment.

But I'll create a new topic to discuss about it and get your opinion on features that LDraw contributors might need.

V.

Edit: Thanks Michael, be sure I will harass you with tons of questions =)
Reply
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 5 Guest(s)