LDCad 1.6 suggestions/plans


LDCad 1.6 suggestions/plans
#1
Hi all,

As the current 1.5 beta 2a version seems to be reasonably stable I decided to start work on the 1.6 version. I have a number of personal targets for this version, namely:

"must have's":
  • More scripting (macro's, model generation through script etc)
  • Allow hot key customization (this is also needed for my macro/script extension plans)
  • Region selection (2d/3d rectangle/circle)
  • Part bin group management / creation.
  • MSAA LDraw rendering (this actually already works, so I might include it in the definite 1.5 version too).

"nice to have":
  • POVRay animation export.
  • Blender animation export.

But I'm also open for any ideas / suggestions users might have so please don't hesitate to post some of yours in this thread.
Reply
Re: LDCad 1.6 suggestions/plans
#2
http://forums.ldraw.org/showthread.php?t...7#pid18307

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
#3
I'd like to see:
- An OSX version.
- A more OS native "look and feel"

P.S.
It's been a bit since I used the flexible part feature, are fixed length bendable parts possible?
Reply
Re: LDCad 1.6 suggestions/plans
#6
Orion Pobursky Wrote:It's been a bit since I used the flexible part feature, are fixed length bendable parts possible?
Yes but it is currently undocumented. It's done through the part's header dialog (press enter in its own editor while nothing is selected). There you'll find the 'length constrains' panel on the 'path' tabpage.

You can also limit the number of segments on the path skin it self to get the same effect. But the constrains method is meant to be used combined with BOM generation etc, although this isn't used at the moment.
Reply
Re: LDCad 1.6 suggestions/plans
#29
Quote:Yes but it is currently undocumented. It's done through the part's header dialog (press enter in its own editor while nothing is selected). There you'll find the 'length constrains' panel on the 'path' tabpage.
I played a bit with this, nice feature! Two questions nonetheless:
- we can visually see that maximum length is exceeded, but nothing tells clearly that the part is too short?
(edit): Actually there is some visual clue: one end of the part (cable) looks folded on itself if target length is not reached.
- do the fields "part name" and "part description" do something already, or is it something planned for future release?
Reply
Re: LDCad 1.6 suggestions/plans
#35
Philippe Hurbain Wrote:we can visually see that maximum length is exceeded, but nothing tells clearly that the part is too short?
(edit): Actually there is some visual clue: one end of the part (cable) looks folded on itself if target length is not reached.
This might be a bug, I'll have to check. It should show a thin white/blue line for the remaining unused space.

Philippe Hurbain Wrote:do the fields "part name" and "part description" do something already, or is it something planned for future release?
They are meant to be used to map the dynamic part to an official/virtual static LDraw part. This part will then be shown in the part lists instead of the shaped one. But this is not yet fully implemented as it kinda waits on the other part inventory features I initially planned for 1.4 or something, but delayed in favor of more 'interesting' features Smile
Reply
Re: LDCad 1.6 suggestions/plans
#41
Quote:This might be a bug, I'll have to check. It should show a thin white/blue line for the remaining unused space.
I do see a red/white line when I pull too far, but if the part is shorter that its defined length there is no "remaining unused space" - so I see no white/blue line.
I also tried with a closed rubber band, and if the length is shorter than defined there is also some folding on itself at band seam.

Speaking of rubber bands, maybe it should be interesting to make length tolerance assymetrical: a rubber band can't be shorter than its unextended length, but can be stretched up to say 100%.

(edit): Still about rubber bands, I find it a bit annoying that LDCad only shows theoretical length, not actual one.
A related question, is there an easy way to get the length of a flexible part while editing it in nested mode? Ideally in real time, but dhowing lengh when idle would be already nice, currently I found no other way than going back to normal editing mode.
Reply
Re: LDCad 1.6 suggestions/plans
#42
Philippe Hurbain Wrote:I see no white/blue line.
It could have sworn there was a white/blue line somewhere in there but I checked the source
Code:
path.generateFallBackLine(fallbackRD, path.getLenUsed(), path.getLenReal(), TLDColor(15), TLDColor(4));
And you are right it's a red/white one only, I've must have changed it a some point Smile


Philippe Hurbain Wrote:Speaking of rubber bands, maybe it should be interesting to make length tolerance assymetrical: a rubber band can't be shorter than its unextended length, but can be stretched up to say 100%.

(edit): Still about rubber bands, I find it a bit annoying that LDCad only shows theoretical length, not actual one.
A related question, is there an easy way to get the length of a flexible part while editing it in nested mode? Ideally in real time, but dhowing lengh when idle would be already nice, currently I found no other way than going back to normal editing mode.
The real-life part length is something the constraint description was intended for, I will polish that feature at some point. The current length of any generated part should also be given in the part bin cell hints, but I just discovered this only works for parts without a open editing session. I'll correct this in the definitive 1.5 version.
Reply
RE: LDCad 1.6 suggestions/plans
(2015-12-30, 1:42)Orion Pobursky Wrote: I'd like to see:
- An OSX version.
- A more OS native "look and feel"

P.S.
It's been a bit since I used the flexible part feature, are fixed length bendable parts possible?

Native OS "look and feel" is a big deal for me two. LDCad is like looking at a foreign language. I don't even know where to begin.
Reply
RE: LDCad 1.6 suggestions/plans
Exactly. I understand the desire to have the same look across platforms but different OSs have diferrent user paradigms and different user expectations. Going for sameness across platform just ends up confusing everybody.
Reply
RE: LDCad 1.6 suggestions/plans
Maybe in LDCad 2.0 I go the full wxWidgets route instead of the max OpenGL panel one.

But nothing is set in stone as I'm not even sure 2.0 will come to being let alone in which programming environment it will run Smile
Reply
RE: LDCad 1.6 suggestions/plans
I feel obligated to point out that I'm not writing LDCad off as a whole just lamenting this one aspect of it (and the fact that you have a Linux version but no OSX version)  It's still an amazing program.
Reply
Re: LDCad 1.6 suggestions/plans
#4
I personally would appreciate the following:

- In program GUI color editor.
- A simpler animation method.
- Instruction creation tool or wizard.
- Multi monitor support. (Editor screen on one screen, tools etc on another.)
______________________________________________
OS = Ubuntu 14.04 LTS (64bit)
Reply
Re: LDCad 1.6 suggestions/plans
#5
I'd like to see scriptless animation. Something like SR3D Builder had. I understand that that would be probably quite difficult, but it's something that would be very nice, especially in combination with your own suggested blender export I can see myself trying to animate some Technic models.

This is a whishlist right? Wink
Reply
Re: LDCad 1.6 suggestions/plans
#7
Merlijn Wissink Wrote:I'd like to see scriptless animation. Something like SR3D Builder had. I understand that that would be probably quite difficult, but it's something that would be very nice, especially in combination with your own suggested blender export I can see myself trying to animate some Technic models.
You mean automatic kinetics? This is something I would like to implement some day, but as I'm not sure on how to do that yet I'm concentrating on the scripting api hoping it will become possible to write a kinetics solver through (thirdparty) scripts. This way you will be able to animating anything and not be limited to how much the hard coded solver 'understands' of it.
Reply
Re: LDCad 1.6 suggestions/plans
#8
Maybe it has already been discussed. But what about Lsynth support for flexible parts.
What I don't like with current way of implementing flexible parts is that it generates the part using primitives, not using subparts as Lsynth do. Therefor I cannot make LGEO replacements for PovRay renders.
Reply
Re: LDCad 1.6 suggestions/plans
#9
You can mimic LSynth behavior by using the 'static' or 'dynamic' placement methods for path skin. Using this combined with (un)official (sub)parts should behave almost the same as LSynth placement wise.

See any of the 'LQ' templates for an example.
Reply
Re: LDCad 1.6 suggestions/plans
#10
I have another suggestion: being able to make a flexible net. I mean parts like these. I imagine something in the same way as current flexible parts, but with 4 end points (the 4 corners of the net) and points in the middle to make it a 'valley' shape or a 'hill' shape.

Ok, it might be quite difficult to make and it's probably a bit of a 'niche', but it would be nice to have nonetheless Wink
Reply
Re: LDCad 1.6 suggestions/plans
#18
Merlijn Wissink Wrote:I have another suggestion: being able to make a flexible net. I mean parts like these. I imagine something in the same way as current flexible parts, but with 4 end points (the 4 corners of the net) and points in the middle to make it a 'valley' shape or a 'hill' shape.

Ok, it might be quite difficult to make and it's probably a bit of a 'niche', but it would be nice to have nonetheless Wink
I did consider adding a cloth generator but it never came further then a bit of resource on how to dynamically define/generate such things. I might revisit it when all other major things are done (in version 1.7 or higher).
Reply
Re: LDCad 1.6 suggestions/plans
#11
Hello Roland.

I've summarized what we have already discussed in (several) different threads:

* to be able to select a snap point (of any brick in the model) as the origin of coordinates
* for each brick (or brick group or submodel): to be able to select one of its snap points as the brick center
NOTE: I know we define snap objects, not points. That's a question how to deal with this. The idea behind is: to be able to select one antistud in the model, one stud on the brick and then connect them with a 'C' key. Another usage: mark a hinge snap point as the coordinates origin to be able to rotate the brick (or brick group or submodel) around this point.

* snapping while rotation: while turning the brick, adjust the rotation angle to snap (do not move the brick, only rotate) - useful for triangles etc.

* snapping for templates - for example Hose Rigid 3mm snapping with Clips or Minifig Hands, regardless how it is bent

* to be able to activate and deactivate 'used' snap objects. The idea is to select only from free studs (etc.) when putting new brick to the model. However, some snap objects are bigger and more bricks may be snapped on it, for example Technic Axle. That's why user needs to be able to activate and deactivate this limitation.

* support of buffer exchange and arrows editing: to be able to add and edit arrows in 3D model space - in a way LPub understands them so we can create instructions like this. More comfortable GUI than it is in MLCAD would be highly appreciated Smile (Maybe agree with LPub3D maintainer on a new syntax, too?)

* grid step lesser than 1 - good for part (EDIT: snap data) editing
Reply
Re: LDCad 1.6 suggestions/plans
#12
Milan Vančura Wrote:[...]
* snapping for templates - for example Hose Rigid 3mm snapping with Clips or Minifig Hands, regardless how it is bent
[...]

+1 for this one Smile
Especially when the clips are rotated in a weird way, it's quite a lot of work to line up the rigid hose or flex-axles with the current version. Also because those flexible parts can move/transform a little when doing something somwhere else on the same part. If you'd implement such a snapping feature for flexible parts, you'd probably need to implement a way to 'lock the snap' (just like in real life), if you understand what I mean...
Reply
Re: LDCad 1.6 suggestions/plans
#15
Merlijn Wissink Wrote:
Milan Vančura Wrote:[...]
* snapping for templates - for example Hose Rigid 3mm snapping with Clips or Minifig Hands, regardless how it is bent
[...]

+1 for this one Smile
Especially when the clips are rotated in a weird way, it's quite a lot of work to line up the rigid hose or flex-axles with the current version. Also because those flexible parts can move/transform a little when doing something somwhere else on the same part. If you'd implement such a snapping feature for flexible parts, you'd probably need to implement a way to 'lock the snap' (just like in real life), if you understand what I mean...
Snap points inclusion on generated parts (inherited from the donorparts) is pending, I'll put it on the must have list.
Reply
Re: LDCad 1.6 suggestions/plans
#21
Hello Roland.

This is my suggestion how GUI may look:

[Image: 23886570890_1665736064_n.jpg]
LDCad features suggested - an example video by Milan Vančura, on Flickr
Reply
Re: LDCad 1.6 suggestions/plans
#23
You have a very efficient way of selling concepts! Agreed, these would be very useful.
Reply
Re: LDCad 1.6 suggestions/plans
#25
Milan Vančura Wrote:[Image: 23886570890_1665736064_n.jpg]
LDCad features suggested - an example video by Milan Vančura, on Flickr
Very nice video some very creative editing / magic right there Smile

I'll add 'using snap points as selection center' to my to do list. Rotation snapping is a whole lot more difficult though, I'm also not sure it can be done using the current snapping calculations. So I might delay that to the second generation snapping calculations I want to include in 1.7 or higher.

Thanks for your insight Milan.
Reply
Re: LDCad 1.6 suggestions/plans
#30
Roland Melkert Wrote:Very nice video some very creative editing / magic right there Smile

I'll add 'using snap points as selection center' to my to do list. Rotation snapping is a whole lot more difficult though, I'm also not sure it can be done using the current snapping calculations. So I might delay that to the second generation snapping calculations I want to include in 1.7 or higher.
I'm glad you enjoyed my video. It worked even better than I hoped - you understood the idea even I made a mistake in the video description - yes, the feature I wish to have is exactly how you described it: "using snap points as selection center". Thanks for correcting (or ignoring Wink ) my mistake.
Reply
Re: LDCad 1.6 suggestions/plans
#31
BTW Milan, what do you use to capture screen video, camstudio? something else?
Reply
Re: LDCad 1.6 suggestions/plans
#32
Maybe a bit unrelated to this topic, but the rare times I need to make a screen-capture, I use OBS.
Altough it's more targeted at (game) streaming, it works perfectly fine for just capturing the screen. It has loads of options and it is completely free. Smile
Reply
Re: LDCad 1.6 suggestions/plans
#38
Thanks, I'll give it a try!
Reply
Re: LDCad 1.6 suggestions/plans
#33
Thanks Merlijn for a tip, I try OBS.


Philippe, the fair answer would be "the first app my Linux distro found for me" Smile The name is "vokoscreen" and it's very basic but works well. Then, I made all video cuts and titles in openshot (version 1), using also Inkscape for nicer titles.
Reply
Re: LDCad 1.6 suggestions/plans
#27
Quote:* grid step lesser than 1
In the same spirit I'd like to have possibility to define angle grid with more precision. 22.5° grid is really missing.
Maybe some alignment tools? I often use the combo select target -> shift+o -> select part to align -> shift+c -> deselect -> shift+o to align chains path points on gears so some streamlining of this process could be useful but not mandatory...
Reply
Re: LDCad 1.6 suggestions/plans
#28
Philippe Hurbain Wrote:22.5° grid is really missing.

+1

/Max
Reply
Re: LDCad 1.6 suggestions/plans
#34
Milan Vančura Wrote:* support of buffer exchange and arrows editing: to be able to add and edit arrows in 3D model space - in a way LPub understands them so we can create instructions like this. More comfortable GUI than it is in MLCAD would be highly appreciated Smile (Maybe agree with LPub3D maintainer on a new syntax, too?)

Please, does anybody have an idea how GUI for this should look? Video not needed Smile but at least some ideas. I though about something like a feature of more parallel groups of hidden parts and a subwindow with a list of them and a chance to give them names (like "front wheels assembly" in the example above). But now, I feel this is not enough for all kinds of usage. Like, for example, modern Technic instructions putting some part to the temporary position in the model at first and move/rotate it to the final position several steps later.

What would be the best GUI to handle this in LDCad? (Second question is a cooperation with LPub but let's concentrate on the first one.)
Reply
Re: LDCad 1.6 suggestions/plans
#36
Milan Vančura Wrote:Please, does anybody have an idea how GUI for this should look? Video not needed Smile but at least some ideas. I though about something like a feature of more parallel groups of hidden parts and a subwindow with a list of them and a chance to give them names (like "front wheels assembly" in the example above). But now, I feel this is not enough for all kinds of usage. Like, for example, modern Technic instructions putting some part to the temporary position in the model at first and move/rotate it to the final position several steps later.

What would be the best GUI to handle this in LDCad? (Second question is a cooperation with LPub but let's concentrate on the first one.)
I never used buffer exchange myself but as it has also been asked by email I have been looking into it. Inititally I thought it allowed for sections of code to be push/popped but it seems it always act on the entire subfile. So I probably could work with a bitmask on the to be rendered lines (giving 32 or 64 buffers) or something. GUI wise it's would propably work best combined with the source window.
Reply
Re: LDCad 1.6 suggestions/plans
#39
Roland Melkert Wrote:I never used buffer exchange myself but as it has also been asked by email I have been looking into it. Inititally I thought it allowed for sections of code to be push/popped but it seems it always act on the entire subfile. So I probably could work with a bitmask on the to be rendered lines (giving 32 or 64 buffers) or something. GUI wise it's would propably work best combined with the source window.
I'm not 100% sure I understand you. A very good explanation is at LPub tutorial page. Simply said, the "store" and "retrieve" pair of commands is used to forget everything between them and continue after retrieve with the model as it was in time of "save" command. Another example is in the tutorial I linked above.

How to make this comfortable and easy to understand in LDCad?
I do not want to see both new and replaced parts at the same time, in following steps. Neither I want to hide them manually, one by one. How to deal with all this automatically?
About arrows: do you think, Roland, it is possible to prepare an arrow editor?

Another question is: Is this syntax enough? - more details are in my answer to Merlijn's comment lower
Reply
Re: LDCad 1.6 suggestions/plans
#44
Milan Vančura Wrote:I'm not 100% sure I understand you. A very good explanation is at LPub tutorial page. Simply said, the "store" and "retrieve" pair of commands is used to forget everything between them and continue after retrieve with the model as it was in time of "save" command. Another example is in the tutorial I linked above.
Thanks I'll take a look at those pages and see if I can think of something useful Smile[/quote]
Reply
Re: LDCad 1.6 suggestions/plans
#45
A basic tutorial for BufferExchange can be found on my site:

http://www.holly-wood.it/mlcad/advanced1...r_exchange

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
#68
I just finished my first model built entirely on LDCad (it was a great experience!)... with the single exception of adding a buffer exchange in MLCad.

Looking forward to your implementation of the technique.
Reply
Re: LDCad 1.6 suggestions/plans
#37
I don't think you need any special GUI for that. It's just more how the software handles it. In MLCad, all buffer exchanged parts are shown to the user in editor mode. When you use a lot of buffer exchange, the model becomes quite a mess with all kinds of random parts (and arrows) everywhere.

It would be much easier if the editor itself had support for buffer exchange. That it really only shows what you would see in the step you're working on. If you know what I mean, my explanation is maybe a bit vague...

Aside from that, the 'current' buffer exchange is somehwat limited. I've had some annoying experiences with it in the past because it works not very intuitive (although that might also have to do with MLCad, I can't work very well with MLCad) and it's missing some features I'd really like. But, I suppose this is not the place to develop a new syntax Wink
Reply
Re: LDCad 1.6 suggestions/plans
#40
Merlijn Wissink Wrote:Aside from that, the 'current' buffer exchange is somehwat limited. I've had some annoying experiences with it in the past because it works not very intuitive (although that might also have to do with MLCad, I can't work very well with MLCad) and it's missing some features I'd really like. But, I suppose this is not the place to develop a new syntax Wink
I hope it is Smile Or, better said, even this is too much for LDCad 1.6, we shall discuss this anyway, for future. It's the best time, I believe, because there is a maintainer of LPub again, after several years, so we have a partner for discussions.

Buffer exchange works for immediate replacements of everything from this step. But, sometimes, the situation is more complicated. Especially with Technic models instructions. Look at this example, steps 45-48. There is a submodel containing some (long) pins and a bendable front part, now straight. After this submodel is attached to the main model there is a step with arrows showing how to push those long pins, then another step showing pins in the new location and the front part of the (sub)model bent to the new angle and soft axles bent as well, connected with that front part.

This is near to impossible to create with bufferexchange commands because they are too "heavy" - they force you to replace everything or nothing, they can't work with parts of submodels in the main model etc. It's like an attempt to fix your watches with a jackhammer. I believe we need more subtle and precise commands.
Reply
Re: LDCad 1.6 suggestions/plans
#43
Milan Vančura Wrote:I hope it is Smile Or, better said, even this is too much for LDCad 1.6, we shall discuss this anyway, for future. It's the best time, I believe, because there is a maintainer of LPub again, after several years, so we have a partner for discussions.

Buffer exchange works for immediate replacements of everything from this step. But, sometimes, the situation is more complicated. Especially with Technic models instructions. Look at this example, steps 45-48. There is a submodel containing some (long) pins and a bendable front part, now straight. After this submodel is attached to the main model there is a step with arrows showing how to push those long pins, then another step showing pins in the new location and the front part of the (sub)model bent to the new angle and soft axles bent as well, connected with that front part.

This is near to impossible to create with bufferexchange commands because they are too "heavy" - they force you to replace everything or nothing, they can't work with parts of submodels in the main model etc. It's like an attempt to fix your watches with a jackhammer. I believe we need more subtle and precise commands.
Maybe I'm over simplyfinig it but the first thing that springs to me is adding an option to groups to control in which step(s) it should be shown. This combined with the nested use of groups (and the planned multi layered use of groups) should make it possible to hide/show anything when needed. But it would only be really useful if LPub would also be able to use it.
Reply
Re: LDCad 1.6 suggestions/plans
Roland Melkert Wrote:
Milan Vančura Wrote:Buffer exchange works for immediate replacements of everything from this step. But, sometimes, the situation is more complicated. Especially with Technic models instructions. Look at this example, steps 45-48. There is a submodel containing some (long) pins and a bendable front part, now straight. After this submodel is attached to the main model there is a step with arrows showing how to push those long pins, then another step showing pins in the new location and the front part of the (sub)model bent to the new angle and soft axles bent as well, connected with that front part.

This is near to impossible to create with bufferexchange commands because they are too "heavy" - they force you to replace everything or nothing, they can't work with parts of submodels in the main model etc. It's like an attempt to fix your watches with a jackhammer. I believe we need more subtle and precise commands.

Maybe I'm over simplyfinig it but the first thing that springs to me is adding an option to groups to control in which step(s) it should be shown. This combined with the nested use of groups (and the planned multi layered use of groups) should make it possible to hide/show anything when needed. But it would only be really useful if LPub would also be able to use it.

Sorry to pop in so late in this discussion and I don't know if it has been discussed (can't find it) but that is what the LPub meta command REMOVE GROUP is for. You group the pins in step 45 and name that group ie. "pins". Then getting to step 47 you use !LPUB REMOVE GROUP "pins" to kind of remove the pins from the LDraw structure and add the same pins in that step, put them in the right place and ignore (PLI IGN) the newly added pins (that are already added) so that the part count is correct in PLI and BOM.

