Hello,

>Hi, I'm getting dizzy about inventor scenegraph conversions! 
Good  The concepts of FreeCAD, OpenInventor and IPython are complex and not 
easy to gasp in short time, so don't feel discouraged.
>Actually I get the idea about one to one mapping of nodes, between coin3D and
> SceneJs/ThreeJs. Like call the whole FreeCAD Document scenegraph through
> coin3D actions and create the proper node types of the javascript webGL
> library, in the same traverse order! 
Yes, you traverse the scene graph with an inventor action and handle each node 
by writing it to a JavaScript file as an equivalent SceneJS/ThreeJS item. 
> It's more like building an open
> inventor scenegraph(.iv file) parser for that particular Js library! Isn't
> it? 
Well in a certain sense yes. But you don't handle a file but a datastructure. 
Also the logic is in FreeCAD, hence it is not a parser of the JS library, but 
is a writer in FreeCAD. Basicly you output code written in that JS library.

>Actually ThreeJs has a vrml loader itself, but it's not fully done [1].
Ah interesting. That would be of course the simplest of all solutions, we 
could use the existing coin vrml writer and input it directly into ThreeJS. 
But this import/export needs some investigating too. For example for the 
standalone WebGL export we want a single html file. This is easy if one writes 
JS code with all geometry inside, but don't know if this works with a code JS 
file implementing the viewer and a datafile holding the scene graph.

> I'm still researching on the inventor scenegraph conversions! But I didn't
> made any working implementation to prove that concept! Afraid that I cannot
> be able to implement a working draft source in before the
> deadline(proposal).  Now I can only propose a workflow, which I think it
> will work out, but maybe after some point it gonna change to a different
> direction in implementation! Is it fine?
Yes this is fine in general. Best is to write your proposal and share it 
before submitting. This gives us the chance of looking into it and discussing 
it. Also note that the inventor scene graph traversing is only one part of the 
process, and one we can help you with. You need also to consider the 
javascript viewer that is part of the project, and make a proposal on how it 
should work and what it should be capable of.

But also note that it seems that we have multiple applications for freecad. 
Writing some code or fixing a bug is always a good way to show capability and 
motivation. 

Regards,
Stefan

