LDCad 1.5 (win+linux)


LDCad 1.5 (win+linux)
#1
Hello All,

I think the last beta was stable enough to allow a definitive 1.5 version.

Therefore this version only includes some minor bug fixes / tweaks.

I did manage to add MSAA anti-alias support though by merging it in from the 1.6 alpha version.

MSAA will only be applied on the LDraw renderings not the gui overlay. I've found out myself this can cause problems on some VGA drivers so make sure you have the latest ones installed. the old edge only aa is also still available but aa will default back to none when upgrading to this version.

I've also managed to add part snapping info for the new 2015-02 library, the car and support category bin groups parts.

The latest LDCad version (like always) can be downloaded from

http://www.melkert.net/LDCad/download

With this release done I'm going to concentrate on 1.6 which will include the following:
  • Region selection.
  • Macro scripting.
  • More animation scripting.
  • ROTSTEP support.
  • Hotkey management / reassignment.
  • Multi layer groups.

And might include
  • Buffer exchange support
  • Povray animation export
  • Blender animation export
  • Additional things suggested in the 1.6 suggestions thread.

But as always non is set in stone Smile
Reply
Re: LDCad 1.5 (win+linux)
#2
Hi Roland,

Will it be possible to save a template derived model as a part with the .dat extension - including its sub file content ?

For example, if I create part 8879 (PF Light) from a template, I'd like to save it as a part and have the file names be consistent with it's LDRAW_ORG attribute - i.e. Unofficial_Part, Unofficial_Subpart, etc...


.jpg   Light.jpg (Size: 41.36 KB / Downloads: 0)

Cheers,
Reply
Re: LDCad 1.5 (win+linux)
#3
I'd love to see more templates like that contributed to LDcad for general use!

I haven't seen a "check for update" function in the program - would be a nice extra.
Reply
Re: LDCad 1.5 (win+linux)
#4
Maybe this means that we should add BOM shortcuts to the library?
Reply
Re: LDCad 1.5 (win+linux)
#5
Trevor Sandy Wrote:Hi Roland,

Will it be possible to save a template derived model as a part with the .dat extension - including its sub file content ?

For example, if I create part 8879 (PF Light) from a template, I'd like to save it as a part and have the file names be consistent with it's LDRAW_ORG attribute - i.e. Unofficial_Part, Unofficial_Subpart, etc...

[attachment=1988]

Cheers,
I'm not sure I completly understand your question, but...

LDCad doesn't really care about extensions but if the generated part has sub parts they will be mpd's (even when renamed to .dat). Those you can still use as standalone parts/files but not all LDraw software supports / like referencing mpd's.

ps: The split in the light cables would currently needs three generated parts.
Reply
Re: LDCad 1.5 (win+linux)
#6
Hi Roland,

Indeed, how the represent the parts needed to construct a 'composite part' is the subject of my question.

- Some part assemblies have dynamic content when modeled, like a complete PF motor with it's cable and electric connector. Nevertheless, for at least rendering instructions, a complete PF motor should be treated as a single part assembly - much like most static content parts in the library.

- LDCad's template framework allows static (motor body, electrical connector) and dynamic (electrical cable) components of a part (PF motor) to be defined as a single part assembly which is powerful for instruction generation, as processing functionality like part count and generating BOMs can be much more efficient and accurate.

- What I am asking is for the ability to 'create' composite part assemblies using a the template framework and have the content be generated with the same attributes and naming convention as a conventional [unofficial] part.

- The file extension being of no consequence to LDCad is a plus to enable this capability because, I imagine, one would simply present the user option of deciding if s/he wanted to save their template composite part as a model (ldr) or a part (dat).

- Of course, it is clear that the best indicator of a component's type is it's LDRAW_ORG attribute which is key to processing these items but as LDraw.org places a priority (and implemented standards) on maintaining a human-readable file format, I believe remaining consistent between .dat, .ldr, .mpd content is also worthwhile.
For me, a complete PF motor is a part that should be defined as all other parts in the library which is to say with the .dat extension. I don't speak about the shortcut representation which is useless in any real modeling exercise other than representing the part in the BOM/PLI.

Hopefully, this detailed expression helps to make a bit more clear the purpose and application of my question. But in fact, the point of my question is about enhancing interoperability and standardization between applications that respect the LDraw format.

Cheers,
Reply
Re: LDCad 1.5 (win+linux)
#8
Trevor Sandy Wrote:What I am asking is for the ability to 'create' composite part assemblies using a the template framework and have the content be generated with the same attributes and naming convention as a conventional [unofficial] part.
I think I understand what you mean. You want the templates to add 'normal' part files to the mpd instead of the ldr's it does now.

Technically they already are 'parts' as the generated LDraw code contains a "0 UNOFFICIAL PART" line. And if you want a assembly of generated parts to be a standalone part you can always add e.g. the LDRAW_ORG meta to the top level file.

The reason I use the "0 UNOFFICIAL PART" line instead of the LDRAW_ORG line is because imho the LDRAW_ORG indicates the part will become official at some point in the future. The comment line variant is more generic and also supported by LDView etc as a valid document type identifier.

As for LPub3D you could also detect generated parts by looking for the !LDCAD CONTENT meta line as it will always be present in generated files but setting up the part determining code to include the "0 UNOFFICIAL PART" meta is IMHO more generic / precise .
Reply
Re: LDCad 1.5 (win+linux)
#9
Hi Roland,

Very well. In fact, I already do in LPub3D what you are suggesting. The LDCad unofficial meta is the fist entry in the list of unofficial types I check - see below.

As you said, generated content are 'technically' parts so my thinking was why not offer the ability to persist this content as such - respecting conventional LDraw part extension naming.

However from what I understand in your response, using .dat extension and incorporating the LDRAW_ORG Unofficial_Part meta are more-or-less reserved for parts that will eventually become official LDraw parts - is this correct ?

Code:
LDrawUnofficialFileTypeRegExp
<< QRegExp("^\\s*0\\s+[b]UNOFFICIAL PART[/b][^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Part)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Subpart)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Shortcut)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Primitive)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_8_Primitive)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_48_Primitive)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Part Alias)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Shortcut Alias)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Part Physical_Colour)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial_Shortcut Physical_Colour)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Part)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Subpart)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Shortcut)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Primitive)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial 8_Primitive)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial 48_Primitive)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Part Alias)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Shortcut Alias)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Part Physical_Colour)[^\n]*")
<< QRegExp("^\\s*0\\s+!*(?:LDRAW_ORG)* (Unofficial Shortcut Physical_Colour)[^\n]*")

Cheers,
Reply
Re: LDCad 1.5 (win+linux)
#7
Nice! Great work Roland! Just missed this post the other day. Looking forward to 1.6 as well. Thanks for all that you do for those that love LEGO!
Reply
Re: LDCad 1.5 (win+linux)
#10
Just some questions:

* How do I export a .ldr from a .mpd?
* Looks like there is no checker/updater for MOVETOs?
* I know that the file extension doesn't matter but is there a setting which proposes to save as .mpd once I have added a submodel?
* So I might keep open several models at the time and they show all up in my All Models pin but how do I copy a submodel from one .mpd to the other?
* While the Current model box says perfectly 6769_Süd.ldr\main.ldr the "0 Name:" tag in the source window just says: 6769_S?

w.
LEGO ergo sum
Reply
Re: LDCad 1.5 (win+linux)
#11
Willy Tschager Wrote:How do I export a .ldr from a .mpd?
This is not yet available, maybe in one of the upcoming 1.6 alpha's as I have some mpd tools planned.

Willy Tschager Wrote:Looks like there is no checker/updater for MOVETOs?
Again not yet, but I do have some cleanup tools planned not sure when though.

Willy Tschager Wrote:I know that the file extension doesn't matter but is there a setting which proposes to save as .mpd once I have added a submodel?
It will save as mpd if the new file has more then one model. If you saved before adding the second model it will not change the extension, but you could do a saveas manually.

Willy Tschager Wrote:So I might keep open several models at the time and they show all up in my All Models pin but how do I copy a submodel from one .mpd to the other?
This will also become available with the above named mpd tools.

Willy Tschager Wrote:While the Current model box says perfectly 6769_Süd.ldr\main.ldr the "0 Name:" tag in the source window just says: 6769_S?
This might be a bug I have to look into that, can you send me the model used?
Reply
Re: LDCad 1.5 (win+linux)
#12
Willy Tschager Wrote:While the Current model box says perfectly 6769_Süd.ldr\main.ldr the "0 Name:" tag in the source window just says: 6769_S?
Did you save the file using e.g. notepad? LDCad assumes all files to be UTF-8, but notepad might have saved it in ANSI. Don't know what e.g. mlcad does in such cases.
Reply
Re: LDCad 1.5 (win+linux)
#13
Attached. The file was created almost ten years ago in MLCad.

w.


Attached Files
.ldr   6769_Süd.ldr (Size: 9 KB / Downloads: 0)
LEGO ergo sum
Reply
Re: LDCad 1.5 (win+linux)
#14
The file is missing the special characters, it probably lost those when it was read as if it was UTF8 and then saved again.

File encodings are a real pain, luckily today's os's are more and more uniformly UTF8 orientated. So to prevent these kinds of problems you must make sure all your ldr/mpd files using special characters are stored as UTF8.

There are simple mass check/conversion tools online for this.

As for LDCad I'll try to add support for non UTF8 files (reading only, save will always be utf8 as is the LDraw standard) in 1.6.
Reply
Re: LDCad 1.5 (win+linux)
#17
Roland Melkert Wrote:
Willy Tschager Wrote:I know that the file extension doesn't matter but is there a setting which proposes to save as .mpd once I have added a submodel?
It will save as mpd if the new file has more then one model. If you saved before adding the second model it will not change the extension, but you could do a saveas manually.

