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.

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?

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

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.

And you are right it's a red/white one only, I've must have changed it a some point

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.

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.

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.

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.

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.

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.

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.

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

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

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).

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 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 (Maybe agree with LPub3D maintainer on a new syntax, too?)

+1 for this one
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...

+1 for this one
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.

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.

Roland Melkert Wrote:Very nice video some very creative editing / magic right there

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 ) my mistake.

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.

Philippe, the fair answer would be "the first app my Linux distro found for me" 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.

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...

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 (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 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.)

Milan Vančura Wrote:Please, does anybody have an idea how GUI for this should look? Video not needed 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.

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

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 [/quote]

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

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

I hope it is 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.

Milan Vančura Wrote:I hope it is 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.

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)?

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

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)?

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.

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.

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

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.

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.

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.

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.

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.

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.

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
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.

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
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.

Milan Vančura Wrote:This reminds me a feature I wish so long time I forgot to ask
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).

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.

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.

Allow the (LDCad) default camera angle to be specified/changed. Perhaps set its initial value to whatever the corresponding angle is in LPUB.

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.

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.

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.

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)?

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.

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

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)...

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

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.

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

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

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.

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.

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.

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?

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.

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?

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

Thanks for the help Roland and Milan! Hopefully I get it working tomorow

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.

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.

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.

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 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.

I do want to add a better toolbar at some point but it indeed isn't high prio at the moment.

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.

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....

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?

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.

--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()

- 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?)

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 (see Milan's post below) so I will add some part bin (group) manipulation objects.[/quote]

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.

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.

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).

Not sure anyone else would find these useful, but I figured I'd put them out there and see. 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.

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" 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... ;-)

+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).

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.

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.

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.

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).

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.

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? :-)

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.

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 B1315 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?

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?

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.

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.

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).

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

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.

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.

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.

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.

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.

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?

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).

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.

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.

* 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.

* 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.

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

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.

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.

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

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.

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 !!!

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.

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?