Atleast, this can be done with the MLCAD version of Groups.
What I am wondering is if the LDCad group meta is supported in LPub(3D)?
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
Thank you for a good point, Jaco!

Roland, can you make LDCad know this syntax, please? I believe the GUI may be what you planned (groups visible for a range of steps), just use the syntax LPub knows.
Reply
Re: LDCad 1.6 suggestions/plans
What a brilliant tool. It's the opposite of Buffer Exchange. This will make things a lot easier for me when making subfiles that include a cable (PF Motor etc.) Up until now what I would do was insert a Buffer Exchange, add the motor with a short cable, add all the new parts, retrieve the buffer, add a new motor with a cable that connects to e.g the WeDo USB Hub (longer and twisted) and also add a copy of all the parts that were added since the previous buffer exchange. In LPub I would then hide all those new parts as well as the last step in that subfile.

It looks like this will allow me to do the same thing without Buffer Exchange and directly inside LPub
Reply
Re: LDCad 1.6 suggestions/plans
As you wrote, this is the perfect tool to change cable routing at various point of the instructions. I used it in some instructions
Reply
Re: LDCad 1.6 suggestions/plans
I've tried to use the command and ran into a problem:

I used the command in a subfile and hid the first motor I inserted.
When I used the subfile in the mail file both motors appeared.
Is this the expected behaviour? Am I doing something wrong?
Reply
Re: LDCad 1.6 suggestions/plans
#13
Quote:count can be used to indicate e.g. the number of brick of this kind present in a offical set or something. If above 0 it will be displayed in the parts cell. Future versions of LDCad will do more useful stuff with this property for now its only a FYI thing.
...do something useful with the "count" property?

