LDraw.org Discussion Forums

Full Version: [0.2.1] LDForge
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10
Version 0.2.1 of LDForge is now out, fixing a bug causing LDForge to skip every 300th line of a given file. See release document and downloads here



LDForge is released under GPLv3 and CC-BY-SA (for icons). Repository: here, for bleeding-edge stuff.

Some things to note:
  • BFC red/green view, albeit present, isn't always right; it assumes everything is CCW and it fails to catch INVERTNEXT in subfiles. Also it has to draw everything twice so there's a bit of a performance hit.
  • The camera suffers of gimbal lock. I'm going to try address this for future versions.



So in some 2010 I had posted some ideas about this thing. Even though I've been quite wholly inactive, I've had this on the back burner for the past year. I've been learning a lot of programming things and I guess I'm a more mature person today.

Basically I've rewritten the entire thing, instead of Tcl, this thing is being written in C++/Qt/OpenGL. The only stuff I've kept were some OpenGL things I ported from the old renderer to make this actually capable of drawing things. While MLCAD had 4 camera windows, this thing has one single one with 7 modes which can be quickly changed to and from.

Features:
  • List view ala MLCAD with multi-selection. One object per line, one line per object. Items not colored main or edge color (16/24) have their color reflected in the list view for identifying.
  • Parse error recovery, if a line/object cannot be parsed properly it will be displayed as an errorneous object. This object can be selected and its contents edited and have it reparsed, so you can fix these errors within LDForge.
  • 6 camera modes plus a free-angle one.
  • Drawing mode that allows you to literally draw polygons and lines into the screen.
  • Object hiding
  • Select by color or type
  • Quick edge-lining, takes any number of polygons and creates edgelines around them
  • Ability to edit object's LDraw code directly
  • Inlining, plus deep inlining which grinds down to polygons only
  • Auto-coloring (sets color to the first found unused color), uncoloring (sets colors to main/edge color based on type)
  • Coordinate rounding, inverting, coordinate replacing, flipping, quad splitting
  • Screenshotting
  • Vertex object, generic radial primitive object
  • LDConfig.ldr parsing for color information
  • Ability to launch Philo's utilities and automatically merge in output
  • BFC red/green view (incomplete)
  • Wireframe mode, axis drawing
  • Image overlays for getting part data from pictures
Looks nice

Quote: I'm still a Linux user and to be painfully honest I haven't yet managed to compile Qt stuff on Windows yet.. I'll have to figure that out sometime down the line.

I highly recommend using MinGW, especially if you used to Linux. It's basically the essence of bash and gcc on windows. I use it with LDCad (wxWidgets instead of qt though)

I'm mainly on Windows but the only thing I have to do to compile a Linux version is boot up Ubuntu 10 or something open a terminal do svn update and type make Smile This is possible because the MinGW environment is so simular.

Alternative is visual studio but you might need to account for many (minor) compiler differences using tons of #ifdef's etc.
I am really appreciate what you are planning. I hope that will end up with a good tool for part authors. As far as I know currently there is only MLCad for doing visual part authoring on Windows.
I also have a tool like your on my to code list, but so far I have no experience in 3d (openGL or anything else) and therefore I would be happy to see this project done by someone else. Smile You can count on me if you need guys for testing Smile
Thanks guys Smile

Also, yay, it's a brick!
[Image: ldforge-4.png]
I'm excited too. The brick looks very good Smile

Tim
Looks good indeed, count on me for beta tests Wink
I'm glad to see there's interest for this. Smile

Also I just managed to structure inlining in a way that all immediate subfiles (i.e. subfiles the current open file references) are cached into memory for faster processing. I also honed out matrix multiplication and now this thing can properly render more complex parts too:

[Image: ldforge-5.png]
[Image: ldforge-6.png]

Yay for weekend coding.
Keep on Smile
LDConfig.ldr is now parsed and read properly so all colors are available. Working on BFC support now.
When do you think we can test on our systems Smile
Pages: 1 2 3 4 5 6 7 8 9 10