LDCad 1.6 Alpha 1 (win+linux)


LDCad 1.6 Alpha 1 (win+linux)
#1
I decided to share the current 1.6 Alpha version as I'm very keen to get some feedback, especially on the ROTSTEP stuff.

Get it here for windows or Linux

I only compiled the 64 bit Linux version, if someone needs the 32bit one let me know.

As this is a Alpha version it might be very unstable and backwards compatibility with the next alpha or even beta will not be guaranteed. So it is highly recommended to keep them separate from other releases.

This version includes the following major features:

Adjustable hotkey assignments.
Macro scripting.
Many scripting API extensions including many new lua objects.
Full ROTSTEP support.
Many tweaks and some small features, see change log below.

The rotstep rotation can be used while navigating through steps by enabling the new NSR/ASR option in the compass. There is also a new (changeable) shortcut ctrl+b which let you edit the current step's meta.

As a result of the hotkey changes some of the existing hotkeys might act slightly different or might be missing as I haven't had time to double check them all.


Full changelog:

Code:
--==1.6 Alpha 1 (30-April-2016)==--
Fixed:
- [GUI] Opening a new window now uses the mouse position correctly for its initial position.
- [GUI] Fixed misc refreshment issues when using a pinned down menu while switching window/views.
- [GUI] Right mouse clicks to open a menu will no longer fail to update active window.
- [Rendering] LDraw TEXMAP parts will no longer render wrong on OpenGL implementations demanding power of two sized textures.
- [Path] Quad validation during loading now uses the same restrains as the generator preventing some generated quads to be deemed 'non flat' during next file load.
- [Springs] Fixed conditional lines between sections.
- [Scripts] Changing the script for a model already associated with one will no longer crash the program.
- [Scripts] Assigning color 16 to a reference will no longer crash/hang the program.
- [Scripts] group:getRef() using an out of range index will no longer crash the program.
- [Scripts] Strings are no longer used as integers when e.g. '1234' is given as a parameter.
- [Scripts] ldc.group() or group:link() will no longer potentially hang / crash the program when used with the recursive option.
- [Scripts] ldc.subfile('someModel.ldr') will no longer result in an unlinked subfile if the 'someModel.ldr' is the editing sessions main model.
- [Scripts] vector:getSignedAngle() no longer returns wrong angles when the supplied vectors are not located on the plane the normal indicates.
- [PartBin] Remove facorite now works as it should.
- [PartBin] matrix:getInvertedPos and matrix:getInvertedOri results are no longer switched.
- [Editing] Inlining multiple items now applies the colors correctly for all items instead of just the first one.
- [Editing] Trackball rotation will no longer make the model disappear in certain situations where the mouse left the program window while rotating.
- [Editing] Double clicking an item in the missing files dialog will no longer crash the program.
- [Editing] The selection is no longer rendered at a wrong/different location in editing views while working with it in the source window.
- [Editing] Canceling a selection cloning action now also correctly update the source window.
- [Editing] Inserting a template will no longer always add it to the last step but to the current one like expected.
- [Editing] Moving a selection to a new submodel will now place the reference to that new model at the same location of the selection start.
- [Animations] Animation playback no longer fails to refresh some of the views while using split editor views.


Improved/Changed:
- [LDraw] You can now use a zip file without 'part' and 'p' folders in it as an unofficial library. It will use the root of the zip as if it where 'parts'.
- [Menus] Moved the editing pin/rectangle status item to the editing settings menu.
- [Menus] Changed the keyboard interaction mode item into radio items so each item can be assigned a hotkey.
- [GUI] As a result of the internal changes made for dynamic hotkeys the menubar will reset to a new default when upgrading to 1.6 the first time on an existing setup.
- [Editing] Removed the edit view interaction after adding content using the source window as it might be very confusing in mo
- [Editing] Copy/paste while using the source window will no longer use the copy paste options. It will work with the clipboard on a one on one basis more closely to a normal text editor.
- [Editing] All STEPPING logics will now see STEP metas as the end indication of a step as the new ROTSTEP support demands this kind of behavior.
- [Editing] Dropping an external file into LDCad while nothing is open yet will now load it immediately.
- [Editing] Moving a selection to a submodel will now offer to create an unofficial part if the selection contains scaled references.
- [SourceWin] Improved the step follow option, it now tries to bring the entire step into view.
- [Scripts] Upgraded to lua 5.3
- [PartBin] Added an optional unofficial part indication to bin cells.