> 
> [1] https://github.com/mrdoob/three.js/issues/3979
> 
> regards
> 
> On 13 March 2016 at 14:45, Stefan Tröger <stefantroe...@gmx.net> wrote:
> > Hello Linganesan,
> > 
> > thanks for your interest. The freecad dependencies should actually be
> > installed pretty easily, for windows we provide a libpack with all
> > dependencies and for linux they should be all installable by repositories.
> > 
> > >    1. As I understand, we can import FreeCAD python Api as a seperate
> > >    module[4] which can be used by IPython.
> > 
> > Yes, FreeCAD can be importet as standalone python module into IPython.
> > FreeCAD
> > is seperated between an App and an GUI part. As for IPython we do not want
> > to
> > show up the FreeCAD GUI but need the GUI parts for visualisation (the
> > viewproviders) have a look at FreeCADGui.setupWithoutGui()
> > 
> > >    2. So here we need a '3D web viewer' to render the models which are
> > >    generated by IPython(Qtconsole/Jupyter).
> > 
> > Yes. The models are generated in ipython via the freecad API. Internally
> > document objects are generated, which in itself cannot be visualized. But
> > the
> > GUI part provides visualisation for each document object via a
> > viewprovider.
> > Those viewproviders generate the 3d scene graph which should be visualized
> > via
> > the qt console/jupyter.
> > 
> > >    3. OpenInventor API generates scenegraph which is constructing by
> > 
> > coin3D
> > 
> > >    library in a 3D viewer.
> > 
> > Yes, the viewproviders build up the openinventor scene graph. We use
> > coin3d
> > for this. The construction of the scene graph is however independend from
> > the
> > rendering. We cannot directly render with coin3d into ipython GUI, but we
> > can
> > use the already constructed scenegraph and traverse it. An example for
> > this is
> > the coin3d SoToVRML converter action which could be used as example of how
> > to
> > traverse the scenegraph and create something out of it.
> > https://bitbucket.org/Coin3D/coin/src/
> > 559be0543cbce3235cdc6dce13c8cc112eb212a5/src/actions/SoToVRMLAction.cpp?
> > at=default&fileviewer=file-view-default
> > 
> > >    If I'm not wrong, here we can use pythonOCC with
> > >    webgl [2] [3] instead of coin3d.
> > 
> > No this is not possible. FreeCAD does not use opencascades visualisation
> > at
> > all, hence it is not easily transfered to python occ webgl viewer. Also we
> > visualize many more things than only occ data structures, and all of this
> > needs to be possible to render in ipython too. This is why we want to
> > mirror
> > the 3d scenegraph directly. The basic idea was to find a webgl js library
> > which has a scene structure pretty close to openinventor and then simply
> > traverse the scenegraph and create a new webgl scene graph from it in a
> > new
> > html file. This webgl file can than be exported standalone and also used
> > to
> > show the scene in ipython, which allows javascript visualisation. How to
> > incorporate ineractive webgl into ipython qtconsole/jupyter needs some
> > research, but it is possible as shwon by other implmentations.
> > 
> > > Now I'm analyzing the source code to get a clear
> > > view.
> > 
> > Feel free to  ask questions on irc and especially the forum. FreeCAD is
> > not
> > easy to grasp, it is a rather large code base with too little
> > documentation.
> > 
> > Regards,
> > Stefan
> > 
> > On Sunday, March 13, 2016 05:52:09 AM Linganesan Mani wrote:
> > > Hi Stefan,
> > > 
> > > Thanks for your reply and suggestion, When I was gone through your
> > > recommend page I found this IPython integretion page[1] which got my
> > 
> > great
> > 
> > > attention. Here I need some clarifications according to what I have
> > > understood,
> > > 
> > >    1. As I understand, we can import FreeCAD python Api as a seperate
> > >    module[4] which can be used by IPython.
> > >    2. So here we need a '3D web viewer' to render the models which are
> > >    generated by IPython(Qtconsole/Jupyter).
> > >    3. OpenInventor API generates scenegraph which is constructing by
> > 
> > coin3D
> > 
> > >    library in a 3D viewer. If I'm not wrong, here we can use pythonOCC
> > 
> > with
> > 
> > >    webgl [2] [3] instead of coin3d.
> > > 
> > > Also I forked the FreeCAD repository and successfully compiled on my
> > > machine. Seriously, those dependencies took whole day to find the ways
> > > to
> > > install each of them :P. Now I'm analyzing the source code to get a
> > > clear
> > > view.
> > > 
> > > [1]
> > 
> > http://www.freecadweb.org/wiki/index.php?title=IPython_notebook_integratio
> > n
> > 
> > > [2]
> > 
> > http://www.pythonocc.org/features_overview/experimental-webgl-renderer-tow
> > ar> 
> > > ds-cad-in-a-browser/
> > > 
> > > [3] https://www.youtube.com/watch?v=0GXbfzWV8qk
> > > 
> > > [4] http://www.freecadweb.org/wiki/index.php?title=Embedding_FreeCAD
> > > 
> > > On 8 March 2016 at 22:57, Stefan Tröger <stefantroe...@gmx.net> wrote:
> > > > Hello  Linganesan,
> > > > 
> > > > as you seem to be interested in exposing geometric functionality to
> > 
> > python
> > 
> > > > I
> > > > like to take the chance and point you to another project idea with
> > > > this
> > > > scope:
> > > > http://www.freecadweb.org/wiki/index.php?
> > > > title=Extend_Part_workbench_python_API
> > > > It is a bit different in the sense that it requires not a pure wrapper
> > 
> > but
> > 
> > > > also some coding and API design. For your consideration.
> > > > 
> > > > Regards,
> > > > Stefan
> > > > 
> > > > On Tuesday, March 08, 2016 05:48:12 PM Linganesan Mani wrote:
> > > > > Hi,
> > > > > I am Linganesan, undergraduate computer engineering student. I have
> > > > > a
> > > > 
> > > > sound
> > > > 
> > > > > knowledge in python and great enthusiasm in computer graphics. I've
> > 
> > gone
> > 
> > > > > through Python Geometry[1] page in Brlcad wiki. I'm really excited
> > > > > to
> > > > > contribute this project. I cloned the git repository which given on
> > 
> > that
> > 
> > > > > page, but I get some error while I tried to install
> > 
> > python-brlcad.[2] I
> > 
> > > > > guess those are some issues causing by ctypesgen! How can I resolve
> > > > > those
> > > > > issues? Also now the project is on python 2.x, Is feasible to
> > > > > convert
> > > > 
> > > > that
> > > > 
> > > > > in to python 3.x? Could you please help me to continue on this
> > 
> > project.
> > 
> > > > > [1] - http://brlcad.org/wiki/Python_Geometry
> > > > > [2] - http://pastebin.com/hSvQzVRe
> > > > > 
> > > > > Thank you,


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to