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 / 13713
     
   
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Sun, 16 Apr 2006 09:10:18 GMT
Viewed: 
3998 times
  

Hi Kevin,


  I don't have the time, *but* if a 3D GUI editor (e.g. LeoCAD or MLCad) were to
provide the concept of identified (maybe named) verticies, intersections of
planes with planes, cylinders with circles, etc.... I think it would be much
easier to create and edit parts.

You are completely right. Such a GUI editor is a program I was always looking
for (and - unfortunately- I still am). But for two years I have been programming
on a little editor to do things like that.
My programming skills are not that high (I only learned it one year at school,
that's all), but still I was able to implement some IMHO useful functions.
I will never be able to finish it, mainly because I cannot create working
executables out of the source code.

A sample screnshot can be found here:
http://www.brickshelf.com/gallery/smhltec/cad/mainscreenshot.png

The program uses LDView or L3Lab as a viewer. You can select the points of the
part in a list and use them to create lines, triangles, quads and so on, like in
MLCAD. But you can also modify them (that means you change the values of one
point and all objects containig this point will be modified). You can fill a
polygon with triangles (this feature sometimes does not work properly, don't ask
me why.)
The main advantage is that you don't have to remember all points, because you
can use the vertices of one object directly to create another (e.g. for adjacent
objects.)
I was planning many features more, but I did not have the time to finish them.

I could publish the source code so that someone could test / modify / improve /
have a look at it. It is written in Visual Basic.

Is anyone interested?

Leg Godt-
Sven

   
         
   
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Sun, 16 Apr 2006 10:40:52 GMT
Viewed: 
4122 times
  

Sven Moritz Hein wrote:
for two years I have been programming on a little editor to do
things like that.
[...}
A sample screnshot can be found here:
http://www.brickshelf.com/gallery/smhltec/cad/mainscreenshot.png

The idea (and the program!) looks interesting, but I have one main question:

Where do the primitives enter in this picture? It looks like both Kevin's
ideas and your program are ignoring the primitives, working down on the bare
polygons.

Primitives are an essential part of part creation, aren't they? (Correct me
if I'm wrong)

To be really useful, such a tool would have to know about primitives, the
fact that the points of a primitive may not be moved relative to each other
(scale, translate, rotate the full primitive is all we are allowed to do).
The possibility to snap own lines and polygons to the points of a primitive
would of course be necessary (or vice versa, fit a primitive to one or more
own points?).

As for Kevin's ideas about intersection calculations, it is rather
difficult, as the only existing objects in the LDRAW world are the quad,
triangle and line. A .DAT file does not contain any information about more
abstract objects.

I belive the best route to a part modeller is to find an existing 3D
modeller that has the abstraction level, and functionality, that's needed,
and concentrate on making an export filter for that to produce .DAT files.
Are there no community projects working in that direction?

--
Anders Isaksson, Sweden
BlockCAD:  http://web.telia.com/~u16122508/proglego.htm
Gallery:   http://web.telia.com/~u16122508/gallery/index.htm

   
         
     
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Sun, 16 Apr 2006 17:31:28 GMT
Viewed: 
4344 times
  

In lugnet.cad, Anders Isaksson wrote:
Sven Moritz Hein wrote:
for two years I have been programming on a little editor to do
things like that.
[...}
A sample screnshot can be found here:
http://www.brickshelf.com/gallery/smhltec/cad/mainscreenshot.png

The idea (and the program!) looks interesting, but I have one main question:

Where do the primitives enter in this picture? It looks like both Kevin's
ideas and your program are ignoring the primitives, working down on the bare
polygons.

Yes, primitives are important. In my program, you can add them just like any
other part. I already implemented moving and I wanted to add scaling and
rotating, but I did not understand the rotation matrix command. Could anyone
explain that to me? Then I could also add the points from the primitives to the
point list and everything would be ok!

Of course a good 3D modeller and a converter would be fine, but are there any
good and free 3D modellers? It's already possible to convert files from
SolidDesigner to LDRAW, isn't it?

I also wrote a program to convert ME10 files (two-dimensional drawings) to
LDRAW. I use this function very often when I create parts.

So I still think a GUI part editor is neccessary, a combination of MLCAD and
LDDP for example.

Leg Godt-
Sven

    
          
      
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Sun, 16 Apr 2006 20:00:31 GMT
Viewed: 
4561 times
  

Sven Moritz Hein wrote:
Then I could also add the points from the primitives to the point
list and everything would be ok!

Ah, but it's here it's becoming interesting :-)