BTW, is it possible to structure a bit an official set parts bin (add some sub-bins for multi-thousand parts sets)?
Reply
Re: LDCad 1.6 suggestions/plans
#16
Philippe Hurbain Wrote:
Quote:count can be used to indicate e.g. the number of brick of this kind present in a offical set or something. If above 0 it will be displayed in the parts cell. Future versions of LDCad will do more useful stuff with this property for now its only a FYI thing.
...do something useful with the "count" property?
My initial plan for this was to have it decrease the numbers baded on the current model so you could build a model and end up with zero parts in the bin when finished. I've also been playing with the idea to keep an inventory of your real life parts and have those decrease based on the current model. That way you would know if you can build something or not using your real life stuff. the later would need some kind of tool to enter your collection. I'll put the set decreasing feature back on the to do list.

Philippe Hurbain Wrote:BTW, is it possible to structure a bit an official set parts bin (add some sub-bins for multi-thousand parts sets)?
Yes you can do that by using a group of the 'dirlist' kind or a 'basic' one referencing the subgroups but those groups need to be outside the sets folder or they will show up twice.
Reply
Re: LDCad 1.6 suggestions/plans
#19
Quote:Yes you can do that by using a group of the 'dirlist' kind or a 'basic' one referencing the subgroups
Actually I hoped for something like 'catlist' but applied to a static list (similar to a set pbg) generating automatically subcategories.
Reply
Re: LDCad 1.6 suggestions/plans
#20
Or maybe a filter group that uses another group or static item list as a source instead of the inventory? I'll put this on the nice to have list Smile
Reply
Re: LDCad 1.6 suggestions/plans
#22
Yes, that's more or less the idea Wink
Reply
Re: LDCad 1.6 suggestions/plans
#24
Roland Melkert Wrote:
Philippe Hurbain Wrote:...do something useful with the "count" property?
My initial plan for this was to have it decrease the numbers based on the current model so you could build a model and end up with zero parts in the bin when finished.
Yes, that would be very useful for alternative models building (and contests)! I prefer to have it "stupid only" - no policy set like disabling pieces with '0' count etc. Just show the current result of (original_count minus used_count), red if negative.
Nice-to-have extension: a function to select pieces in the model which are not from this list.
EDIT: About thee import of this kind of data: I vote for a brickstore (BSX) format import function. This way one can use brickstock directly with LDCad (and import sets data or personal lists there so you do not need to think about that) and also rebrickable.com offers an export to BSX format.
Reply
Re: LDCad 1.6 suggestions/plans
#26
Milan Vančura Wrote:Yes, that would be very useful for alternative models building (and contests)! I prefer to have it "stupid only" - no policy set like disabling pieces with '0' count etc. Just show the current result of (original_count minus used_count), red if negative.
Nice-to-have extension: a function to select pieces in the model which are not from this list.
Could always make that an option.

Milan Vančura Wrote:EDIT: About thee import of this kind of data: I vote for a brickstore (BSX) format import function. This way one can use brickstock directly with LDCad (and import sets data or personal lists there so you do not need to think about that) and also rebrickable.com offers an export to BSX format.
I'll probably add multiple ways or maybe even make it possible trough scripted/plugin imports as part of the scripting extensions I have planned for 1.6
Reply
Re: LDCad 1.6 suggestions/plans
#14
I used 1.5 a bit and I did not see the following:

Would it be possible to display the HELP line in the part when you click on "Properties"?

If there is placement information inside it would be nice to quickly access it.
Reply
Re: LDCad 1.6 suggestions/plans
#17
Gerald Lasser Wrote:I used 1.5 a bit and I did not see the following:

Would it be possible to display the HELP line in the part when you click on "Properties"?

If there is placement information inside it would be nice to quickly access it.
I was considering to use the source window for that. It was supposed to work with an option you can use to assign what to display in a certain source window (current model, selected part, some locked part/model). But I dropped that feature for the 1.5 version thinking it should first be 'perfect' combined with just the current model/part.
Reply
Re: LDCad 1.6 suggestions/plans
#46
Hopefully an easy one.

Roland, happy new year. Love your program. I am in the process of converting models from LDD to LDraw and have discovered your program and am really liking it. However, some of my LDD models are quite large. What I need is the right click ability from LDD. I need to be able to set a new rotation centerpoint.

Currently, it seems like the camera centerpoint is fixed in the center of the bounding box for the whole model. I need to be able to pick a brick and make it the new camera centerpoint (since some of my models are geographically quite large and spread out) and zoom in tight on that one area and spin around it to work. If this is already a capability, please forgive my ignorance. I am still learning all of the details of the interface. It does seem like I can achieve an approximation of what I am looking for by switching back and forth between 2D and 3D modes (using 2D mode to gain a new camera centerpoint), but it would be nice to have the centerpoint function on the right click popup for a brick (allowing it to be set directly from 3D mode).

Oh ya... in the normal course of editing I would be looking to use this ability with the SPN rotation style... but I imagine the concept could work the same for both styles.
Reply
Re: LDCad 1.6 suggestions/plans
#47
Hi OldT1mer, welcome here!
I don't know if this does exactly what you want, but "c" key centers the view on current selection.
Reply
Re: LDCad 1.6 suggestions/plans
#48
I think it is what he meant.
But, aside from that. I personally didn't knew about the feature hiding behind the C key. It's actually quite useful. Smile
Reply
Re: LDCad 1.6 suggestions/plans
#49
Awesome! Thank you, Philippe. That is exactly what I was looking for.

C is for center... that's good enough for me. Smile
Reply
Re: LDCad 1.6 suggestions/plans
#50
You can also move the view around by using shift+right mouse button.

And 'c' also work while dragging a new part into the model, it will center on the current mouse location that way.
Reply
Re: LDCad 1.6 suggestions/plans
#51
1. I would like to see program tabs for currently opened documents.
2. I would also like to have a way to move the parts always in the same XYZ directions when pressing keys, regardless of where the camera is pointing.
Reply
Re: LDCad 1.6 suggestions/plans
#52
Quote:I would also like to have a way to move the parts always in the same XYZ directions when pressing keys, regardless of where the camera is pointing.

As a result of the hotkey handling changes I'm currently working on it will be possible to reassign the arrow keys to general xyz movement no matter the state of the editing pin as long you clear the hotkeys (or set different ones) for the state depended handling as it is a first come fist served kinda thing.
Reply
Re: LDCad 1.6 suggestions/plans
#53
Hi Roland,

actually I only have one "nice to have" wish.

Very often I only want to have a couple of parts visible, while the rest of the model is hidden: I click the parts which shall be visible, choose the "select" menue, than "invert" and finally press the button "hide selection". So I would highly appreciate if there would be a single key or button for the previous described sequence.

And I copy Milans wishes:
Milan Vančura Wrote:* to be able to select a snap point (of any brick in the model) as the origin of coordinates
* for each brick (or brick group or submodel): to be able to select one of its snap points as the brick center
* snapping while rotation: .. - useful for triangles etc.

thanks and kind regards
roland
Reply
Re: LDCad 1.6 suggestions/plans
#54
Roland D. Wrote:Very often I only want to have a couple of parts visible, while the rest of the model is hidden: I click the parts which shall be visible, choose the "select" menue, than "invert" and finally press the button "hide selection". So I would highly appreciate if there would be a single key or button for the previous described sequence.
This will be possible in 1.6 using a macro (script). This feature is actually the main reason I'm changing the hotkey handling for key customization. As those changes are also needed to universally access any menu item or current hotkey enabled action from scripts.

The needed script for your example will be very easy, it would look something like this:
Code:
ldc.runAction('editSes_selInv')
ldc.runAction('editSes_selHide')

You can then assign it a hotkey and or place a button for it in the menubar.
Reply
Re: LDCad 1.6 suggestions/plans
#55
Excellent! Another christmas gift! Thanks.
Reply
Re: LDCad 1.6 suggestions/plans
#56
Roland D. Wrote:Very often I only want to have a couple of parts visible, while the rest of the model is hidden
This reminds me a feature I wish so long time I forgot to ask Smile
Roland, please, can you add a slider to set selection or group opacity/transparency?
To be able to create pictures or videos similar to this image.

And, a following feature request: to be able to set a temporary color for a/each group and to be able to save such setting and turn it on and off as needed. I mean: to build whole model as usual but, when needed, to be able to switch to this kind of view.

Both features are more than handy for Technic models...
Reply
Re: LDCad 1.6 suggestions/plans
#57
Milan Vančura Wrote:
Roland D. Wrote:Very often I only want to have a couple of parts visible, while the rest of the model is hidden
This reminds me a feature I wish so long time I forgot to ask Smile
Roland, please, can you add a slider to set selection or group opacity/transparency?
To be able to create pictures or videos similar to this image.

For many years I thought this was the function of the Ghost option in MLCad but I was wrong. Smile
Reply
Re: LDCad 1.6 suggestions/plans
#58
Milan Vančura Wrote:This reminds me a feature I wish so long time I forgot to ask Smile
Roland, please, can you add a slider to set selection or group opacity/transparency?
To be able to create pictures or videos similar to this image.

And, a following feature request: to be able to set a temporary color for a/each group and to be able to save such setting and turn it on and off as needed. I mean: to build whole model as usual but, when needed, to be able to switch to this kind of view.
This might become, partly, possible using scripts too. You can already experiment with it in 1.5 using the animation scripts. Short example:

Code:
function register()

  local ani=ldc.animation('test')
  ani:setLength(10)  
  ani:setEvent('frame', 'onFrame')
end

function onFrame()

  local sf=ldc.subfile()
  local grp=sf:getGroup('Group 1')
  local ani=ldc.animation.getCurrent()
  local col=ani:getFrameTime()
  grp:setColor(col)
end

register()

This will change the color of 'group 1' to the playback second's color number.

While pausing the animation you can export the OpenGL rendering (and thus the model in alternative colors).
Reply
Re: LDCad 1.6 suggestions/plans
#59
I don't think this capability currently exists in LDCad but correct me if I'm wrong.