Added:
- [GUI] All hotkeys can now be changed and almost any menu item/general action can be assigned one if needed. Management is done using the new hotkey config dialog.
- [LDraw] Added full support of the ROTSTEP meta as an extension to the plain STEP one.
- [Scripting] Macro scrips can now be used to extend LDCad's functionality dynamically. Management/execution of scripted features are available through the new script menu.
- [Scripting] Added the ldc.macro object for registering macro scripts.
- [Scripting] Added the ldc.dialog object for scripted user interaction.
- [Scripting] Added the ldc.action object for scripted callbacks to any hotkey configurable feature.
- [Scripting] Added the ldc.camera object for view rotation interaction.
- [Scripting] Added the ldc.srcLine object for generic LDraw line interaction.
- [Scripting] Added the ldc.view object for access to an editing window.
- [Scripting] Added the ldc.selection object for access to a current selection.
- [Scripting] Extended the ldc.group, ldc.subfile, ldc.refLine object to work with the new srcLine and selection features.
- [Scripting] Extended the ldc.matrix and ldc.vector object with some lowlevel access functions which make it easier to manipulate e.g. part orientations etc.
- [Scripts] Added a collection of default macro scripts containing a samples and tools script.
- [Animations] Dynamic parts will now be regenerated during playback if needed.
- [Editing] Added a property editor for the step meta (CTRL+B for the current step) which can be used to switch between a normal and ROTSTEP meta or set the rotation angles in a convenient way.
- [Editing] Added an option (hotkey 'B', and also in the compass) to enable the rotation stepping information during building step navigation.
- [Editing] Added an option to the header dialog which controls when and if it is shown for new subfiles.
- [Editing] Added 'all off lib parts', 'all unoff lib parts' and 'all unofficial parts' itmes to the selection menu.


Known issues and limitations:
- [LDraw] Scientific notation (e.g.. 1.323E12) is not supported in LDraw line content.
- [LDraw] LDraw files containing concave quads will render wrong as they are currently processed as if they are twisted.
- [Path] Using circle points at 180 degrees difference to each other might result in a weird rendering after reloading the file using it. The circular points are not designed for this kind of usage, try using bezier points instead.
- [Scripting] File changes to lua files will only be detected for the main script, if the script uses additional modules (include files) a manual reload will be required after changes to them.
- [Editing] During nesting mode some parts will be rendered at the wrong place while moving existing parts around, if those parts live in a sub model that's used more then once in the main model of the session. This is not a big issue because one set of the selection will be at the correct place, and your eye will be on them most of the time.
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#2
A lot of new things to play with Wink
Just got a crash...
- New model, add 3 parts
- select all -> scripts -> selection circle
- Hit del key -> crash.

Is there a better way to insert a rotstep than adding a step, then use properties to change type?
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#3
Wish of the day: have a mode where toolbar "goto previous/next step" show ROTSTEP orientation...
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#4
Thanks for reporting, I only tested with ctrl+z Smile

(2016-05-01, 14:00)Philippe Hurbain Wrote: Is there a better way to insert a rotstep than adding a step, then use properties to change type?

Not currently as I thought you would need to change the rotation anyways, you could write a macro script though :

Code:
function runTest()
 local sf=ldc.subfile()
 sf:addNewLine('0 ROTSTEP 0 45 0 REL')
end


Quote:Wish of the day: have a mode where toolbar "goto previous/next step" show ROTSTEP orientation...
You could add the 'enable/disable rotation stepping usage' option from the compass to the menu bar but it currently hasn't got an icon. It also has the default 'b' hotkey.
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#5
Quote:Not currently as I thought you would need to change the rotation anyways, you could write a macro script though :