(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

(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

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.

(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.

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.

(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'.

(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.

(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).

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?

(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).

(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).

1// Well there's my problem! Because I can't use a standard mouse I tend to disable mouse wheel on my pointing device and expect numeric +/- keys to zoom in and out. I'll try re-binding hot-keys. Thanks team!

Can the "main" model always be the first in the row of submodels in both part bins and modellist

Now models is sorted alphabetically by name and "main" is somewhere betweed L and N.
Building a model that has named submodels it can be hard to find Main.

Lately I just name my submodels "submodel-1, 2, 3" ect. like LDCad suggests when creating a submodel, but when it comes to further process the model file in LPub3D it is far more conveinient to have named submodels.

I know Ctrl-end activates the main model, but when using external files this does not work.

Can the "main" model always be the first in the row of submodels in both part bins and modellist

Now models is sorted alphabetically by name and "main" is somewhere betweed L and N.
Building a model that has named submodels it can be hard to find Main.

Lately I just name my submodels "submodel-1, 2, 3" ect. like LDCad suggests when creating a submodel, but when it comes to further process the model file in LPub3D it is far more conveinient to have named submodels.

I know Ctrl-end activates the main model, but when using external files this does not work.

Hope you know what I mean?

You could try editing or copying the "allModelsUsedByCur.pbg" (I assume you use that bin as you say its non mpd) and set sortOn=none

Can the "main" model always be the first in the row of submodels in both part bins and modellist

Now models is sorted alphabetically by name and "main" is somewhere betweed L and N.
Building a model that has named submodels it can be hard to find Main.

Lately I just name my submodels "submodel-1, 2, 3" ect. like LDCad suggests when creating a submodel, but when it comes to further process the model file in LPub3D it is far more conveinient to have named submodels.

I know Ctrl-end activates the main model, but when using external files this does not work.

Hope you know what I mean?

You could try editing or copying the "allModelsUsedByCur.pbg" (I assume you use that bin as you say its non mpd) and set sortOn=none

Hmm, tried this, but does not seem to have Any effect on sorting.
Perhaps I used the wrong bin....
are the more values for sortOn?

Can the "main" model always be the first in the row of submodels in both part bins and modellist

Well I wish I could sort the order via GUI like I was used to in MLCad and since you already have all those .pbg for the category I wish I could also edit those (or LDCad would come with a set of predefined parts shown in the Parts Bin Window) Honestly that "42236.dat - Duplo Plate 1 x 2 with Overhang" as representative for the Plates category is ridiculous.

I can't help a Duplo part being in the Plate category (Chris?/Philo?), the def by cat bins use the first part as the mascot. Those groups are only a fallback anyway, as the 'sorted' branch is the one intended for normal modelling work and thus has more (handpicked) recognizable mascots.

Can the "main" model always be the first in the row of submodels in both part bins and modellist

Now models is sorted alphabetically by name and "main" is somewhere betweed L and N.
Building a model that has named submodels it can be hard to find Main.

Lately I just name my submodels "submodel-1, 2, 3" ect. like LDCad suggests when creating a submodel, but when it comes to further process the model file in LPub3D it is far more conveinient to have named submodels.

I know Ctrl-end activates the main model, but when using external files this does not work.

Hope you know what I mean?

Hi Jaco,

one possible approach is to name of the sub-models with some form of numeric prefix. I put a two-part numeric prefix as part of my models' name and my main model is always numbered 0. For example;

This allows me to control the sequence and group "like" sub-models together. Where a sub-model is formed by a group of other smaller sub-models, I name the top of the sub-model group with a "-00-" (e.g. 010-00-foundation) and the smaller related sub-models in increments of 10 (e.g. 010-10-foundation_01). I use increments of 10 for the sub-models as it provides an allowance in the numbering if a sub-model is subsequently split (e.g. I can add sub-models with prefixes of 010-12- and 010-14 without requiring any renumbering).

Can the "main" model always be the first in the row of submodels in both part bins and modellist

Now models is sorted alphabetically by name and "main" is somewhere betweed L and N.
Building a model that has named submodels it can be hard to find Main.

Lately I just name my submodels "submodel-1, 2, 3" ect. like LDCad suggests when creating a submodel, but when it comes to further process the model file in LPub3D it is far more conveinient to have named submodels.

I know Ctrl-end activates the main model, but when using external files this does not work.

Hope you know what I mean?

Hi Jaco,

one possible approach is to name of the sub-models with some form of numeric prefix. I put a two-part numeric prefix as part of my models' name and my main model is always numbered 0. For example;

This allows me to control the sequence and group "like" sub-models together. Where a sub-model is formed by a group of other smaller sub-models, I name the top of the sub-model group with a "-00-" (e.g. 010-00-foundation) and the smaller related sub-models in increments of 10 (e.g. 010-10-foundation_01). I use increments of 10 for the sub-models as it provides an allowance in the numbering if a sub-model is subsequently split (e.g. I can add sub-models with prefixes of 010-12- and 010-14 without requiring any renumbering).

I think you may find that was perhaps Willy's way of saying he doesn't like my approach in naming sub-models rather than actually advocating a return to 8.3 filenames.

David

I'm fine with your naming for what it's worth. I find it absurd that such a fine and powerful tool like LDCad requires a naming convention at all. The 10243 - Parisian Restaurant I'm currently working on is named 10243 - Ground floor - Column, 10243 - First floor - Balcony, 10243 - Roof and I don't see why I should name them differently just because a prog cannot handle them.

(2017-11-13, 20:37)David Manley Wrote: I think you may find that was perhaps Willy's way of saying he doesn't like my approach in naming sub-models rather than actually advocating a return to 8.3 filenames.

Ah missed that

(2017-11-13, 22:07)Willy Tschager Wrote: I'm fine with your naming for what it's worth. I find it absurd that such a fine and powerful tool like LDCad requires a naming convention at all. The 10243 - Parisian Restaurant I'm currently working on is named 10243 - Ground floor - Column, 10243 - First floor - Balcony, 10243 - Roof and I don't see why I should name them differently just because a prog cannot handle them.

It still needs rules for sorting, current version uses natural sorting on description by default (so "1, 2, 10, 11, 20" without the need of a 0 prefix for single digits).

(2017-11-13, 22:19)Roland Melkert Wrote: It still needs rules for sorting, current version uses natural sorting on description by default (so "1, 2, 10, 11, 20" without the need of a 0 prefix for single digits).

Maybe sort on keywords?, or introduce a new meta for forcing sorting?

No, no, no, I'm not looking for any kind of automated sorting at all. I'd like something that leaves the order entirely to the user:

with the prog rearranging and writing the 0 FILE statements in the chosen order.

(2017-11-13, 22:19)Roland Melkert Wrote: It still needs rules for sorting, current version uses natural sorting on description by default (so "1, 2, 10, 11, 20" without the need of a 0 prefix for single digits).

Maybe sort on keywords?, or introduce a new meta for forcing sorting?

No, no, no, I not looking for any kind of automated sorting at all. I'd like something that leaves the order entirely to the user:

with the prog rearranging and writing the 0 FILE statements in the chosen order.

w.

Exactly what I was looking for.
"Sort" on hierarchy in the model file's structure, which is basically no sorting at all.

This allows me to control the sequence and group "like" sub-models together. Where a sub-model is formed by a group of other smaller sub-models, I name the top of the sub-model group with a "-00-" (e.g. 010-00-foundation) and the smaller related sub-models in increments of 10 (e.g. 010-10-foundation_01). I use increments of 10 for the sub-models as it provides an allowance in the numbering if a sub-model is subsequently split (e.g. I can add sub-models with prefixes of 010-12- and 010-14 without requiring any renumbering).

Regards,

David

OK, good suggestion. Nice approach. I will give this some thought. Thanks.