The ROTSTEP command in LPUB is helpful when writing building instructions, with LPUB having a default camera view angle for the instructions.
  1. Add a "build instructions view" option (to the 3D view or perhaps as a separate viewing angle) to display the model from the (LDCad) default camera angle position. When using the "build instructions view", the model will not be rotatable.
  2. Allow the (LDCad) default camera angle to be specified/changed. Perhaps set its initial value to whatever the corresponding angle is in LPUB.
  3. When stepping through the instructions in LDCad and a ROTSTEP command is encountered in an LDraw file, rotate the "building instructions view" viewing angle accordingly.
  4. Add capability to insert ROTSTEP commands into the LDraw file. An interactive angle selection by looking at the model (a la MLCad) would be useful.

Regards,

David

P.S. Congratulations on the receiving the James Jessiman Memorial Award for 2015.
Reply
Re: LDCad 1.6 suggestions/plans
#62
David Manley Wrote:The ROTSTEP command in LPUB is helpful when writing building instructions, with LPUB having a default camera view angle for the instructions.
The ROTSTEP meta was pointed out to me awhile ago. I will add support for it so it will at least act like a normal step separation. And it will be possible to make any STEP into a ROTSTEP one and visa versa. I could also apply the angles during the view mode or an editing option.

David Manley Wrote:P.S. Congratulations on the receiving the James Jessiman Memorial Award for 2015.
Thanks.
Reply
Re: LDCad 1.6 suggestions/plans
#60
Roland Melkert Wrote:This might become, partly, possible using scripts too. You can already experiment with it in 1.5 using the animation scripts.
...
While pausing the animation you can export the OpenGL rendering (and thus the model in alternative colors).
Thanks for an example. You are right - part of that already works - that's promising. However, there are still some issues as you can see in my example:
  • edges are not transparent so one gets something like a wired model - emphasized groups still are not visible well
  • to set alpha channel of bricks walls one needs to modify ldconfig.ldr and restart LDCad (twice)
  • scripting API does not contain any call to make a selection so I had to make a group containing all the model
  • one needs scripting - this becomes even more complicated when/if we needed a real animation as well

Anyway, it's really promising that LDCad already knows each part of this feature. Can I therefore ask for a full feature merging them to one nice hotkey (+slider for opacity)? Smile
Reply
Re: LDCad 1.6 suggestions/plans
#61
Milan Vančura Wrote:edges are not transparent so one gets something like a wired model - emphasized groups still are not visible well
So what is needed is a 'real' ghosting feature, so instead of hiding parts they will remain somewhat visible. Should be fairly easy playing around with the alpha channel during rendering. I'll do some testing/trials with 1.6.

Milan Vančura Wrote:to set alpha channel of bricks walls one needs to modify ldconfig.ldr and restart LDCad (twice)l
You could try assigning them an encoded transparent color number during scripting, but I've never tested that myself. Only downside is the encoded transparency currently uses a hard coded alpha value of 0.75. Alternative would be to hide all the background stuff / render it separately and combine the two images using gimp or something.

Milan Vančura Wrote:scripting API does not contain any call to make a selection so I had to make a group containing all the model
Alternative would be to loop trough all reference lines setting the color for them one by one in script before assigning the color to the groups.
Code:
local sf=ldc.subfile()
  for i=1,sf:getRefCount() do
    sf:getRef(i):setColor(0x03FFFFFF)
  end


Milan Vančura Wrote:one needs scripting - this becomes even more complicated when/if we needed a real animation as welll
But that's where the fun lives Smile
Reply
Re: LDCad 1.6 suggestions/plans
#63
One thing I still miss from time to time: possibility to remove a part from a group. I admit it's not obvious GUI-wise since when you click on a part to select group this part has no special highlighting (or role)...
Reply
Re: LDCad 1.6 suggestions/plans
#64
I second this. It would be even better if there was something like a nested mode for groups - so we can even move parts.
Reply
Re: LDCad 1.6 suggestions/plans
#65
Quote:One thing I still miss from time to time: possibility to remove a part from a group. I admit it's not obvious GUI-wise since when you click on a part to select group this part has no special highlighting (or role)...
I have been thinking about using the source window to display the contents of a group. You would also be able to edit move things around in such a setup. Not sure if it will be in 1.6 though as I want to prevent the long dev cycle 1.5 had Smile

Quote:It would be even better if there was something like a nested mode for groups - so we can even move parts.
This becomes possible when I add the planned layered groups feature. Which means you can also (temporary) disable all grouping (layer level 0).

Using this feature you can have multiple group configurations in the same file. That way groups needed for a certain animation won't hamper normal editing and or other animations using the same model etc.
Reply
Re: LDCad 1.6 suggestions/plans
#66
Roland Melkert Wrote:This becomes possible when I add the planned layered groups feature. Which means you can also (temporary) disable all grouping (layer level 0).

Using this feature you can have multiple group configurations in the same file. That way groups needed for a certain animation won't hamper normal editing and or other animations using the same model etc.
This sounds great - really useful feature for daily editing, even more generic than I imagined. I look forward for 1.6 more and more Smile
Reply
Re: LDCad 1.6 suggestions/plans
#67
That's cool! It's nice for a part to be a member of multiple groups. Makes some things easier.
Reply
Re: LDCad 1.6 suggestions/plans
#69
Quote:"nice to have":
POVRay animation export.
Blender animation export.
Full screen mode during animations? (we need no bins/source windows etc while in this mode)
Reply
Re: LDCad 1.6 suggestions/plans
#70
Maybe this is something you could get in the final 1.5 release; it would be nice the the part-snapping supports the ('new') ball-joints with parts like 14704, 14417, 14418, 14419 and probably a few more. I'm building Mixels sets now and it starts to get quite annoying to almost guess how the balls connect in the sockets Wink
Reply
Re: LDCad 1.6 suggestions/plans
#71
OK, and why didn't you add snapping for those parts, already?
My experience: it's so easy that it's usually easier to create such snapping info than to put the part at the correct place manually. Since I found that, I never place parts without snapping. You only need a small preparation work at the first time. Next times, it's an easy operation in LDCad.

Full howto is in one of older LDCad threads, just shortly:

preparations:
a. go to your LDCad folder (use your filemanager), to shadow/ subdir and unzip the offlibShadow.csl file. You may need to rename it to .zip first
b. start LDCad, set shadow parameter of your LDraw dir to the directory instead of .csl file (Prefs->LDraw)
c. restart LDCad and allow "shadow editing" feature: "Prefs" -> "Editing" -> "Part editing" -> "Part (shadow) editing"

Since now, everything is easy. Each part in the part bin has an edit icon. Click on it and edit shadow info: in the part bin, go to "main group" -> "Special parts" -> "LDCad snap meta items", take the snapping object you want (usually a cylinder but in the case described above, use a sphere), put it at the correct place and press a middle button to open preferences window. There, fill in all properties you need (at least male/female and size).

Go back to the main model and test it. When you are OK with it, go to the model/window with the part and save it. And then, send new shadow files here, as we do.
Reply
Re: LDCad 1.6 suggestions/plans
#72
Quote:it would be nice the the part-snapping supports the ('new') ball-joints

I'll try to add most info for the 2015-02 parts in the 1.5 release. Don't know when though, I haven't had much bug reports etc so not much has changed in the current builds compared to the online beta. I have managed to add MSAA though so maybe I do a definite release this or next weekend anyway.

In the mean time you could add it manually like Milan wrote, and because this part uses primitives you probably only have to add the below line to "joint-8-socket-frica.dat" to cover them all in one go.

Code:
0 !LDCAD SNAP_GEN [gender=F] [bounding=sph 8] [match=size] [placement=free]
Reply
Re: LDCad 1.6 suggestions/plans
#73
Hmm, I just tried, but I couldn't get it to work.

I added joint-8-socket-frica.dat to the shadow library with the line you specified, but it doesn't work. It's probably me who's doing something wrong, right? Wink
Reply
Re: LDCad 1.6 suggestions/plans
#74
Merlijn Wissink Wrote:Hmm, I just tried, but I couldn't get it to work.

I added joint-8-socket-frica.dat to the shadow library with the line you specified, but it doesn't work. It's probably me who's doing something wrong, right? Wink

Did you update the search paths to use the unzipped shadow location?

Also I just noticed these socket parts are unofficial, so I won't be adding them to the default shadow file.

Instead you could also just add the !LDCAD line directly into the "joint-8-socket-frica.dat" of your unofficial library file location itself. That way you wont have to unpack csl's/adjust settings etc.
Reply
Re: LDCad 1.6 suggestions/plans
#75
Yea, I just noticed too that the (sub)part is still unofficial (altough why!? after almost 2 years...).

Anyway, I didn't updated the search path, I just rezipped it to the csf file. I supposed that would work too...
But, I just realized I was only testing with 1 part. And guess what, it was exactly a part that still didn't work.

That leads me to the folllowing question: any idea why the ball-side of part 14419 and 15456 still aren't connecting the the socket, while parts like 14417 do connect? Am I missing another connection line?
Reply
Re: LDCad 1.6 suggestions/plans
#76
You can visualize snap info in the part info and editing area for all renderings by pressing F11.

There is no primitive for the ball side of the joint so any new parts (like 14419) need to define the male part of the connection them selves. By adding below line (edit pos= as needed)

Code:
0 !LDCAD SNAP_GEN [pos=0 0 0] [gender=M] [bounding=sph 8] [match=size] [placement=free]
Reply
Re: LDCad 1.6 suggestions/plans
#78
Oh, that f11 feature is quite nice for a situation like this. I was already wondering if there was something like that hidden in LDCad.

I was under the impression that the ball-sides were all primitives. Ah well, I'll edit a few of the parts tomorrow. With 72 Mixels in total and pretty much all of them using these parts, I'd like to make it a bit easier for myself Wink

Thanks for the help Roland and Milan! Hopefully I get it working tomorow Smile
Reply
Re: LDCad 1.6 suggestions/plans
#83
Ok, I've made 3 extra shadow library parts. It was actually quite easy with the built-in shadow editor. You can download them here in case anyone would like to use them.

Note: all 3 shadow parts are for (currently) unofficial parts, so you should add a second shadow library in LDcad for the unofficial parts Smile
Reply
Re: LDCad 1.6 suggestions/plans
#86
I've made a few more shadow edits, now also with 2 official parts. Link if anyone is interested.
Really nice work Roland, everything just works Big Grin
Reply
Re: LDCad 1.6 suggestions/plans
#87
Merlijn Wissink Wrote:I've made a few more shadow edits, now also with 2 official parts. Link if anyone is interested.
Really nice work Roland, everything just works Big Grin
Thanks Merlijn.

32474p01 uses the s\32474s01.dat, primitve so I've added the info over there like so:
Code:
0 !LDCAD SNAP_CLEAR
0 !LDCAD SNAP_CYL [gender=F] [caps=one] [secs=R 6 4   A 6 15.25] [slide=true] [pos=0 9.25 0]
Reply
Re: LDCad 1.6 suggestions/plans
#77
Merlijn Wissink Wrote:Anyway, I didn't updated the search path, I just rezipped it to the csf file. I supposed that would work too...
Try the howto I summarized for you. I checked again now that I did not forget anything so it should work if you follow it step by step.

I'm looking forward to welcome you in our unofficial group of shadowers Big Grin

