Posted by
dnh234589 on
Aug 23, 2023; 7:02am
URL: https://forum.librecad.org/Appimage-for-librecad-3-tp5723225p5723258.html
In terms of how it's going, well it's functional aside from known bugs that I've read about (green screen on startup, etc) but I think I'll keep using v2.x.x for my main work for now. I have many suggestions or feature requests but I'm afraid of offering too many too early. In other words I recognize this is super fresh and young, and I'm blessed to be able to have it for free.. so suggesting large features is a little like looking a gift horse in the mouth. With that said, if the following is helpful then here are two high level comments:
. GUI. The buttons are huge and.the gaps between panels are huge and the space around the properties table is huge and everything is huge. So even with my best efforts to move things around and make it all as compact and out of the way as possible, and even stacking panels on top of other panels by dragging them on top of each other to create tabs, I still have a very very small space to actually draw in. It's frustrating to have only 1/2 to 2/3 of the screen area as the drawing area. Basically everything in the GUI needs to be way smaller, tighter, and more space-efficient so the drawing area can be huge instead.
. The new scripting functionality is awesome and it's what I came for but (a) I know others have suggested python, but it really would make it more appealing to more people I think. Still, if I've gotta learn lua I'll learn lua. I'll just grumble as I do it. (b) I see the way it operates is basically to give a list of operations that sort of stack on top of each other. Using appendEntity and appendOperation. Maybe I'm missing something but it feels so awkward and super clunky to do it that way. Take the first example here:
https://wiki.librecad.org/index.php/LibreCAD_3_-_Lua_ScriptingIn that example "This create 128 entities, because the Copy operation copy all the lines on each loop." Wow. I could imagine how to write it to NOT copy all the lines on each loop but it'd be much longer and quite repetitive. Why is it being done this way with all the operations appended on previous operations? Could it not be more like the following pseudo code? This is more what I was expecting.
line = lineBuilder(start=(0,0),end=(10,100),layer=0).insert()
for j in range(7):
line.rotate(angle=45,about=(0,0)).insert()
That paradigm for coding is super short and understandable to the reader. No need to stack operations. Though I understand maybe under the hood that is what is happening...