LDForge


LDForge
#1
After over 1 year of development, a beta build of LDForge 0.3 is out with massive changes and improvements. Release highlights:
  • multi-document support
  • various optimizations that make LDForge a LOT faster than before
  • able to download parts off the PT if desired
  • circle tool with ring finder algorithm makes adding rings to parts mostly trivial, can also be used for edge circles and discs
  • magic wand tool for easier group selection
  • support for logoed studs
  • support for direct colors
  • auto-subfiler! just select and fire!
  • various little new features, improvements and bug fixes

Note that this is beta-quality software and has not yet recieved complete exhaustive testing (i.e. I gotta get that kolhii stick done). This means, don't use in production work lest you risk a crash eating your work! I decided to post this after I managed to finally squish the nasty showstopper bugs. I'm thinking about just making the release 1.0 at this point.
Reply
Re: [0.3-140907-0115] LDForge - Tha beta is out
#2
I can't run this app. It requires some libraries, can you tell wich one?
Reply
Re: [0.3-140907-0115] LDForge - Tha beta is out
#3
All of the required libs should be bundled... what error are you getting?
Reply
Re: [0.3-140907-0115] LDForge - Tha beta is out
#4
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinphtread-1.dll
I downloaded them but next i got QT Failed to load platform plugin “windows”
Reply
Re: [0.3-140907-0115] LDForge - Tha beta is out
#5
Blah. I'll repackage this...
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#6
Fixed some bugs/flaws and rebundled with missing DLLs.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#7
Wow, great job, program works much faster and much more stable.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#8
Looks like I accidentally left in my configuration file as well as prims.cfg in the distribution. I have re-uploaded it without these files.