Milan
Reply
Re: LDCad 1.6 suggestions/plans
#80
I prefer a more standard Windows-like GUI than the blue boxy GUI LDCad has right now, but whatever.
Reply
Re: LDCad 1.6 suggestions/plans
#79
I'm thinking with the recent info of Lego discontinuing LDD we should see some more builders venture over to the LDraw side of things especially LDCad cause it's the best.

It's been mentioned before but any changes giving LDCad a more user friendly appearance may be beneficial right now.
______________________________________________
OS = Ubuntu 14.04 LTS (64bit)
Reply
Re: LDCad 1.6 suggestions/plans
#82
LDCad's own GUI system indeed looks not very slick. To be honest, when I was still using SR3D Builder a long time ago, I was a little hestitant to try LDCad, because it looked so strange on the screenshots. Wink

My point is, I have no problems at all with the GUI and it works wonderful, but I can imagine it might 'scare' users off.
In my opinion, something that would be really cool would be something like Microsoft's Ribbon Interface like in their Office applications, also a bit like Autodesk implements in their 3D software.

But, changing the gui is (again, in my opinion of course) far not as important as new features (or bug fixes). Because, well, it works perfectly fine as it is now. Smile
Reply
Re: LDCad 1.6 suggestions/plans
#84
Merlijn Wissink Wrote:LDCad's own GUI system indeed looks not very slick. To be honest, when I was still using SR3D Builder a long time ago, I was a little hestitant to try LDCad, because it looked so strange on the screenshots. Wink
I know this seems to be a problem for some people, but to be honest I don't really understand it as the gui isn't that much different layout wise.

I bet if Apple came out with that old school 90s look everybody would declare it groundbreaking Smile But to be serious the current state of the gui is mostly the result of me not being an artist and a bit lazy as it is very time consuming to draw gui stuff using OpenGL.

If anyone has some ideas on how to improve things without the need to fully rewrite the rendering of those panels etc (e.g. by color/icon tweaks etc) I'm open for any suggestions.

Merlijn Wissink Wrote:My point is, I have no problems at all with the GUI and it works wonderful, but I can imagine it might 'scare' users off.
In my opinion, something that would be really cool would be something like Microsoft's Ribbon Interface like in their Office applications, also a bit like Autodesk implements in their 3D software.
But, changing the gui is (again, in my opinion of course) far not as important as new features (or bug fixes). Because, well, it works perfectly fine as it is now. Smile
I do want to add a better toolbar at some point but it indeed isn't high prio at the moment.
Reply
Re: LDCad 1.6 suggestions/plans
#81
It would be neat if LDCad had WASD controls for the camera, and the ability to lock the Y axis so that no matter where you are looking, your movement is always level.
Reply
Re: LDCad 1.6 suggestions/plans
#85
I have been working on the 1.6 hotkey configuration stuff during my vacation it is now possible to reassign any 'action' in the program. I could add some actions to control the camera (key less by default) which you can then assign keys to yourself using the below new dialog.

   
Reply
Re: LDCad 1.6 suggestions/plans
Roland Melkert Wrote:I have been working on the 1.6 hotkey configuration stuff during my vacation it is now possible to reassign any 'action' in the program. I could add some actions to control the camera (key less by default) which you can then assign keys to yourself using the below new dialog.
Would it be possible to assign the A key to rotate a brick around the y-axis?
I am so used to MLCad that I constantly pres A to rotate a brick....
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
Jaco van der Molen Wrote:Would it be possible to assign the A key to rotate a brick around the y-axis?
I am so used to MLCad that I constantly pres A to rotate a brick....
Yes using the new dialog you can change the keys for each of the editing pin mode's.

It currently only allows for optional rotation around the current plane, but I could easilly add abs rotations like I've already did for the movement stuff, like so:

   
Reply
Re: LDCad 1.6 suggestions/plans
Roland Melkert Wrote:
Jaco van der Molen Wrote:Would it be possible to assign the A key to rotate a brick around the y-axis?
I am so used to MLCad that I constantly pres A to rotate a brick....
Yes using the new dialog you can change the keys for each of the editing pin mode's.

It currently only allows for optional rotation around the current plane, but I could easilly add abs rotations like I've already did for the movement stuff, like so:
I've been through every menu, but am unable to find the Hotkey Management dialog. Where is it? :-)
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
It's not in the current release yet (1.5).
It's being worked on. It'll be a new feature in the 1.6 release Wink
Reply
Re: LDCad 1.6 suggestions/plans
Merlijn Wissink Wrote:It's not in the current release yet (1.5).
It's being worked on. It'll be a new feature in the 1.6 release Wink
Oops, my mistake. This is about 1.6.. :-)
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
Roland Melkert Wrote:I have been working on the 1.6 hotkey configuration stuff during my vacation it is now possible to reassign any 'action' in the program. I could add some actions to control the camera (key less by default) which you can then assign keys to yourself using the below new dialog.

[attachment=1983]

I was hoping I could turn this behavior on/off with a single switch without having to reset all the key bindings each time. Obviously, I would not want this behavior 100% of the time.

Will I be able to toggle groups of command bindings on/off at one time?
Reply
Re: LDCad 1.6 suggestions/plans
Michael Horvath Wrote:I was hoping I could turn this behavior on/off with a single switch without having to reset all the key bindings each time. Obviously, I would not want this behavior 100% of the time.

Will I be able to toggle groups of command bindings on/off at one time?
I have been thinking about making the hotkey 'sheet' switchable you could use that to temporary use different keys as long the switch can be done easily / fast maybe trhough a hot key of its own. I'll see what I can cook up.
Reply
Re: LDCad 1.6 suggestions/plans
#88
Another cool feature would be to add support for the following POV-Ray objects:

1) light source location
2) spotlight point_at parameter
3) camera location
4) camera look_at parameter

These should be objects that can be moved around just like a regular Lego part. The tricky bit is pairing them with each other, so a light source and its point_at object are considered a duo.
Reply
Re: LDCad 1.6 macro scripting
#89
Hello all,

I've been thinking about the macro scripting feature to be added in 1.6.

This made me wonder about what people might want to do with those macro's as that determines the api extensions needed.

I've been thinking about adding:
  • Simple dialogs (input str/number, message, confirm)
  • Camera control (e.g. use a macro to set a specific camera view)
  • Selection control (e.g. use a macro to align bricks or apply some auto placement math).

Is anyone has some additional ideas of things to do with macros and what would be needed in order to get it working from the lua environment.

Example of a (almost mandatory) hello world maco:

Code:
--[[
  LDCad macro scripting example

  This script demonstrates how to add a simple macro to the GUI.
--]]


function register()

  --Register a new macro named 'Hello'
  -- This new macro will show up in this script's dedicated submenu within the 'Scripts' menu.
  local macro=ldc.macro('Hello')

  --Set the optional hint for this macro item.
  macro:setHint('Very simple macro example.')

  --Link the macro to the lua function to be called when the user clicks it in a menu.
  macro:setEvent('run', 'onRunHello')
end

function onRunHello()
  --This function will be called when the user clicks the 'Hello' macro in a menu.
  -- So lets perform its groundbreaking task.
  ldc.dialog.runMessage('Hello, welcome to '..ldc.getVersion()..' running lua '..ldc.getLuaVersion())
end

--Call the main register function.
-- It is best to register things in a dedicated function in order to minimize global variables.
register()
Reply
Re: LDCad 1.6 macro scripting
#91
- Possibility to write files, eg. to create parts lists as suggested by Jason. Creating parts list also requires access to used parts characteristics such as color and description.
Among parts list styles, we could also create .pbg of a model to easily create alternate models (-> possibility to save the pbg directly in part bins folder?)

- Image creation (first step towards an instruction generator...)
Reply
Re: LDCad 1.6 macro scripting
#96
Philippe Hurbain Wrote:- Possibility to write files, eg. to create parts lists as suggested by Jason. Creating parts list also requires access to used parts characteristics such as color and description.
Among parts list styles, we could also create .pbg of a model to easily create alternate models (-> possibility to save the pbg directly in part bins folder?)
Part bin manipulation seems to be popular Smile (see Milan's post below) so I will add some part bin (group) manipulation objects.[/quote]

Philippe Hurbain Wrote:- Image creation (first step towards an instruction generator...)
There is a whole sea of lua support libraries out there including png io etc. Only needs a way to transfer the rendering to lua, I'll have to look into that.
Reply
Re: LDCad 1.6 macro scripting
#93
At first, please summarize all 1.6 features from other threads which you already marked as "should be solvable by scripts in 1.6" Smile

Other than that, I have these ideas:

* read file + string operations enough to parse them. For example I'd like to write a script importing a BL set inventory as .pdb - without any LDCad restart.

* find groups of connected parts - all functions needed for that (searching parts, their snap points etc.)

At lower level, I'd wish one very generic feature: make as many current (sub)menu items as possible be new API calls so they become accessible from the scripting language as well. For example working with selections, models, steps, coordinates etc.
Reply
Re: LDCad 1.6 macro scripting
#95
Milan Vančura Wrote:read file + string operations enough to parse them. For example I'd like to write a script importing a BL set inventory as .pdb - without any LDCad restart.
Part bin group manipulation through macros could be fun indeed. lua has basic string/file io of it self I just disabled the fileio stuff in the current versions thinking about security. But as long you don't run as admin/root this shouldn't be a problem anyway so I will enable it for 1.6.

Milan Vančura Wrote:find groups of connected parts - all functions needed for that (searching parts, their snap points etc.)
This will need very deep/lowlevel access but it could also be the key to writing custom kinetics etc, something I would love to support in the long run.

Milan Vančura Wrote:At lower level, I'd wish one very generic feature: make as many current (sub)menu items as possible be new API calls so they become accessible from the scripting language as well. For example working with selections, models, steps, coordinates etc.
This will be possible through the ldc.action object as it makes available all things which also can be bound to custom hotkeys (basically all normal click items in the menus and the current keyboard bound actions).
Reply
Re: LDCad 1.6 suggestions/plans
#90
Not sure anyone else would find these useful, but I figured I'd put them out there and see. Smile All of these are "nice to haves".

Customizable tabs for parts bin window
I love that we can now have multiple part bin windows but sometimes I don't always remember which parts are selected for the tabs I have. Would it be possible to allow customization of the numbers on the parts bin window tabs? I was thinking something like being able to enter two characters so that you could have something like "T1", "T2" for Technic parts, "PT" for plain tiles, "NP" for normal plates...whatever the user wants to enter to help remember what that tab is on. Granted, some might change up whats in the tabs a lot and this might not help. I find myself usually setting up certain tabs for certain parts to make it easier to find them and I would definitely use this feature. Smile

Ability to create groups for favorite parts
I like the ability to favorite parts and that comes in really handy. I think the next "evolution" Smile of favorites could be to allow the creation of favorite groups. For example, say I like to build mechs and Technic race cars. I'd favorite a lot of parts for both of those and they would all get bunched together in my favorites so I don't have to jump around looking for everything I need. Granted, even with having favorite parts for both (or even more) lumped together and going through my favorites it's usually faster than trying to find the pieces by browsing or searching. Being able to separate them into different groups could make it even simpler and faster for different types of builds. Maybe even make those lists "portable" (i.e. saved to a file or exportable/importable) so that they can be shared if people want to do that. You could even go so far as to select all the parts for a particular build and then create a favorites group based off of those parts. Some might ask what's the point of creating a favorite's list for all the parts of a build when you could just open up the model. However, sometimes I have models with parts I don't use very often and I don't remember the name/number of the part and it takes a while to find it (if I haven't favorited it). If I could save all the parts for that model to a group I could easily go to that group and find the part rather than having to search for something I don't remember the name for (maybe I just need more practice searching ;-)). Anyway, I think having groups like that available could be pretty useful. I'd be interested to hear what others think of this idea.

