Find out what parts in LDD convert tot LDraw


Find out what parts in LDD convert tot LDraw
#1
Hi all,

I have this model in LDD that has 3549 parts.
When I export to LDraw the model has 3475 parts.
So, I am missing 74 parts.

I am using the latest ldraw.xml file.

Some of the missing parts I can identify visually because I know they are supposed to be in the model looking at it in LDD and MLCad. Like part 15068 (Slope Brick Curved 2 x 2 x 0.667) which is in the LDraw libray and has the same partnumber in LDD. But it is not in the ldraw.xml file, so it does not export.

I found out that part 15254 (Arch 1 x 6 x 2) was missing and needed to be converted to 3307 which I did adjusting the ldraw.xml file, because it was already in there but needed the LDraw partnumber. This needly exported.

Still there are pieces missing that probably have different numbers etc. but are "hidden" inside the model so I cannot identify them visually.

My questions are:
1. How do I know or find out what parts do not convert to LDraw?
2. How to add them to ldraw.xml or adjust it so LDD exports the part to LDraw

I see there is lots of work to be done on ldraw.xml, so perhaps I can help a bit there.

Thanks!

Jaco
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#2
Hey Jaco,

quiet some time ago, I wrote a converter, that could convert LDD files (lxfml or lxf) to LDraw compatible files. It also uses the ldraw.xml file. The converter generates a detailed log file (e.g. which file is missing).

Unfortunately, it can only handle LDD files of a previous version (file format version 4). I did not found the time to implement the current LDD file format (5), yet.

But: You can export your model with the LDD into the older file format and send that export through the converter. You can find more detailed information on this website: http://digital-bricks.de/en/index.php?si...v-uersicht

Rolf
Reply
Re: Find out what parts in LDD convert tot LDraw
#3
Hi Rolf,

This looks very good.
Only the latest ldraw.xml file does not seem to work, nor does the one that comes with the latest version of LDD.