Now the point list must keep track of which points are 'free' and which are
belonging to a primitive (and not only 'a' but 'which?'), because the points
of the primitive may not be changed arbitrarily, only by translating,
scaling and rotating the full primitive. Which in turn may have effects on
other objects also connected to that primitive. And so on...

The more you start to think about it, the more complicated it gets.

--
Anders Isaksson, Sweden
BlockCAD:  http://web.telia.com/~u16122508/proglego.htm
Gallery:   http://web.telia.com/~u16122508/gallery/index.htm

     
           
      
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Mon, 17 Apr 2006 08:05:44 GMT
Viewed: 
4772 times
  

In lugnet.cad, Anders Isaksson wrote:

Now the point list must keep track of which points are 'free' and which are
belonging to a primitive (and not only 'a' but 'which?'), because the points
of the primitive may not be changed arbitrarily, only by translating,
scaling and rotating the full primitive.

Okay.
My point list now only shows the points of the polygons, not of the primitives.
But if I implemented primitives, it would just add these points to the list.
When I modify one, these point's wouldn't be affected because - as you said -
you can't change them like that. The program would change all the points of the
polygons but the primitives would stay the same.

My program does not "define" the objects by the points in the point list, it
just reads the file and displays them in the list.

I also added the feature "Use second program", so that you can open the part in
MLCAD etc. and do the changes there, if you like. Then just save it and my
program will automatically update its point list.
I only wanted to create an extended version of the MLCAD part authoring
commands...

I think the bigger problem is a part containing subparts that also contain
subparts. I don't know how to handle this.  I could add points of a subpart to
the list (if I knew how to interpret the matrix), but not of sub-subparts or
sub-sub-subparts.

Another possibility would be that I added the primitive points temporarily, so
that they only appear when you really need them. Then I don't have any "dead"
points of former primitive shapes in the list and my program wouldn't have to
remember so many points. Just click on the part and say "Show points!" -
wouödn't that be a solution?

How do LDRAW converter use primitives? I think it'd be quite diffiult to make
the program recognize every scaled and rotated primitive.

You mustn't forget - this is all still a "dream". I did not program any
primitive integration yet. But if we know how to do it, I (or someone else?) can
try to add these features.

Leg Godt-
Sven

     
           
      
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Mon, 17 Apr 2006 17:35:13 GMT
Viewed: 
5624 times
  

In lugnet.cad, Sven Moritz Hein wrote:
In lugnet.cad, Anders Isaksson wrote:

Now the point list must keep track of which points are 'free' and which are
belonging to a primitive (and not only 'a' but 'which?'), because the points
of the primitive may not be changed arbitrarily, only by translating,
scaling and rotating the full primitive.

Okay.
My point list now only shows the points of the polygons, not of the primitives.
But if I implemented primitives, it would just add these points to the list.
When I modify one, these point's wouldn't be affected because - as you said -
you can't change them like that. The program would change all the points of the
polygons but the primitives would stay the same.

My program does not "define" the objects by the points in the point list, it
just reads the file and displays them in the list.

I also added the feature "Use second program", so that you can open the part in
MLCAD etc. and do the changes there, if you like. Then just save it and my
program will automatically update its point list.
I only wanted to create an extended version of the MLCAD part authoring
commands...

I think the bigger problem is a part containing subparts that also contain
subparts. I don't know how to handle this.  I could add points of a subpart to
the list (if I knew how to interpret the matrix), but not of sub-subparts or
sub-sub-subparts.

Another possibility would be that I added the primitive points temporarily, so
that they only appear when you really need them. Then I don't have any "dead"
points of former primitive shapes in the list and my program wouldn't have to
remember so many points. Just click on the part and say "Show points!" -
wouödn't that be a solution?

How do LDRAW converter use primitives? I think it'd be quite diffiult to make
the program recognize every scaled and rotated primitive.