Good point. I need to study the new scripting capabilities... I guess it's possible to open a dialog asking for rotation value(s) (My BIs mostly use rotstep rotation around y axis). Or perhaps automatically pop the properties dialog after inserting rotstep?

Quote:You could add the 'enable/disable rotation stepping usage' option from the compass to the menu bar but it currently hasn't got an icon. It also has the default 'b' hotkey.
"b" is exactly what I wished Smile
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#6
I noticed that in the editor, when in "Move" mode, CTRL + arrow keys no longer rotates the selection but instead moves the selection center. Is that a wanted change or a bug?
Also, would it be possible to use SHIFT + arrow keys for moving the selection center and CTRL + arrow keys for rotation? That way it would not be necessary to change modes at all as long as the keyboard is used.
----------
my flickr
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#7
(2016-05-04, 13:38)Niklas Buchmann Wrote: I noticed that in the editor, when in "Move" mode, CTRL + arrow keys no longer rotates the selection but instead moves the selection center. Is that a wanted change or a bug?
Also, would it be possible to use SHIFT + arrow keys for moving the selection center and CTRL + arrow keys for rotation? That way it would not be necessary to change modes at all as long as the keyboard is used.

That's a bug it should behave like 1.5 by default. It seems the ctrl+arrow binding are very wrong as they currently are bound to abs axis movements which they don't do ether Smile

As for the ctrl/shift option that you can configure yourself using the new hotkey config dialog (right click on the menu bar) in there locate the 'editing movement pin' group.

I will fix the bindings and the key group content for Alpha 2.
Reply
RE: LDCad 1.6 Alpha (buffer exchange preview)
#8
I added a very quick and dirty buffer exchange implementation but I'm in need of examples to test it.

If anyone has model heavily using buffer exchange could you please send it to me, it will be kept private if that is a worry.

I got the below working, there is no limit on the number of buffers but as the specification uses single letter names 26 is the indirect limit.

   
   
   

Also the whole buffer thing seems a bit limited as even this example needs you to add all pins and the two 1x6 bars twice???
Reply
RE: LDCad 1.6 Alpha (buffer exchange preview)
#9
I completed the feature.

   

Still looking for examples to test with though.
Reply
RE: LDCad 1.6 Alpha (buffer exchange preview)
#10
(2016-05-05, 22:58)Roland Melkert Wrote: Still looking for examples to test with though.

For what's worth:


.mpd   Playground_Building_Instructiony.mpd (Size: 569.09 KB / Downloads: 9)

.ldr   916_Building_Instruction.ldr (Size: 10.09 KB / Downloads: 2)

w.
LEGO ergo sum
Reply
RE: LDCad 1.6 Alpha (buffer exchange preview)
#11
Thanks willy,

These models also address another issue I'm working on: MLCad generated arrows etc.

Because of the way I optimize rendering those will cause the whole model to be seen as a part unless you move them to submodel/parts.

So I'm also looking into an easy solution for that using ether scripting and / or improved reorganize options.
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#12
(2016-05-04, 16:32)abRoland Melkert Wrote:
(2016-05-04, 13:38)Niklas Buchmann Wrote: I noticed that in the editor, when in "Move" mode, CTRL + arrow keys no longer rotates the selection but instead moves the selection center. Is that a wanted change or a bug?
Also, would it be possible to use SHIFT + arrow keys for moving the selection center and CTRL + arrow keys for rotation? That way it would not be necessary to change modes at all as long as the keyboard is used.

That's a bug it should behave like 1.5 by default. It seems the ctrl+arrow binding are very wrong as they currently are bound to abs axis movements which they don't do ether Smile

As for the ctrl/shift option that you can configure yourself using the new hotkey config dialog (right click on the menu bar) in there locate the 'editing movement pin' group.

I will fix the bindings and the key group content for Alpha 2.

Thanks for the tip about reconfiguring the binding, I hadn't tried that feature yet and it does fix the problem.