Open C:\Program Files (x86)\LEGO Company\LEGO Digital Designer\ldraw - kopie.xml.
Read mappings...
Multible definitions for the Material 143. The first [41] will be used!
Multible definitions for the Transformation 30237.dat. The first will be used!
Multible definitions for the Brick 61252. The first [6019.dat] will be used!
Multible definitions for the Transformation 6019.dat. The first will be used!
Multible definitions for the Transformation 41855.dat. The first will be used!
An FATAL Error occured: De gegeven sleutel is niet aanwezig in het woordenboek.
bij System.ThrowHelper.ThrowKeyNotFoundException()
bij System.Collections.Generic.Dictionary`2.get_Item(TKey key)
bij ldd2ldraw.Ldd2Ldraw.ReadMappings(String file)
bij ldd2ldraw.Ldd2Ldraw.DoConvert()
bij LDD2LDrawAddOn.LDD2LDrawAddOn.buttonConvert_Click(Object sender, EventArgs e)

The one you provide with you program does not convert alle parts either, but it does what I'd like.
Is there a way to find out what's wrong with ldraw.xml?
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#4
Hi Jaco.

You can use BrickUtils, that imports both LDraw and LDD projects and can do some work with lists:
- import your LDraw project and save as a "generic lot" in "My sets"
- import your LDD project and do a "Can build" check against LDraw project lot of bricks
- BrickUtils will show you a list of "missing parts" that you can export in many flavors: HTML, Bricklink Wanted list (and with internal template engine you can define any format you want).

Mario
Reply
Re: Find out what parts in LDD convert tot LDraw
#5
The latest version of ldraw.xml is allways kept at Gallaghersart.com, but it's been a while since the last update.
Current version is 4.40, based on LDD 4.3.8 brick version 1265
Which one are you using?

Some weeks ago I made a translation for the 15068

my self Wrote:add these lines somewere in your copy of ldraw.xml

<!-- Slope, Curved 2 x 2 No Studs 15068, translation created by MagFors -->
<Transformation ldraw="15068.dat" tx="-.4" ty=".32" tz="-.4" ax="0" ay="1" az="0" angle="4.712389"/>

I haven't seen any update of ldraw.xml following the latest update of LDD into 4.3.8 brick version 1564.2

Personally I don't know of any other method than "Trial and error" for finding out the correct translation code for a missing brick.
I don't know if Mike is still working on improving the current ldraw.xml, but I would love to see a continued development of the file.
Reply
Re: Find out what parts in LDD convert tot LDraw
#6
Hey Jaco,

as far as I remember, there were two issues with the ldraw.xml files:
The
Code:
<Brick ldraw="XXXXX.dat" lego="XXXXX" />
tags and the
Code:
<Assembly>[...]</Assembly>
tags with content. If you delete them the ldraw.xml should work.

Rolf
Reply
Re: Find out what parts in LDD convert tot LDraw
#7
Rolf Osterthun Wrote:as far as I remember, there were two issues with the ldraw.xml files:
The
Code:
<Brick ldraw="XXXXX.dat" lego="XXXXX" />
tags and the
Code:
<Assembly>[...]</Assembly>
tags with content. If you delete them the ldraw.xml should work.
And by that you mean only the <Brick ldraw="XXXXX.dat" lego="XXXXX" /> entries? The ones with XXXX.
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#8
OK, thanks all. I'm taking a look at Brickutils.
Importing the LDraw file It gives me an error.

Reason: java.sql.SQLException: Internal error: duplicated part mapping in database
3069||3069bp0c.dat - Tile 1 x 2 with Letter and Seal Pattern.
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#9
Magnus Forsberg Wrote:I haven't seen any update of ldraw.xml following the latest update of LDD into 4.3.8 brick version 1564.2

Personally I don't know of any other method than "Trial and error" for finding out the correct translation code for a missing brick.
I don't know if Mike is still working on improving the current ldraw.xml, but I would love to see a continued development of the file.

Nothing hinders you uploading the content of the ldraw.xml file to the wiki and maintain it there.

There is also Mike Heidemann's LDDMaker he has written for us some years ago, when we were adding translations for LU. Since the download is no longer available on Mike's site I uploaded my copy to my webspace:

http://www.holly-wood.it/tmp/LDDMaker.zip

It eases the process a lot.

w.
LEGO ergo sum
Reply
Re: Find out what parts in LDD convert tot LDraw
#10
Hey Jaco,

Jaco van der Molen Wrote:And by that you mean only the <Brick ldraw="XXXXX.dat" lego="XXXXX" /> entries? The ones with XXXX.

Yes. In the 'working only' version of the last ldraw.xml file from Gallaghersart there are 5 lines that look exactly like this one:
Code:
<Brick ldraw="XXXXX.dat" lego="XXXXX" />
If you remove them, the file is working. I attached the file witout these lines (remove the .txt).

Rolf


Attached Files
.txt   ldraw.xml.txt (Size: 294.47 KB / Downloads: 0)
Reply
Re: Find out what parts in LDD convert tot LDraw
#11
Jaco van der Molen Wrote:OK, thanks all. I'm taking a look at Brickutils.
Importing the LDraw file It gives me an error.

Reason: java.sql.SQLException: Internal error: duplicated part mapping in database
3069||3069bp0c.dat - Tile 1 x 2 with Letter and Seal Pattern.

Corrected and released a new database update.

Thanks for reporting!

Mario
Reply
Re: Find out what parts in LDD convert tot LDraw
#12
Great! Working out some things now.
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#13
Hi Jaco,

very nice to see I'm not the only one struggling with Ldraw.xml ;-)
I am currently working on converting several scenes of 10K+ parts LDD to Ldraw and considering the huge amount of parts it does pretty well, but of course eventually even 1 missing can be a problem.
I recently fixed around 20 parts or so and then decided to create a tutorial for fixing the Ldraw.xml file to put on my website and concurrently allow people to submit fixed parts so that I could -after checking them- update the xml file and allow everyone to always get a daily fresh Ldraw file.
Unfortunately I stumbled into a few problems that I couldn't solve, so my tutorial got stucked since I don't feel like teaching something if I am not mastering at 100%.

Here are my issues:
1) When it comes to fixing x,y,z positions that's a piece of cake. When it comes to fixing single axis rotations that's also not difficult. But I currently haven't figured out a way to fix parts that needs to be rotated around more than 1 axis. Can you or someone else explain me how this can be done? By looking some of the parts in the current xml file which have very toxic angle corrections it sounds to me like there must be a more scientific way to compute them rather than just trial and error...

2) For some reason I can simply not get some parts to convert. This is really weird because for example among the Technic Flex-System hoses I was able to successfully add quite some parts of specific lengths, but some other lengths simply don't get converted. Have you already run into this issue? Somebody has any clue how to fix it?

3) I saw this LDDMaker popping up in this thread which I understood could somehow help but couldn't get it to work because as soon as I load a .dat file I start getting error messages. I am also not 100% clear whether and how this software could help to speed up the parts location problem.

Well, since we are not many working on this, let's join our forces ;-)

Thanks,

- Mattia
Brickpassion.com
Reply
Re: Find out what parts in LDD convert tot LDraw
#14
Hi Mattia,

Don't know if this will help in any way, but I have put together a short text of my findings on rotations in LDD.
It is attached to this previous message here.
Reply
Re: Find out what parts in LDD convert tot LDraw
#15
Thank Magnus,

your tips helped me to decript the conversion algorithm within LDD.
The key is that within LDD each part has its own pivot (different orientation from the world x,y,z), and therefore a move e.g. on the x axis might result in a combination of axis moves in Ldraw. Of course this cannot be easily noticed on basic bricks since in this case the pivot can be the same as the world x,y,z axis.
But once you get this it should be virtually possible to adjust any part.

Very useful was also to find out that MLCAD 3.3 (but not 3.4!) can show the translation vector as needed for the Ldraw.xml file.

My only problem left are parts that for some reason do not appear after conversion, despite they are available in ldraw and set correctly in ldraw.xml

Any input on this would help to convert even more parts ;-)

Thanks!

- Mattia
Reply
Re: Find out what parts in LDD convert tot LDraw
#16
Hey Mattia,

Mattia Zamboni Wrote:My only problem left are parts that for some reason do not appear after conversion, despite they are available in ldraw and set correctly in ldraw.xml

do you have a simple example for this?

Rolf
Reply
Re: Find out what parts in LDD convert tot LDraw
#17
I'm kind of curious too...
Reply
Re: Find out what parts in LDD convert tot LDraw
#18
Here I am.

Please consider the attached LDD file: in it there are 5x straight rigid hoses of 5 different lengths.
I'm using the latest available Ldraw.xml file (4.40 Beta) and I included/modified the entries related to all of those 5 parts as follows:

<!-- Technic Flex-System Hose 3L (60LDU) 58856 -->
<Brick ldraw="76263.dat" lego="58856" />
<Transformation ldraw="76263.dat" tx="0" ty="0" tz="0" ax="1" ay="0" az="0" angle="4.712389"/>

<!-- Technic Flex-System Hose 8L (160LDU) 55668 -->
<Brick ldraw="76260.dat" lego="55668" />
<Transformation ldraw="76260.dat" tx="0" ty="0" tz="0" ax="1" ay="0" az="0" angle="4.712389"/>

<!-- Technic Flex-System Hose 16L (320LDU) 76255 -->
<Brick ldraw="71192.dat" lego="76255" />
<Transformation ldraw="71192.dat" tx="0" ty="0" tz="0" ax="1" ay="0" az="0" angle="4.712389"/>

<!-- Technic Flex-System Hose 18L (360LDU) 61356 -->
<Brick ldraw="71582.dat" lego="61356" />
<Transformation ldraw="71582.dat" tx="0" ty="0" tz="0" ax="1" ay="0" az="0" angle="4.712389"/>

<!-- Technic Flex-System Hose 17L (340LDU) 76270 -->
<Brick ldraw="76270.dat" lego="76270" />
<Transformation ldraw="76270.dat" tx="0" ty="0" tz="0" ax="1" ay="0" az="0" angle="4.712389"/>


By exporting to .ldr using LDD only 2 out of 5 parts gets converted (see attached .ldr), although all the parts exists in Ldraw and the entries in Ldraw.xml are all present and based on the exact same scheme. I also made sure that there are no double entries about the same part in the xml file.
I'm using LDD 4.3.8 with bricks version 1564.2

Really strange... anyone any clues?

Thanks!

- Mattia


Attached Files
.zip   5x hoses test.zip (Size: 7.28 KB / Downloads: 1)
Reply
Re: Find out what parts in LDD convert tot LDraw
#19
Hey Mattia,

in the LDD files the parts have bones. It looks like the LDD can only export parts that have only one bone. The two parts that got exported have only one; the others have 7, 17 and even more. I think this is because they are bendable.

Rolf
Reply
Re: Find out what parts in LDD convert tot LDraw
#20
Hi Rolf,

I kind of suspected what you told me, so you confirmed my fear :-(
Even though I can understand that converting a bent hose might not necessarily be the most trivial thing, what I don't like is inconsistency: why do they allow some hoses to bend and some not in LDD? That's odd.

Well at least we can add this to the official "Known issues" list about converting from LDD to Ldraw.

Thanks a lot for your input!

- Mattia
Reply
Re: Find out what parts in LDD convert tot LDraw
#21
Hi all,

Can someone share a reasonable working ldraw.xml with me?
I am converting a few LDD files but many parts still do not convert. I have tried several versions of the xml file but I kind of lost it which is most recent.

I took a look at the xml file and studied on how to fix conversion of some parts, tried as I thought was supposed to work, but it didn't. It got worse and even converted less parts.

Now I seem to have lost a the original ldraw.xml file too.

It would still be very helpfull to get to convert as many parts as possible, but I don't have a clue on how to do that.
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#22
OK, so last night I couldn't figure things out (working too late).
Now a fresh start!
I downloaded the ldraw.xml file from GalleghersArt, version 4.40 1770+ parts working.
Then I started adding parts I missed a model when converted.
So far there where 2 I really needed and by adding these lines in the ldraw.xml file the parts converted just fine!

<!-- Tile 2 x 2 Corner 14719.dat -->
<Transformation ldraw="14719.dat" tx=".8" ty="-.32" tz="0" ax="0" ay="1" az="0" angle="3.141593" />

<!-- Brick 1 x 2 with Two Studs on One Side 11211.dat -->
<Transformation ldraw="11211.dat" tx="-.4" ty="-.96" tz="0" ax="1" ay="0" az="0" angle="0" />

Now, is there a way to stream all work that individuals are doing to one ldraw.xml file?
It would be dumb to do double work (maybe I have done so now too).
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#23
Magnus Forsberg Wrote:The latest version of ldraw.xml is allways kept at Gallaghersart.com, but it's been a while since the last update.
Current version is 4.40, based on LDD 4.3.8 brick version 1265

Is this still the most recent version. Could we work from there on?
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#24
Hi Jaco,

I started from the same file as you while ago and I fixed several parts, unfortunately I'm not sure how many exactly since after a while I forgot to keep track, but at least a dozen I would say.
You can find it in attach for your reference.

I totally agree we should join our force, since for some of the tricky parts it can take quite some time!

Very soon I will have to restart fixing parts again since I am still working on converting fairly big dioramas from LDD to Ldraw.

Any comments, just let me know.

Thanks :-)

- Mattia


Attached Files
.zip   ldraw.zip (Size: 68.73 KB / Downloads: 0)
Reply
Re: Find out what parts in LDD convert tot LDraw
#25
OK, Mattia.
I added a comment block at the very top of my file to be able to identify my work:

<!-- Start conversions by Jaco van der Molen -->
...conversions...
<!-- End conversions by Jaco van der Molen -->

We could do this also for everyone who works on the file, so everyone has his/her own block.

Next we need a place to store the file to be able to work on with more people.
Personally I like Google Drive. There is an add-on where you can directly work on xml files online that also color codes the markup.
One should have a Gmail adress for that.

Would this be an idea?
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#26
Hi Jaco,

first I do apologize for my belated reply.
The solution you are proposing is definitely an option, however I am personally thinking that in order to keep things clean it would be better if only one person is responsible of maintaining and updating the Ldraw.xml file. This allows him to review and approve every new part.
I proposed this solution on this thread a few months ago and I personally volunteered to maintain the file and I created a page on my website where everyone can download the most updated version and can submit new parts translations.

Here is the link:
http://www.brickpassion.com/#!ldraw/cgjo

What do you (and everybody else) think about this plan?
Nothing set in stone of course, but I would like to keep this open to everyone to contribute and the cloud filesharing I'm not sure it is the best way for multiple users, in addition not everyone is using Google drive, so it might discourage people from contributing.

I also started to write a tutorial about how to generate the translation data for a brick, but I am still not done yet.

Thanks,

- Mattia
Reply
Re: Find out what parts in LDD convert tot LDraw
#27
Looks great Mattia!
I agree with you that some review of submissions is required.
I could help with that.
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: Find out what parts in LDD convert tot LDraw
#28
Hi Jaco,

just to let you know that I successfully got your first part submission and I fixed it: thank you. I added a second one as well.
I decided to add a log on the download page to show the latest parts added/fixed.

Keep up the good work!

- Mattia
Reply
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 8 Guest(s)