You mustn't forget - this is all still a "dream". I did not program any
primitive integration yet. But if we know how to do it, I (or someone else?) can
try to add these features.

Leg Godt-
Sven

Just slightly on-topic...


I have done some semi-serious experimenting on my very old LDD program (LDD -
here: "LDraw Draw" and *not* "Lego Digital Designer"!)
My old program was not bad in many senses, but a disaster since you aren't even
able to save the work, just export as an LDraw dat file.

My LDD is a GUI pattern editor.
Screenshot:
http://web.telia.com/~u66203131/pix/ldd.jpg
URL:
http://home.swipnet.se/~w-20413/ldd.htm
It is so outdated by now that I don't recommend using it. But it may serve as an
inspiration when creating a new part editor.


Now, if I get serious with the newer version, users will be able to save the
project files in LDS format and of course create LDraw dat files as output. So
the temporary project name is set to LDSD. :)


/Tore

    
          
     
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Wed, 26 Apr 2006 09:57:38 GMT
Viewed: 
4533 times
  

On Sun, 16 Apr 2006 17:31:28 GMT
"Sven Moritz Hein" <sm.heinonline@freenet.de> wrote:

Yes, primitives are important. In my program, you can add them just
like any other part. I already implemented moving and I wanted to add
scaling and rotating, but I did not understand the rotation matrix
command. Could anyone explain that to me? Then I could also add the
points from the primitives to the point list and everything would be
ok!

Of course a good 3D modeller and a converter would be fine, but are
there any good and free 3D modellers? It's already possible to
convert files from SolidDesigner to LDRAW, isn't it?

My ldraw import/export scripts for Blender can be used for part
editing, to a slight degree. It's lacking in edge functionality and
doesn't properly preserve comments currently. Since it was written
before Blender had the proper edge structures, perhaps that could be
improved, and comments could be tracked in a text. I used the script to
edit a couple of pieces before the bowtie winding fix was integrated.

The way it basically works now is that if you use it to import a piece,
it will load but not "flatten" that piece, so referring lines (such as
primitives or subparts) will be intact. Edges are nearly destroyed;
conditional lines will turn into "autosmooth" faces, and lines are
regenerated on export using only the active contrast colour.. I'm not
actually sure how that looks.

--
PGP fingerprint = 9242 DC15 2502 FEAB E15F  84C6 D538 EC09 5380 5746

   
         
   
Subject: 
Re: Call for GUI part editor
Newsgroups: 
lugnet.cad
Date: 
Wed, 19 Apr 2006 22:00:58 GMT
Viewed: 
4157 times
  

In lugnet.cad, Anders Isaksson wrote:
Sven Moritz Hein wrote:
for two years I have been programming on a little editor to do
things like that.
[...}
A sample screnshot can be found here:
http://www.brickshelf.com/gallery/smhltec/cad/mainscreenshot.png

The idea (and the program!) looks interesting, but I have one main question:

Where do the primitives enter in this picture? It looks like both Kevin's
ideas and your program are ignoring the primitives, working down on the bare
polygons.

Primitives are an essential part of part creation, aren't they? (Correct me
if I'm wrong)

To be really useful, such a tool would have to know about primitives, the
fact that the points of a primitive may not be moved relative to each other
(scale, translate, rotate the full primitive is all we are allowed to do).
The possibility to snap own lines and polygons to the points of a primitive
would of course be necessary (or vice versa, fit a primitive to one or more
own points?).

As for Kevin's ideas about intersection calculations, it is rather
difficult, as the only existing objects in the LDRAW world are the quad,
triangle and line. A .DAT file does not contain any information about more
abstract objects.

I belive the best route to a part modeller is to find an existing 3D
modeller that has the abstraction level, and functionality, that's needed,
and concentrate on making an export filter for that to produce .DAT files.
Are there no community projects working in that direction?

Hi Anders,

  Sorry for the tardy reply.  I failed to mention primitives, because they are
easy to work with compared to the manual nature of quads, tris and lines.  That
post was too huge to start with, so it is a good thing I didn't mention them
;^)

  My assumption was that the primitives would be used, but physically
unchangable, yet all the individual quads, tris and lines would be individually
clickable.

  I wish I had time to work on something like this.

Kevin

 

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