OhhhKhhh ... but where are my files gone? Looks like I do not properly understand your MPD concept. Obviously I have not read your manual - I simple do things the way I think they should work:

* I have created my subfiles:
* I create a container file "Main Model" and open the .ldr subfiles I'd like to add.
* They all pile up fine in my model pin.
* I drag them to the "Main Model" add a few parts to complete my scene
* Save and name it .mpd

This was the result - no subfiles attached:

6716 - Covered Wagon.mpd

0 FILE main.ldr
0 Main model
0 Name: 6716 - Main model
0 Author: Willy Tschager [Holly-Wood]
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
1 6 0 0 0 1 0 0 0 1 0 0 0 1 6716 - Wagon.ldr
1 6 0 0 0 1 0 0 0 1 0 0 0 1 6716 - Drawbar.ldr
1 6 0 0 0 1 0 0 0 1 0 0 0 1 6716 - Horse.ldr
1 0 0 10 279 1 0 0 0 0.966 0.259 0 -0.259 0.966 6716 - Cannon.ldr
1 0 0 -109 8 1 0 0 0 1 0 0 0 1 6716 - Cavalry Soldier.ldr
1 6 159 9 131 1 0 0 0 1 0 0 0 1 2489.dat
1 6 126 9 59 1 0 0 0 1 0 0 0 1 2489.dat
1 7 126 2 57 0.616 0.765 0.191 0 -0.242 0.97 0.788 -0.597 -0.149 30141.dat
1 47 158 40 -13 -0.276 0 -0.961 0 1 0 0.961 0 -0.276 3069bp03.dat

Loading the 6716 - Covered Wagon.mpd the silly thing is that they get loaded from the disk and show up in the "Change current model" but are not added to the file. This behaviour is misleading!!!

w.
LEGO ergo sum
Reply
Re: LDCad 1.5 (win+linux)
#20
Willy Tschager Wrote:but where are my files gone? Looks like I do not properly understand your MPD concept.
If you drop loose ldr files into another model from the bin (or file drag/drop) it will create references just like with normal parts. The only exception on this are templates.

If you want to create a mpd file you must use the 'add new submodel' item from the model menu (or the house with a + icon on the toolbar) instead of new file. This will add a new ldr section to the current model's (mpd) file which you can use to draw your submodel.

So in short LDCad assumes you build an MPD from the start, but as mentioned 1.6 will offer tools to combine/split things later on.
Reply
Re: LDCad 1.5 (win+linux)
#15
Willy Tschager Wrote:* So I might keep open several models at the time and they show all up in my All Models pin but how do I copy a submodel from one .mpd to the other?
Drag&drop. Make the destination model current, open "All models" section in the Part bin and drag&drop the desired submodel to the main edit window aka destination model. This works for sure.

Similar trick may be used for export of one ldr from mpd: create new model and move the desired submodel there (press "C" to move it to 0,0,0). Then you have a model with exactly one submodel containing all parts. Then, select it and choose "move to the current level" and save. Unless there are any missing pieces like the information about steps and other invisible source lines, it should work.
Reply
Re: LDCad 1.5 (win+linux)
#16
This indeed could be a workaround, but be aware the parts are removed from the source mpd so be sure to close that one without saving afterwards.

Also it will only inline supported/selected parts.

1.6 will have a native submodel level copy/paste/move tool.
Reply
Re: LDCad 1.5 (win+linux)
#18
Ah, yes. So the first idea is safe (just another copy of the submodel) but the second one not. I'm always forgetting the fact that, in such cases, all instances of that submodel are affected. I'm really looking forward to the real mpd tools in LDCad. Thanks for promising them, Roland Wink
Reply
Re: LDCad 1.5 (win+linux)
#19
Milan Vančura Wrote:I'm really looking forward to the real mpd tools in LDCad.
Yes it seems a popular feature request all of a sudden, so I might delay the region select feature in order to get it in the first 1.6 Alpha. It won't be a single dialog or something though it will be a collection of smaller (menu) items like e.g. an 'Localize into MPD' item alongside the selection inline option etc. And a 'duplicate current model' in the model menu etc.
Reply
Re: LDCad 1.5 (win+linux)
#21
...and something like "unlink clone" for submodel instances, please. With both options: 1. move parts of this instance to the current model - or 2. create a copy of the original submodel (ask for a new name).

This is a feature I'd like a lot. Many times, I start with rough prototyping of the model made of submodels for basic pattern and then, later, I need to "precise" some parts of it - in another words, to modify some copies/instances of submodels.
Reply
Re: LDCad 1.5 (win+linux)
#22
Milan Vančura Wrote:...and something like "unlink clone" for submodel instances, please. With both options: 1. move parts of this instance to the current model - or 2. create a copy of the original submodel (ask for a new name).
Nice idea I'll add it to the reorganize menu.

This can also partially be done by using the 1.5 'duplicate this subfile' option (while the intended submodel is active) from the model menu. You just have to reassign the reference manually afterwards.
Reply
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 1 Guest(s)