However, I think that the texts you used to describe what's being changed (like "Positive movement on the current dead plane axis") are very confusing and at least for me it was often completely unclear what they refer to.
----------
my flickr
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#13
(2016-05-08, 16:15)Niklas Buchmann Wrote: Thanks for the tip about reconfiguring the binding, I hadn't tried that feature yet and it does fix the problem.

However, I think that the texts you used to describe what's being changed (like "Positive movement on the current dead plane axis") are very confusing and at least for me it was often completely unclear what they refer to.

Yes that needs some tweaking, currently it does little more then list the hints.

I considered sorting it but I think the internal order has more logical grouping and also dictates the key processing order.

I will add a filter at some point though.

Any ideas on how to make it easier?
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#14
(2016-05-08, 17:03)Roland Melkert Wrote:
(2016-05-08, 16:15)Niklas Buchmann Wrote: Thanks for the tip about reconfiguring the binding, I hadn't tried that feature yet and it does fix the problem.

However, I think that the texts you used to describe what's being changed (like "Positive movement on the current dead plane axis") are very confusing and at least for me it was often completely unclear what they refer to.

Yes that needs some tweaking, currently it does little more then list the hints.

I considered sorting it but I think the internal order has more logical grouping and also dictates the key processing order.

I will add a filter at some point though.

Any ideas on how to make it easier?

Two things come to mind.
First, like I said, some of the texts are very confusing. I've been using LDCad for quite a while now I have no idea what the "dead plane axis" could be. Maybe some of the meaning is lost in translation?

To make changing the settings easier, I think it would help a lot if you had an input field next to each option where you can just type in the key you want instead of having to select it from the drop-down list at the top.
I also saw that I could select the same key for diffferent actions, how does LDCad handle this at the moment?
----------
my flickr
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#15
(2016-05-09, 13:05)Niklas Buchmann Wrote: Two things come to mind.
First, like I said, some of the texts are very confusing. I've been using LDCad for quite a while now I have no idea what the "dead plane axis" could be. Maybe some of the meaning is lost in translation?

To make changing the settings easier, I think it would help a lot if you had an input field next to each option where you can just type in the key you want instead of having to select it from the drop-down list at the top.
I also saw that I could select the same key for diffferent actions, how does LDCad handle this at the moment?
"dead plane axis" is the axis not on current editing plane. For example if you are using the top view editing plane, which lets you move stuff on the X and Z axis, the dead axis would be the Y axis. There is no no hotkey in <=1.5 for this but it has been asked for a couple of times. This way people can configure it however they want.

Same key for different actions is allowed as it is sometimes needed. For example the 'N' key in the "edit session" group. It is assigned to "Enable nested mode", but also to 'change the insertion target ....'. The first item using the key that can currently be applied will win in such cases. This is why the view order is currently the same as the internal loop as it uncovers these kinds of things.
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#16
(2016-05-09, 18:38)Roland Melkert Wrote: Same key for different actions is allowed as it is sometimes needed. For example the 'N' key in the "edit session" group. It is assigned to "Enable nested mode", but also to 'change the insertion target ....'

This is what confuses me again and again. Esp. because there is absolutely no visual effect of either 'N' action. How many times I found I had placed all parts to completely wrong (sub)model, for last 30 minutes or so? Really _many_ times.
If I may wish something, Roland, this is on very top of my wishlist: no hotkey with more than one function assigned and an automatic check the user did not create such situation manually. Something like in KDE: "This key is already used for <function>. Do you want to change <this assignnment> or <the other one>?"
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#17
Quote:To make changing the settings easier, I think it would help a lot if you had an input field next to each option where you can just type in the key you want instead of having to select it from the drop-down list at the top.
Completely agree. Selecting key in a drop-down is really painful...


Otherwise, I tried to change "editing movement pin", hoping to get direction keys working in fixed directions instead of directions depending on viewing direction (something I still find very confusing). I had some hope with "positive (...) movement on the X axis"... till I realized that is was about moving selection center, not the part Sad

I also had a quick test of bufexchg. Seems to work fine, except that parts count in (I) panel is now wrong... And I (still) miss the possibility to double click on source item to get properties. OK, alt+enter is workable Wink
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#18
(2016-05-10, 11:10)Philippe Hurbain Wrote: Completely agree. Selecting key in a drop-down is really painful...
I'll try to improve that.