Ability to export parts list
I think this might have been mentioned before, and I realize that there are different formats in use, but I figured I'd throw it out there. I also realize that there are other programs that can create lists from LDraw files, but having it all in one place is just faster and easier. So, Roland, if you're bored one weekend... ;-)

Thanks!
Reply
Re: LDCad 1.6 suggestions/plans
#92
Quote:Customizable tabs for parts bin window
+1 on this one, already thought of this. Maybe also, related to this: possibility to have more than 6 bin panels (creation of a 2nd row of tabs). I know (and use) the possibility to create multiple parts bins, but it takes more valuable screen space.
Quote:Ability to create groups for favorite parts
I don't use that much favorites, but I see similar needs when working on the creation of an official model from an imported parts listing (.pbg of set): possibility to automatically apply some sorting there. Currently I open the set parts listing in multiple parts bin panels, and use the filter funtion. But I have to do this again each time I restart LDCad or change set.
Quote:Anyway, I think having groups like that available could be pretty useful. I'd be interested to hear what others think of this idea.
More or less what I suggested for scripting: generation of a part bin for opened model... (creation of alternate models).
Reply
Re: LDCad 1.6 suggestions/plans
#94
Philippe Hurbain Wrote:
Quote:Ability to create groups for favorite parts
I don't use that much favorites, but I see similar needs when working on the creation of an official model from an imported parts listing (.pbg of set): possibility to automatically apply some sorting there. Currently I open the set parts listing in multiple parts bin panels, and use the filter funtion. But I have to do this again each time I restart LDCad or change set.
Quote:Anyway, I think having groups like that available could be pretty useful. I'd be interested to hear what others think of this idea.
More or less what I suggested for scripting: generation of a part bin for opened model... (creation of alternate models).

Thanks for refreshing my memory Philippe! I thought there might have been some way to do custom groups, but I couldn't remember. Using .pbg files will help, but having something integrated with the GUI to manage custom parts groups would be great. It doesn't necessarily have to be favorites, just a way to save custom groups of parts that might be used frequently.
Reply
Re: LDCad 1.6 suggestions/plans
#97
I have been planning gui level part bin management for a while but keep pushing it to the next version for some reason. I'll move File change detection / reloading for the part bin files to the to do list as it would at a minimum make it possible to change the content without having to restart the program all the time.

Quote:Customizable tabs for parts bin window
This shouldn't be to hard to implement but I might limit the string lengths of those captions to 3 characters or something as it will influence the minimal width of the bins.

Quote:Ability to create groups for favorite parts
Like philo wrote custom 'favorite' groups can be done by adding files to e.g. the sets group or by setting up your own subtree inside the part bin. it should become easier to do / see what your doing once the file reloading stuff is extended to include the bin files.

Quote:Ability to export parts list
This might become possible through scripting see the above posts from Philo and Milan.
Reply
Re: LDCad 1.6 suggestions/plans
#98
So in the future would it be possible to import a script created by some one who knows how to make one which then the user could simply execute said script? There could be all kinds of scripts I suppose for parts lists, instruction creation etc.

Or is all the scripting going to need to be done by the user?
______________________________________________
OS = Ubuntu 14.04 LTS (64bit)
Reply
Re: LDCad 1.6 suggestions/plans
#99
Jason Smith Wrote:So in the future would it be possible to import a script created by some one who knows how to make one which then the user could simply execute said script? There could be all kinds of scripts I suppose for parts lists, instruction creation etc.

Or is all the scripting going to need to be done by the user?
Scripts can be written by others. There also will be a couple of defaults (deployed like the bins etc).

Initially I was thinking about using macro scripts for things like:

Generating a brick sphere / wall etc.
Auto placement for specific configurations (e.g. engine pistons) by manipulating the current selection etc.
Generate random minifig.

But like suggested above access to the part bin (groups) could be fun too.

My ultimate hope is to add support of real-time kinetics through a script written by someone with a math/physics phd or something Smile
Reply
Re: LDCad 1.6 suggestions/plans
Don't know if this has been asked before, but would it be possible to compile LDCad for Mac?
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
Jaco van der Molen Wrote:Don't know if this has been asked before, but would it be possible to compile LDCad for Mac?
I suspect it will work almost at once as the mac like Linux is unix based meaning the Linux variant of things probably also work for the mac. This and the fact the 3rd party application shell library I use (wxWidgets) supports the mac.

But the problem is I don't have a mac at the moment. I have been trying to cross compile but haven't much luck with that so far.

If anyone has some pointers on how to setup cross compiling (e.g. on a dedicated linux vm image) I'm open to suggestions.
Reply
Re: LDCad 1.6 suggestions/plans
I see instructions for starting Draw on a Mac but nothing on my computer will open Draw. What program do I need to open the file?
Reply
Re: LDCad 1.6 suggestions/plans
AKGrannymom Wrote:I see instructions for starting Draw on a Mac but nothing on my computer will open Draw. What program do I need to open the file?
Hi there,
For the Mac there is Bricksmith to open LDraw files.
See: http://bricksmith.sourceforge.net/
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
I have two other requests: sorting bricks (by height) and something like autostepping.
(Sorry, too used to mlcad....)

Enhance autostepping by determination if a brick is attached.
This is often the case when using SNOT. If a brick is attached to say a headlightbrick, the height of that brick is lower then the height of the headligth brick. Sorting by height will mean we get floating bricks.
If LDCad could solve that it would be great. Since it has part snapping I guess one could test if a brick is attached?
Get it? :-)
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 suggestions/plans
  • Is it just me or are there other people that get frustrated on how the menus work? There is no visual aid that suggest that for example unsplit a view you have to select:

    View -> Editing views -> Split -> Unsplit

    I really miss the arrow indicating a submenu or the three dots for a dialog ... the cascading submenu opening in an attached menu window and not all in the same box, getting lost ...
  • I further miss that there is no icon for the grids or an indication which step grid I'm currently using (before I start moving around and the grid shows up).

  • I miss that Front, Left, Right, ... icons I got used to in LDView, which are much faster then the compass in the bottom left-hand corner.

Sorry for the rant, it's just that I've got the impression to get nowhere and didn't no why,

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
Willy Tschager Wrote:
  • Is it just me or are there other people that get frustrated on how the menus work? There is no visual aid that suggest that for example unsplit a view you have to select:

    View -> Editing views -> Split -> Unsplit

    I really miss the arrow indicating a submenu or the three dots for a dialog ... the cascading submenu opening in an attached menu window and not all in the same box, getting lost ...
  • I further miss that there is no icon for the grids or an indication which step grid I'm currently using (before I start moving around and the grid shows up).

  • I miss that Front, Left, Right, ... icons I got used to in LDView, which are much faster then the compass in the bottom left-hand corner.
The menu system indeed could use some improvements. the main reason it is as it is comes from the fact I initially wanted them to be pin-able and visible in OpenGL fullscreen mode. I also wanted to include none simple text item ones at some point (e.g. the compass it self) but this never took off.

I'll try to find a way to add at least the '>' arrows to submenu items, '...' is already used for dlg ones unless I forgot one.

I'll also look into making it possible to (optionally) let them act more like normal windows by opening submenus alongside their parents etc.

As icons for left/top etc those you can add to the menubar by providing png images your self.


Willy Tschager Wrote:Sorry for the rant, it's just that I've got the impression to get nowhere and didn't no why,w.
Don't worry, All comments / suggestions are welcome / appreciated.
Reply
Re: LDCad 1.6 suggestions/plans
The non-native look and feel is probably my biggest impediment with LDCad. I guess I'm more resistant to change than I thought or I'm just getting old.
Reply
Re: LDCad 1.6 suggestions/plans
Orion Pobursky Wrote:... or I'm just getting old.

Welcome to the club!

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
Yup. Average age at work is 23. I'm quite a bit more than that...
Reply
Re: LDCad 1.6 ROTSTEP feedback
I've been working on adding ROTSTEP support to the 1.6 version.

But I have never used the meta myself so I would appreciate some feedback / info about it.

This is what I got so far: screenshot

I find the angle properties very limiting, (especially the z control as shown in the picture).

Maybe I'm using it wrong, so what values are used often / in normal situations?

Also does anyone know the best/easiest way to extract the angles from an existing rotation matrix?

This is what i use for setting up the matrix (as described in the MLCAD spec doc).

Code:
void TLDStepMetaLine::getRotStepRotationMatrix(const double xAngle, const double yAngle, const double zAngle, TGLMatrixd &matrix) {

  //Uit rotstep spec doc
  const double wx=deg2Rad(xAngle);
  const double wy=deg2Rad(yAngle);
  const double wz=deg2Rad(zAngle);

  const double s1=sin(wx);
  const double s2=sin(wy);
  const double s3=sin(wz);

  const double c1=cos(wx);
  const double c2=cos(wy);
  const double c3=cos(wz);

  matrix.initFromLDraw(
    0.0, 0.0, 0.0, //xyz
    c2*c3, //a
    -c2*s3, //b
    s2, //c
    c1*s3+s1*s2*c3, //d
    c1*c3-s1*s2*s3, //e
    -s1*c2, //f
    s1*s3-c1*s2*c3, //g
    s1*c3+c1*s2*s3, //h
    c1*c2); //i
};

Any feedback / help is welcome.


Attached Files Thumbnail(s)
   
Reply
Re: LDCad 1.6 ROTSTEP feedback
Roland Melkert Wrote:Also does anyone know the best/easiest way to extract the angles from an existing rotation matrix?
I think I solved this, but if anyone knows a better method...

Code:
void TLDStepMetaLine::getRotStepAngles(const TGLMatrixd &matrix, double &x, double  &y, double &z, const int roundTo) {

  x=atan2(matrix.array2D[2][1], matrix.array2D[2][2]);

  const double c2=sqrt(SQR(matrix.array2D[0][0])+SQR(matrix.array2D[1][0]));
  y=atan2(-matrix.array2D[2][0], c2);

  const double s1=sin(x);
  const double c1=cos(x);
  z=atan2(s1*matrix.array2D[0][2]-c1*matrix.array2D[0][1], c1*matrix.array2D[1][1]-s1*matrix.array2D[1][2]);

  //allemaal neg nav de sign flips in de ROTSTEP spec.
  x=-rad2Deg(x);
  y=-rad2Deg(y);
  z=-rad2Deg(z);

  if (roundTo>0)
  {
    x=((int)round(x/roundTo))*roundTo;
    y=((int)round(y/roundTo))*roundTo;
    z=((int)round(z/roundTo))*roundTo;
  }
};
Reply
Re: LDCad 1.6 ROTSTEP feedback
I never used ROTSTEP, but about the question "Also does anyone know the best/easiest way to extract the angles from an existing rotation matrix?", attached you can find the Excel file I use to convert angles to matrix and vice versa (second sheet), plus some useful trigonometric formulas to estimate the angles to be applied to pieces (first sheet).

