To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cadOpen lugnet.cad in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / 17127
17126  |  17128
Subject: 
LDForge - dev. plans and call for help
Newsgroups: 
lugnet.cad
Date: 
Wed, 31 Mar 2010 19:30:38 GMT
Viewed: 
21810 times
  
Hi folks,

over the latter half of the year 2009 I’ve been planning and experimenting on the thought of a good CAD program for part authors. Now I’m unveiling my thoughts to the public, but this is not an announcement. It’s too early for such.

History

Over the course of summer I was having the thought in my mind and in early fall I began to experiment on things like Togl (OpenGL frontend to Tcl/Tk) and code related to inlining, compiling and rendering.

In late fall I though found myself with a problem too hard for me to overcome and I overturned the thoughts. The program turned out to act far too slow. Recently, however, I went through the code, fixed some bugs and optimized it a tad by for example making the in-rotation part be rendered lines-only, like in MLCAD.

More importantly, I figured that it’s possible.. as I knew exactly what I was facing. The slowness, as it seems, is caused by either the inlining or compiling code by duplicating compiled code. I created a “brick.dat” file, which was a 3002.dat inlined down to lowest level, and logged the compiled data of both files. brick.dat was 46KB, while 3002.dat was 2.8MB! Now I’m looking into the code and might as well fix the thing. :)

That’s why I’m posting this here. This is not an announcement, just sharing of my plans and code.

Specs

LDForge, currently, is nothing more than a simple, bugged, renderer. But I’m planning more:

Implemented features:
  • Simple rendering with zoom, spin and offset
  • BFC red/green view, albeit buggy
  • Wireframe, edges-only and no-edges mode
  • LDConfig.ldr support
  • Transparency support (non-dithered due to OpenGL)
Planned features:
  • The obvious: the basic things you need to author a part
  • Functions for trimming lines
  • Quick edgelining
  • Polygon drawing (?)
  • Complexity (=bowtie) detection and auto-fix (?)
  • Multiple parts simultaneously open..? (Kind of against this because I fear it would cause LDForge to slow down)
  • Integration of Philo’s tools (if he’s okay with it :D)
  • Functions from MLCAD such as select by colour and type
  • Primitive gallery
  • More as I come up with them...
Bugs!
  • Subpart inlining and compiling cause lots of duplicates, slowing the renderer tremendously
  • Polygon sorting is bugged. I need help here - see below for details.
  • BFC view is bugged.
  • Conditional lines are not handled at all.
  • Offset and spinning do not work the way I want them to. More minor issue, though..
  • Most code is in forge.tcl and need to be sorted into separate files. Trivial, though.
LDConfig.ldr

LDConfig.ldr will be supported. However, speckle and glitter will quite probably not be supported unless I’m supplied with the code to render them. They’re not needed. ;)

LDConfig.ldr will probably be flouted in the manner of using coloured edgelines ala alternate LDConfig and MLCAD 3.2. Naturally, as this will more than probably be argued against, I’ll have this flouting in a configuration option.

Polygon sorting - help needed

I need a little bit help, however. The polygon sorting algorithm I have right now does not work properly. Currently it’s done by calculating the center of the polygon by simply calculating the means of the coordinates.

How do existing programs - LDView in particular as it’s an OpenGL one too - sort polygons? I’d appreciate help tremendously here..

(Future) downloads

I have created a SourceForge project for LDForge. I will be keeping an SVN repository in case people have interest in this project with whatever interests they have. At this point, while I’m writing this post, there’s nothing to get. I’ll flesh the project page out, just give me time..

-Santeri



Message has 3 Replies:
  Re: LDForge - dev. plans and call for help
 
(...) SNIP (...) -SNIP- At present I can not see the reason to sort polygons if you only want to display them. cu mikeheide (...) (15 years ago, 31-Mar-10, to lugnet.cad, FTX)
  Re: LDForge - dev. plans and call for help
 
(...) The only polygons that LDView sorts are transparent ones. Everything else is handled by the OpenGL depth buffer (glEnable(GL_DEPTH_TEST), followed by glDepthFunc(GL_LEQUAL)). Transparent polygons need to be sorted before being drawn, and (...) (15 years ago, 31-Mar-10, to lugnet.cad, FTX)
  Re: LDForge - dev. plans and call for help
 
(...) Perfectly OK! now I wonder what could be a correct user interface for that... Philo (15 years ago, 1-Apr-10, to lugnet.cad)

12 Messages in This Thread:





Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR