LDCad 1.6 suggestions/plans


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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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
#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 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 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 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 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 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 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 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 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
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
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 15 Guest(s)