LDraw.org Discussion Forums
LDCad 1.6 suggestions/plans - Printable Version

+- LDraw.org Discussion Forums (https://forums.ldraw.org)
+-- Forum: LDraw Programs (https://forums.ldraw.org/forum-7.html)
+--- Forum: LDraw Editors and Viewers (https://forums.ldraw.org/forum-11.html)
+--- Thread: LDCad 1.6 suggestions/plans (/thread-18426.html)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20


Re: LDCad 1.6 macro scripting - Philippe Hurbain - 2016-01-28

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


Re: LDCad 1.6 suggestions/plans - Philippe Hurbain - 2016-01-28

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


Re: LDCad 1.6 macro scripting - Milan Vančura - 2016-01-28

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.


Re: LDCad 1.6 suggestions/plans - Jason McReynolds - 2016-01-28

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.


Re: LDCad 1.6 macro scripting - Roland Melkert - 2016-01-28

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


Re: LDCad 1.6 macro scripting - Roland Melkert - 2016-01-28

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.


Re: LDCad 1.6 suggestions/plans - Roland Melkert - 2016-01-28

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.


Re: LDCad 1.6 suggestions/plans - Jason Smith - 2016-01-30

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?


Re: LDCad 1.6 suggestions/plans - Roland Melkert - 2016-01-30

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


Re: LDCad 1.6 suggestions/plans - Jaco van der Molen - 2016-02-01

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