You can paste in B2 the rotation matrix copied from LDCad and see the results in the B13Big Grin15 range (choose the axis sequence you prefer), or obtain the resulting rotation matrix in B28, from the angles applied in the x-z-y order from the B19:B21 cells.

Note that the 2D arctangent in Excel uses the arguments in reversed order in respect to other programming languages and math bibliography.

I don't know if this is the easiest/best way to obtain them, I have no PhD in mathematics :-P
Ignore the round formula.

Hope this can help you

EDIT:
Oops, just saw you already found a solution.. I have not yet studied your formulas, but I have not seen a check condition for the +/-90 degrees singularity. Have you checked the rotation matrix 0 -1 0 1 0 0 0 0 1?
Reply
Re: LDCad 1.6 ROTSTEP feedback
TestOne Wrote:EDIT:
Oops, just saw you already found a solution.. I have not yet studied your formulas, but I have not seen a check condition for the +/-90 degrees singularity. Have you checked the rotation matrix 0 -1 0 1 0 0 0 0 1?
It gives x=0 y=0 z=90.

I applied this document in the extraction function.

I just needed to switch the matrix col/rows (due to OpenGL). And flipped the resulting angle signs to compensate for the minor differences in building the matrix in the first place as dictated by the ROTSTEP spec.

edit: used the wrong matrix to test, xyz values corrected.
Reply
Re: LDCad 1.6 ROTSTEP feedback
Lovely!
Macro's look cool and very handy.
The explode is very nice too!
Jaco van der Molen
lpub.binarybricks.nl
Reply
Re: LDCad 1.6 scripting preview clip
Hi all,

I've been working on the new scripting extensions now and then and would really like some feedback on the api / default tool/sample collection.

A short (~3 min) clip: https://youtu.be/xP-d-A6SmnE

The main script used in it does technic engine piston placement magic for the current model.

It also shows the new global animation feature.

Below is the source of the engine placement script, any thoughts suggestions are welcome.

edit: script as attachment as the bbcode messes with the [ i ] references.


Attached Files
.txt   script.txt (Size: 4.34 KB / Downloads: 1)
Reply
Re: LDCad 1.6 scripting preview clip
The video is awesome (of course!)
As for the script... I was able to follow most of what happens here, but it's difficult for me to tell more without a bit of experimentation...
Reply
Re: LDCad 1.6 scripting preview clip
While a global acting script works great here, I think it would be interesting to be able to restict scope to current selection. Access to selection order would be useful too, eg. to write a script that builds a technic chain around currently selected gears.
Reply
Re: LDCad 1.6 scripting preview clip
Philippe Hurbain Wrote:While a global acting script works great here, I think it would be interesting to be able to restict scope to current selection. Access to selection order would be useful too, eg. to write a script that builds a technic chain around currently selected gears.
This is possible using the new session:getSelection function, it basically returns a normal group (as internally the selection is technically just another group).
Reply
Re: LDCad 1.6 suggestions/plans
Looks super impressive to me. Also a huge time saver especially for all those angles and such required for the piston placements.

Seems like your only a baby step away from hitting a button and making those pistons animate within in the cylinders?
______________________________________________
OS = Ubuntu 14.04 LTS (64bit)
Reply
Re: LDCad 1.6 suggestions/plans
Jason Smith Wrote:Seems like your only a baby step away from hitting a button and making those pistons animate within in the cylinders?
Yes only thing needed would be to keep track of the piston positions while the axle is rotating, then you could apply the same orientation calculations etc.

Maybe I'll add a new example model using that Smile
Reply
Re: LDCad 1.6 suggestions/plans
I just remembered a feature I'd like to see in LDCad. I believe I talked about this one earlier too: mirror building. Just like in SR3D Builder. Where you set up a mirror where you like, and then the software mirrors on side B what you're placing on side A.

Most parts can be mirrored without problems, but a bunch have a mirrored copy (wings etc.). I'm happy to help with such a list Smile
Reply
Re: LDCad 1.6 suggestions/plans
Merlijn Wissink Wrote:I just remembered a feature I'd like to see in LDCad. I believe I talked about this one earlier too: mirror building. Just like in SR3D Builder. Where you set up a mirror where you like, and then the software mirrors on side B what you're placing on side A.
I have been thinking about that but I'm probably going the cheap route and only offer a selection based axis flip. Problem is there might be different mirrored part versions for the different axis' but I might be overthinking that.

The basic flipping can even be done with the new macro scripting feature. But an list of mirrored parts would probably work better combined with a integrated feature.
Reply
Re: LDCad 1.6 suggestions/plans
SR3D Builder's MirrorList.txt could be a nice starting point. I've attached it as example.


Attached Files
.txt   MirrorList.txt (Size: 11.79 KB / Downloads: 1)
Reply
Re: LDCad 1.6 suggestions/plans
I was hoping to solve this by adding a new meta you can use in the shadow library. Only problem I need to solve for that is how to handle inheritance so e.g. left/right wings can be handled in the shared subpart etc.
Reply
Re: LDCad 1.6 suggestions/plans
Maybe this is already part of the setting and I couldn't find it. Please correct me if I'm wrong but the categories show the first part which corresponds alphabetically to the category. While Animal, Arch and Brick have a meaning you cannot tell at first sight that the 93609.dat leads to the Minifig category or why on earth the Duplo Plate 1x2 with Overhang should give an obvious clue for plates.

I wish there were a some sort of setting where by default some parts have been selected as representative for each category and where you also have the chance to change them or that the thumbnails also show the category's name.

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
Willy Tschager Wrote:Maybe this is already part of the setting and I couldn't find it. Please correct me if I'm wrong but the categories show the first part which corresponds alphabetically to the category. While Animal, Arch and Brick have a meaning you cannot tell at first sight that the 93609.dat leads to the Minifig category or why on earth the Duplo Plate 1x2 with Overhang should give an obvious clue for plates.
Those are generated groups based upon their !CATEGORY meta using the first part in the list as their mascot. So you could wonder why is a duplo part in the plate category to begin with (as there is a duplo one).

These weird category quirks and the need for sub categories is the reason I added the sorted top level group. Those offer all the options you describe through the corresponding pbg files.

Willy Tschager Wrote:I wish there were a some sort of setting where by default some parts have been selected as representative for each category and where you also have the chance to change them or that the thumbnails also show the category's name.
Letting the user optionally change the group mascots would be a nice extra feature, I might add that in one of the alpha's. Thanks for the idea.
Reply
Re: LDCad 1.6 - unofficial parts handling
A while back someone asked to add some sort of an indication to show which parts are unofficial ones. I've added this by adding a small label in the bin cells.

The thing I'm wondering about... do people think this should be different for parts inside a mpd or maybe even different per unofficial source?

See below attached png for the current situation.


Attached Files Thumbnail(s)
   
Reply
Re: LDCad 1.6 - unofficial parts handling
I think what you have is fine.

However, you might consider instead having a yellow triangle with an exclamation mark in the middle, and when the user either clicks on that or hovers over it, have it show what it's warning about. For now, it could just say something like "Unofficial Part", but in the future you could add other warnings. Or, you could give more details in the warning, like you were asking about.
Reply
Re: LDCad 1.6 - unofficial parts handling
The "someone" was me. Looks good to me but I would add an additional visual warning by colouring the background of the parts in question. Say a lighter blue or a shade of red, ...

As for the MPD I do not have an opinion. To me it is sufficient that MPDCenter does its job for the OMR.

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 - unofficial parts handling
How do LDCad choose between an Official Part and a recycled, updated Unofficial Part?
Reply
Re: LDCad 1.6 - unofficial parts handling
Magnus Forsberg Wrote:How do LDCad choose between an Official Part and a recycled, updated Unofficial Part?
This depends on the search order of your libraries and if a copy of it is present in the mpd.

The order is:

MPD content.
folder the mpd is located in.
Library paths as given in the 'prefs\ldraw\search (library) paths' dialog.
Reply
Re: LDCad 1.6 - unofficial parts handling
So, if I have an updated version of an (official) part in my unofficial folder, I have to place the unofficial path above the official one?

Or, If I put it like this: The updated version will not be used, or found, or be indicated by a UnOff flag, as long as the old version is present in the official part folder, if that is the first folder to be searched. Right?
Reply
Re: LDCad 1.6 - unofficial parts handling
Magnus Forsberg Wrote:So, if I have an updated version of an (official) part in my unofficial folder, I have to place the unofficial path above the official one?
Yes the label will only be rendered if the referenced part has the appropriate LDRAW_ORG/"0 UNOFFICIAL PART" meta settings or if no meta is present and it is located in an unofficial library location.

Which part is referenced is determined by the mentioned search order. So if you want the unofficial parts to be dominant all you have to do is make sure its location is listed above the official one(s).
Reply
Re: LDCad 1.6 - unofficial parts handling
Roland Melkert Wrote:The thing I'm wondering about... do people think this should be different for parts inside a mpd or maybe even different per unofficial source?
What about adding this as a configuration item of the ldraw path object: a color of background in a partbin (in addition to "Type", "Location" and "shadow"). Then, for example, there may be default values according to the Type but one can change it to whatever he/she wants.
Reply
Re: LDCad 1.6 - unofficial parts handling
Travis Cobbs Wrote:you might consider instead having a yellow triangle with an exclamation mark in the middle, and when the user either clicks on that or hovers over it
I like this idea, I wanted to add 'balloons' to the gui anyway in order to improve the hint system. At that time I could upgrade this feature too.


Willy Tschager Wrote:I would add an additional visual warning by colouring the background of the parts in question. Say a lighter blue or a shade of red, ...
I'm not sure about using different backgrounds, I did a test of that (usiing paint) and it seemed very ugly to me, maybe using different text/icon colors instead would be better. I already changed the yellow into light green if the unofficial part is embedded in the mpd.


Milan Vančura Wrote:What about adding this as a configuration item of the ldraw path object: a color of background in a partbin (in addition to "Type", "Location" and "shadow"). Then
I think Willy also suggested thins at some point. Like I wrote above I could do this for the text/icon colors.

Thanks for the feedback guys.
Reply
Re: LDCad 1.6 suggestions/plans
Feature request:

* Add the shortkey information to the status bar messages. Example, when hovering over the 2D/3D toggle in the compass:

Toggle between 2D (Orthographic) and 3D (Perspective) projection - [v]

or

Start a new model in a new file - [ctrl+n]

* Add a menu with the list of the shortkeys without the need to check them online
* A setting to get rid off the "Getting started" dialog or at least add a "Clear screen" to it where I do not get any further dialog.

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
Adding to the list.

* I want to search any/all bins after a partnumber? Or is that only me, being a part author, knowing to many partnumbers?
* Would it be possible to rotate the part in the bins? I want to see the pattern/sticker sometimes placed on the backside of the part.
Reply
Re: LDCad 1.6 suggestions/plans
Willy Tschager Wrote:Add the shortkey information to the status bar messages. Example, when hovering over the 2D/3D
Great suggestion, I'll add this asap.

Willy Tschager Wrote:Add a menu with the list of the shortkeys without the need to check them online
The 1.6 version has a hotkey configuration dialog it also shows the current bindings. I was also planning to add an option to generate a html overview. Mostly so I can copy paste it in my own documentation website without having to double check everything each time I add something to the program Smile