(2016-05-10, 11:10)Philippe Hurbain Wrote: Otherwise, I tried to change "editing movement pin", hoping to get direction keys working in fixed directions instead of directions depending on viewing direction (something I still find very confusing). I had some hope with "positive (...) movement on the   X axis"... till I realized that is was about moving selection center, not the part Sad
I think you want to the 'Map arrow keys to screen' options in the prefs/editing menu. and/Or clear all the movement bindings in all 3 pin key groups and then bind pos/neg movement ones in the editing window group.

(2016-05-10, 11:10)Philippe Hurbain Wrote: I also had a quick test of bufexchg. Seems to work fine, except that parts count in (I) panel is now wrong... And I (still) miss the possibility to double click on source item to get properties. OK, alt+enter is workable Wink
Part counts etc aren't updated yet as I was wondering how to handle the parts in step counts.
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#19
Quote:I think you want to the 'Map arrow keys to screen' options in the prefs/editing menu.
Closer but not yet, movement still depends on the orientation of the view. What I'd like is that left/right move in X direction, up/dn in Z direction and pgup/pgdn in Y direction, regardless I am looking at the model from side, front, top or bottom.... Call me brain damaged if you like Wink
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#20
(2016-05-11, 8:41)Philippe Hurbain Wrote:
Quote:I think you want to the 'Map arrow keys to screen' options in the prefs/editing menu.
Closer but not yet, movement still depends on the orientation of the view. What I'd like is that left/right move in X direction, up/dn in Z direction and pgup/pgdn in Y direction, regardless I am looking at the model from side, front, top or bottom.... Call me brain damaged if you like Wink

They don't depend on the view if that option is disabled but to the horizontal/vertical axis of the current editing plane. This would by xy for front, zy for side and xz for top.

As some other people asked about that I added the new pos/neg movement ones in the editing window group. So if you assign those to the arrows (eg x: left/right, y:up/down, z:ctrl left/right) and then clear the movement bindings from the 3 pin mode groups you will always be able to move abs no matter the current pin mode.

small side note the 'Map arrow keys to screen' must be disabled as it currently, wrongly, also affects those abs movements. This will be fixed in the next version.
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#21
Quote:but to the horizontal/vertical axis of the current editing plane. This would by xy for front, zy for side and xz for top.
That's my problem. I'd like the keys to always behave the same, regardless of view, editing plane or phase of the moon Wink
Left/right move in LDraw X direction, up/dn in LDraw Z direction and pgup/pgdn in LDraw Y direction (with of course a new definition of these axis if I use a relative grid)
Or maybe I still miss something? Which makes me think, it would be nice to be able to easily exchange editing configuration/key bindings!
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#22
Is anyone else having problems with the Alpha crashing when you copy or cut parts?
----------
my flickr
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#23
(2016-06-12, 20:07)Niklas Buchmann Wrote: Is anyone else having problems with the Alpha crashing when you copy or cut parts?

I havn't noticed any myself but I did make some changes to the copy/paste stuff mostly related to the source window.

Do you have a sure way of letting it crash?
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#24
No, it seems to happen randomly. I have been watching this for a while now but I couldn't see a pattern. Most times after a crash, selecting and cutting the same parts again did not crash the program, sometimes it did.

I haven't seen any crashes since I deactivated the 'copy options' dialog by selecting 'always' or 'never' for all the options, but maybe I just had a luck streak.

/LDraw just crashed again, so it's not related to the dialog.
----------
my flickr
Reply
RE: LDCad 1.6 Alpha 1 (win+linux)
#25
(2016-06-12, 20:38)Niklas Buchmann Wrote: No, it seems to happen randomly. I have been watching this for a while now but I couldn't see a pattern. Most times after a crash, selecting and cutting the same parts again did not crash the program, sometimes it did.

I'll recheck the changes I made to see if something obvious can go wrong, if you find a pattern please let me know.
Reply
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 1 Guest(s)