Stan Isachenko Wrote:Wow, great job, program works much faster and much more stable.
Thank you, I am glad to hear it works.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#9
It worked fine from the beginning...
- and is much faster indeed, but it nonetheless takes 14s (!) to select all in a moderately sized file (http://www.ldraw.org/cgi-bin/ptdetail.cgi?s=15673s02). MLCad does this almost instantaneously.
- Guess it should remember last folder used instead of always going back to LDForge folder...
- I love the magic wand selector!
I need to use it on a real case before more comments Wink
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#10
Quote:- and is much faster indeed, but it nonetheless takes 14s (!) to select all in a moderately sized file (http://www.ldraw.org/cgi-bin/ptdetail.cgi?s=15673s02). MLCad does this almost instantaneously.
Yeah it's a problem. It's the object list view that causes the delay, and due to the way Qt manages selection on that widget, optimizing it is not very trivial albeit something that's on my list.

Quote:- Guess it should remember last folder used instead of always going back to LDForge folder...
Oh yeah I need to fix that.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#11
Quote:
Quote:- and is much faster indeed, but it nonetheless takes 14s (!) to select all in a moderately sized file (http://www.ldraw.org/cgi-bin/ptdetail.cgi?s=15673s02). MLCad does this almost instantaneously.
Yeah it's a problem. It's the object list view that causes the delay, and due to the way Qt manages selection on that widget, optimizing it is not very trivial albeit something that's on my list.
Oh yeah I need to fix that.

Okay I managed to write an algorithm to create selection ranges manually. With that + removing more unnecessary refresh calls I managed to cut down some select-all on 92258.dat from some 20 seconds to half a second. I'm still not happy with it but it will do for now. Tongue
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#12
Santeri Piippo Wrote:
Quote:- and is much faster indeed, but it nonetheless takes 14s (!) to select all in a moderately sized file (http://www.ldraw.org/cgi-bin/ptdetail.cgi?s=15673s02). MLCad does this almost instantaneously.
Yeah it's a problem. It's the object list view that causes the delay, and due to the way Qt manages selection on that widget, optimizing it is not very trivial albeit something that's on my list.

I haven't done any Qt programming in years (perhaps 10+), but have you tried calling setUpdatesEnabled(false) on the list object prior to doing the "select all", followed by setUpdatesEnabled(true) once you've selected everything?

I know Qt isn't in any way, shape, or form related to Win32, but in Win32, you are advised to do something similar when making large changes to the contents of a list view, and it is quite effective.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#13
This is a very good tool. Good job.
Trying to get the part from the part tracker and turn "BFC red/green View".
The image shows that the inner part of the peghole.dat painted red. This program is correct or not correct display?

I'm sorry, wrong message thread.


Attached Files Thumbnail(s)
   
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#14
Travis Cobbs Wrote:I haven't done any Qt programming in years (perhaps 10+), but have you tried calling setUpdatesEnabled(false) on the list object prior to doing the "select all", followed by setUpdatesEnabled(true) once you've selected everything?

I know Qt isn't in any way, shape, or form related to Win32, but in Win32, you are advised to do something similar when making large changes to the contents of a list view, and it is quite effective.
I just tried doing it that way and it does not remove the problem. Interrupting the program and inspecting the backtrace suggests it gets stuck at doing the selection range merges.
Code:
(gdb) bt
#0  0x00007ffff7a64ce0 in QPersistentModelIndex::row() const () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#1  0x00007ffff7353da7 in QItemSelectionRange::intersects(QItemSelectionRange const&) const () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#2  0x00007ffff735714b in QItemSelection::merge(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#3  0x00007ffff735a594 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#4  0x00007ffff73556c8 in QItemSelectionModel::select(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#5  0x00007ffff7365649 in QListWidget::setItemSelected(QListWidgetItem const*, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#6  0x0000000000505597 in QListWidgetItem::setSelected (this=0x16bb990, aselect=true) at /usr/include/qt4/QtGui/qlistwidget.h:318

Fyodor Kolov Wrote:Trying to get the part from the part tracker and turn "BFC red/green View".
The image shows that the inner part of the peghole.dat painted red. This program is correct or not correct display?
Unfortunately the BFC red/green view is still not complete yet. It doesn't get it right for sub-file references or understand CW-certified part files. For CCW parts it at least gets the polygons right.

I want to get it working proper for a future version but it certainly is an annoying problem to tackle.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#15
Today marks LDForge's 3rd birthday. I guess I'm supposed to congratulate this, though 3 years with no full stable release kind of shadows that. Oh well.

I've been recently doing some sizable internal refactoring to help make it more stable for the next release which I hope will be a thing. So far not much new features at all are in but I'll see if I can add a few things. I've been thinking about a tool to split polygon boundaries which should prove to be useful. I also hope to one day finally get the BFC red/green view to finally work. Though right now stability is the main concern.
Reply
Re: [0.3-140907-1955] LDForge - Tha beta is fixed
#16
While I said there wouldn't be a lot of new features, I did add cubic Bézier curve support last night:


[Image: 9S757bus.png]
[Image: S4y1V7Rs.png]
[Image: sZNrClqs.png]
[Image: mRy6aPYs.png]


Curves are made using the new curve tool. Their segment count depends on the grid, by default coarse grid has 8, medium 16 and fine 32. They are stored in the part model as special comments and can be inlined to lines.

Another silly shape made with this:
[Image: gxf8YdMs.png]
Reply
RE: [0.3-140907-1955] LDForge - Tha beta is fixed
#17
With a distinct lack of interest in the project, I see no reason to keep working on this anymore. I spent years on this only for it to go to waste.

I set off to work on something better than MLCAD to use for parts authoring but then some random idiot just made something else that got all the attention instead. So I guess nobody cares.

Good riddance.
Reply
RE: [dead] LDForge
#18
(2016-04-24, 16:43)Santeri Piippo Wrote: With a distinct lack of interest in the project, I see no reason to keep working on this anymore. I spent years on this only for it to go to waste.

I set off to work on something better than MLCAD to use for parts authoring but then some random idiot just made something else that got all the attention instead. So I guess nobody cares.

Good riddance.

Hope you just venting and not quitting LDraw all together.

I've been working on LDraw related stuff for 15 years now and one thing I learned about it is to always develop mainly for yourself as it is a very small community so interest by others will be limited.

On the plus side this means software downloads on your site will stay below the default hosting limits Wink
Reply
RE: [dead] LDForge
#19
(2016-04-24, 19:49)Roland Melkert Wrote:
(2016-04-24, 16:43)Santeri Piippo Wrote: With a distinct lack of interest in the project, I see no reason to keep working on this anymore. I spent years on this only for it to go to waste.

I set off to work on something better than MLCAD to use for parts authoring but then some random idiot just made something else that got all the attention instead. So I guess nobody cares.

Good riddance.

Hope you just venting and not quitting LDraw all together.

I've been working on LDraw related stuff for 15 years now and one thing I learned about it is to always develop mainly for yourself as it is a very small community so interest by others will be limited.

On the plus side this means software downloads on your site will stay below the default hosting limits Wink

It's been a long while since I've had time or motivation to author another part. And it turns out that I don't exactly know very much about 3D geometry and making a CAD program is a bad way to learn such a thing. There's literally nowhere to learn about things like CSG algorithms and OpenGL is impossible to deal with. It's just pain working on this nowadays and there's no reason to anyway with LDPartEditor exists.
Reply
RE: [dead] LDForge
#20
(2016-04-24, 20:08)Santeri Piippo Wrote:
(2016-04-24, 19:49)Roland Melkert Wrote: Hope you just venting and not quitting LDraw all together.

I've been working on LDraw related stuff for 15 years now and one thing I learned about it is to always develop mainly for yourself as it is a very small community so interest by others will be limited.

On the plus side this means software downloads on your site will stay below the default hosting limits Wink

It's been a long while since I've had time or motivation to author another part. And it turns out that I don't exactly know very much about 3D geometry and making a CAD program is a bad way to learn such a thing. There's literally nowhere to learn about things like CSG algorithms and OpenGL is impossible to deal with. It's just pain working on this nowadays and there's no reason to anyway with LDPartEditor exists.

Oh, well... that's a pitty. You're right... it is a pain to write dynamic lighting, shading and CSG stuff!
Roland got the point. Our community is just very, very small.

Due to my experience, I could be of assistance to your project as you might want to continue your development in the future.
You could also ask lots of experts on OpenGL and 3D related programming in other forums, too.
There are a lot of good OpenGL books out there... The OpenGL SuperBible is my favourite reference.

I am familar with C++, too. I could provide a lighting setup (4 lightsources) or translate my general CSG algorithm into C++ and more... if this would help you.

My CSG implementation is far from perfect and will never be free from errors (t-junctions, gaps).
The triangulation is very difficult. The minimum-weight triangulation is a NP-hard problem and the detection of t-junctions is also challenging.
Therefore all approaches to convert CSG bodies to a "good" set of triangles are rocket sience.

I do not attempt to "compete" with my part authoring programs. I just like to develop these programs as a hobby, since my daily development work for business applications is not sophisticated at all...
Reply
RE: [dead] LDForge
#21
(2016-04-29, 14:52)Nils Schmidt Wrote: I just like to develop these programs as a hobby, since my daily development work for business applications is not sophisticated at all.

That sounds very familiar Smile
Reply
RE: [0.3-140907-1955] LDForge - Tha beta is fixed
#22
(2016-04-24, 16:43)Santeri Piippo Wrote: With a distinct lack of interest in the project, I see no reason to keep working on this anymore. I spent years on this only for it to go to waste.

I set off to work on something better than MLCAD to use for parts authoring but then some random idiot just made something else that got all the attention instead. So I guess nobody cares.

Good riddance.

Last time I've got my hands wet on your prog was version 0.2.1. That was ... 2014, I guess. I remember it didn't do some essential things I needed back then. Now it surely looks much nicer and I also think the GUI with the integration of the text editor is much better than in LDPartsEditor - I'll give it a try again. But it has also to be said that 2 years is a long time - if there is something that suits my needs better I do not wait. I already had to wait a long time 'til Nils fixed the middle mouse button issue on his prog. Obviously right now I know that I will come back and ask for a hybrid of both progs - I'm kind of egocentric from that perspective Big Grin . Flicking through the thread I think the bezier feature looks promising, but I couldn't find it on the version I downloaded. I guess that would be the way your prog should go: designing free forms that helps us authoring those awful curvy parts LEGO molds nowadays (or the cape). I also envision rotation objects which rotate a curve around an axe, say all the things I would do in Solidworks.

w.
LEGO ergo sum
Reply
RE: [0.3-140907-1955] LDForge - Tha beta is fixed
#23
This raw SlizerPro output crashed the prog:


.dat   General_out.dat (Size: 123.15 KB / Downloads: 1)

(I know, I know, there is no such thing as color -1 Big Grin

w.
LEGO ergo sum
Reply
RE: [0.3-140907-1955] LDForge - Tha beta is fixed
#24
* Starting up I get some OpenGL error messages but they disappear so quickly that I cannot copy them. It would be good if the prog could write a logfile.
* I like the view buttons in the top rigth hand corner
* I miss that the vertices and the mesh lines are not shown and couldn't find a setting in case they can be shown
* I miss that the document tab doesn't show the color code
* I'd like to have the move objects icons mirrored to the toolbars
* I like the statusbar but do not understand why the Rotation doesn't fade out when switching to the 2D views

w.
LEGO ergo sum
Reply
RE: [0.3-140907-1955] LDForge - Tha beta is fixed
#25
Feature request of the day:

* A right click contextual menu with cut, copy, ... in the document pan.
* Edger2 is working and the prog is telling me that it stored something somewhere but the message vanishes so quickly that I could not find out where - beside the fact that I expected the output being added to the file.
* I do not like the behaviour in the document pan when holding down the left mouse button and start dragging. Currently it selects the lines above or below. I'd like to see a MLCad behaviour with the line being moved while the multiple selection should be done with SHIFT and CTRL
* I'd like to have the VIEW and EDIT menus inverted with the order: FILE, EDIT, INSERT, VIEW, ...
* I'd like that when I select something in the working area the highlighted code line in the Document pan gets placed at the top without me scrolling down 'til it showes up.

Thanks, w.
LEGO ergo sum
Reply
RE: [dead] LDForge
#26
I might pick this up after having taken my time off LDraw again since I seem to be regaining interest in Legos after a long while. I guess I need a hobby.

I still lament OpenGL requiring black magic fueled by virgin blood to function, though. The codebase, as it is, is very poorly done and I've had to dish in significant effort to get heads or tails out of it. I guess I'll just need to keep refactoring it.
Reply
RE: LDForge
#27
I picked this up again a few months ago and got some nice progress on the new version. I've done a rather through internal refactor, which was really standing in the way. Since that, I've added a few nice things:
  • proper 3D model rotation (no more gimbal lock)
  • basic lighting (per-polygon, doesn't work with BFC backwards faces)
  • rendering of the grid so you don't have to guess where it is anymore
And just tonight I got a working prototype of a polar grid. So yeah I've had massive progress recently, but still a lot to do before I can put out a proper release again. And way more still on the wishlist…


[Image: ldforge-polar-coordinates.png]
Reply
RE: LDForge
#28
Polar grid... yeah, could prove useful Wink
Reply
« Next Oldest | Next Newest »



Forum Jump:


Users browsing this thread: 1 Guest(s)