Willy Tschager Wrote:A setting to get rid off the "Getting started" dialog or at least add a "Clear screen" to it where I do not get any further dialog.
I could add this but why would you want that? the dialog goes away as soon you open a (new) file no matter how you do that.

Magnus Forsberg Wrote:I want to search any/all bins after a partnumber? Or is that only me, being a part author, knowing to many partnumbers?
This is already possible but disabled by default, as searching the name meta would pollute searching on e.g. stud counts which most people do. You enable it by opening the advanced search dialog (click the filter text rectangle), over there check the 'name' item in the 'match on' panel. You probably also want to click the 'apply to all' and 'set as default' in the options menu (right bottom) afterwards.

Magnus Forsberg Wrote:Would it be possible to rotate the part in the bins? I want to see the pattern/sticker sometimes placed on the backside of the part.
This is also already possible, hold the ctrl key down while clicking a bin cell it then acts like the trackball rotation in the main editor.
Reply
Re: LDCad 1.6 suggestions/plans
Roland Melkert Wrote:
Willy Tschager Wrote:A setting to get rid off the "Getting started" dialog or at least add a "Clear screen" to it where I do not get any further dialog.
I could add this but why would you want that? the dialog goes away as soon you open a (new) file no matter how you do that.

I guess it all boils down to that I'm annoyed by this dialog:

   

When I wanna build I don't wanna think about names and description and such ... I just wanna build! This is most true when I don't even wanna save what I had build, when I launch the prog to just try something out. It might sounds silly but this dialog is a mouse click too much, it's in between the great idea I have in my mind and the workbench on the screen ...

What I want is a "ready to drag'n'drop screen". In case I open a file from the disk I get no further Save message in case I haven't added anything. You can present that header thing before I save but not at the beginning.

w.
LEGO ergo sum
Reply
Re: LDCad 1.6 suggestions/plans
I kind of agree with Willy on this one, when I started using LDCad I found it a bit frightening... now I just press esc as soon as I see it, so its usefulness for me is extremely doubtful. Would be much better to show it on save indeed.
In the same spirit (avoid unnecessary complexity to casual user) I'd simplify the subfile creation startup, just pop a window asking for a submodel name, along with "OK", "discard" and "Edit header" buttons. And please, don't create a dummy submodel if "discard" is pressed Wink
Reply
Re: LDCad 1.6 suggestions/plans
I complete agree with this.
Reply
Re: LDCad 1.6 suggestions/plans
Ah I see, I though Willy was talking about the 'getting started' window listing the recent files etc.

I could make this dialog optional but wouldn't that cause people to forget entering their author name? Resulting in having to do it n times afterwards.

Maybe I should ask to keep showing the dialog when you first close it instead like the default name etc.
Reply
Re: LDCad 1.6 suggestions/plans
No. We are saying that if this dialog is missed at the moment of opening the file we expect it appearing at the moment of the first attempt to save it. So nothing gets lost, there will be the same window asking you for the author name, license etc...
It's just a matter of taste: one wants to be asked at the beginning and others think it may be delayed to the moment of (first) saving action. For fast sketches.

It's not a big issue for me but it makes a good sense.
Reply
Re: LDCad 1.6 suggestions/plans
Quote:* I want to search any/all bins after a partnumber? Or is that only me, being a part author, knowing to many partnumbers?
Click on the search field, and in the popup window check "name". You can make this the default behaviour (set as default below options button). But I don't like this that much as default because it interferes when I search for say a 16L beam.
Quote:* Would it be possible to rotate the part in the bins? I want to see the pattern/sticker sometimes placed on the backside of the part.
Ctrl+drag on a bin. Right click + set as default if you want to keep orientation between bin tabs
edit: Roland was faster !!!
Reply
Re: LDCad 1.6 suggestions/plans
OK, thanks.
Rotating the parts was easy, but I don't get the search method. Checking the Name and entering a part number gives me nothing.
Reply
Re: LDCad 1.6 suggestions/plans
Magnus Forsberg Wrote:but I don't get the search method. Checking the Name and entering a part number gives me nothing.
You probably need to use the generic search group as the filter always acts on the current group's content only.
Reply
Re: LDCad 1.6 suggestions/plans
Hi.

It depends on where you try to search. If you have a part bin of some category open, the "search" field works as a filter for this category of parts only. If you want to search in all parts, select the "Search" bin. Then, type the desired part number and hit Enter. The advanced search window appears. Tick the "Name" checkbox and click OK. You should see your part(s) in the search results.

At least this is how I use it for about a year.
Reply
Re: LDCad 1.6 suggestions/plans
Got it working now.
Thanks again.
Reply
RE: LDCad 1.6 suggestions/plans
What about possibility to insert a brckground image in 2D view, for this kind of work: http://www.eurobricks.com/forum/index.ph...pic=128848
Reply
RE: LDCad 1.6 suggestions/plans
(2016-04-10, 18:25)Philippe Hurbain Wrote: What about possibility to insert a brckground image in 2D view, for this kind of work: http://www.eurobricks.com/forum/index.ph...pic=128848

That would be a helpful feature indeed. I had thought about this as well, but then forgot to post it here. Wink

I do use Photoshop to check models against blueprints like this, but having the blueprint right there in LDCad would speed up things quite a bit.
----------
my flickr
Reply
RE: LDCad 1.6 suggestions/plans
Shouldn't be to hard to add, I'll add it to the low prio list.

In the mean time you could fake this using a textured quad.
Reply
RE: LDCad 1.6 suggestions/plans
(2015-12-29, 22:40)Roland Melkert Wrote: But I'm also open for any ideas / suggestions users might have so please don't hesitate to post some of yours in this thread.

Support for a SpaceNavigator/Spacemouse would be great.

I got used to them in a CAD system a while ago and miss them much with LDCad.
Reply
RE: LDCad 1.6 suggestions/plans
Hi Everybody. I'm realy like LDcad and it's almost suitable for my needs. But is there a way to create arrows in LDcad 1.6 like in MLcad or better? Or maybe I can convert "LDcad permanent marker meta " into arrows which can be understood by LPub?
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-11, 12:56)Art Wrote: Hi Everybody. I'm realy like LDcad and it's almost suitable for my needs. But is there a way to create arrows in LDcad 1.6 like in MLcad or better? Or maybe I can convert "LDcad permanent marker meta " into arrows which can be understood by LPub?

I have considered adding an arrow generator in much the same way there are now path and spring generators but other features got priority.

In the meantime you can use a collection of unofficial parts for this as most arrows would be the same anyway. These can be arrows generated by e.g. MLCad or hand draw your self (using the basic LDraw format isn't that hard). Only requirement from LDCad's point of view would be to make sure those files are standalone parts  (so one arrow per file). Using 1.6 you can always embed those files into a mpd later on.

I still might add an arrow generator to 1.6 (>=beta 2) as it is an low impact feature. But nothing is set in stone Smile
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-11, 17:26)Roland Melkert Wrote:
(2016-08-11, 12:56)Art Wrote: Hi Everybody. I'm realy like LDcad and it's almost suitable for my needs. But is there a way to create arrows in LDcad 1.6 like in MLcad or better? Or maybe I can convert "LDcad permanent marker meta " into arrows which can be understood by LPub?

I have considered adding an arrow generator in much the same way there are now path and spring generators but other features got priority.

In the meantime you can use a collection of unofficial parts for this as most arrows would be the same anyway. These can be arrows generated by e.g. MLCad or hand draw your self (using the basic LDraw format isn't that hard). Only requirement from LDCad's point of view would be to make sure those files are standalone parts  (so one arrow per file). Using 1.6 you can always embed those files into a mpd later on.

I still might add an arrow generator to 1.6 (>=beta 2) as it is an low impact feature. But nothing is set in stone Smile
Thank You Roland for your reply and your great job. So I'll be waiting for this future. Hope it'll be not long in coming. Smile
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-11, 17:26)Roland Melkert Wrote: In the meantime you can use a collection of unofficial parts for this as most arrows would be the same anyway. These can be arrows generated by e.g. MLCad or hand draw your self (using the basic LDraw format isn't that hard). Only requirement from LDCad's point of view would be to make sure those files are standalone parts  (so one arrow per file). Using 1.6 you can always embed those files into a mpd later on.

Arrows and other helper files might downloaded from my site:

http://www.holly-wood.it/ldraw/helper-en.html

w.
LEGO ergo sum
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-12, 15:44)Willy Tschager Wrote: Arrows and other helper files might downloaded from my site:

I've used these for many years now. Very good indeed.

I have made many simple parts, like these helpers, on my own, mostly using only type 2 lines. Why can't I see them in LDCad ?
Willy has on his site a very useful helper called Her.dat. That one is not visible at all in LDCad, even though it uses some type 3 lines.

I've placed all these Helpers in a separate folder called ../Helpers/Parts/.. , but I can't get LDCad to read that folder.
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-15, 22:07)Magnus Forsberg Wrote: I have made many simple parts, like these helpers, on my own, mostly using only type 2 lines. Why can't I see them in LDCad ?
Willy has on his site a very useful helper called Her.dat. That one is not visible at all in LDCad, even though it uses some type 3 lines.

I've placed all these Helpers in a separate folder called ../Helpers/Parts/.. , but I can't get LDCad to read that folder.

To add unoffical parts to LDCad's inventory you must add an (un)offical library location to the search paths.

To do this select the main library and click 'new' this will copy the line and append it at the bottom. Next change its type to 'unofficial library'  and then change its 'location' using the browse folder/archive button (use archive if you want to add a zip file). In your case use the folder one and point it to the (absolute location of) ../Helpers   if this folder hasn't got a 'p' subfolder it will warn you about it but if so chooise 'use it anyway'.

See also
http://www.melkert.net/LDCad/faq#faq_unoflib
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-16, 19:06)Roland Melkert Wrote: To add unoffical parts to LDCad's inventory you must add an (un)offical library location to the search paths.

I tried all of these steps. It didn't work, but then I noted that I had it set as a "User Folder".
When I changed it to be a "Unofficial library", my parts started to show up after a restart of the program.

When do I use the "User Folder" option?
Reply
RE: LDCad 1.6 suggestions/plans
(2016-08-17, 16:49)Magnus Forsberg Wrote: When do I use the "User Folder" option?

You can use it to point to your central models folder, this makes it possible to use any of them in other models without creating long/absolute path references when the new model is at a different location (just like the .dat's but without the p and parts subfolders).
Reply
RE: LDCad 1.6 suggestions/plans
Two things that have frustrated me:

1) No manual zoom.  I have to hit Z or C and pray I have a nice zoom capacity.
2) Although one can hide parts, there is no way to make parts semi-transparent outside of nested editing mode.  Is it possible to allow arbitrary parts to be semi-transparent?
Reply
RE: LDCad 1.6 suggestions/plans
Welcome here!

(2017-10-21, 8:30)Karen M Wrote: Two things that have frustrated me:
1) No manual zoom.  I have to hit Z or C and pray I have a nice zoom capacity.
2) Although one can hide parts, there is no way to make parts semi-transparent outside of nested editing mode.  Is it possible to allow arbitrary parts to be semi-transparent?
1/ Not sure what you mean with "manual zoom". Mouse wheel does a good zooming job for me...
2/ Yes, could be handy. Sometimes I change a part color to trans clear for that purpose, but it's a bit cumbersome (and you need to change back color after).
Reply
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 1 Guest(s)
Forum Jump:


Users browsing this thread: 1 Guest(s)