LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Difference (from prior major revision) (no other diffs)

Changed: 1,102c1

Blender used to describe Hal networks

Blender can be used to graphically describe part of a hal network
Not an entire .hal file
Just a bit, maybe a dozen simple comps
This page will demonstrate how useful it can be
( and in the end how useful it aint )

Look at the pictures and videos and see if the idea is conveyed
Thats the real test, if an idea is explained to the point of understanding
Now I have to just lay the stuff down and you have to decide
Otherwise I'm explaining the joke :/

heres the joke

screenshots of components in Blender







photos of the machine

upload:edmwindowcompInoldtapedrv.jpg upload:sable2015-invacbooth.jpg

darn it, i need a low profile vise, i got < 1mm clearance

links to movies of system in use

an example of posing using vismach

the virtual machine really was built but does not use LinuxCNC


the gv2offset4 component and a real window comparator

( see circuit above is used with a pot in lieu of the EDM gap , injected on pins 5&6)

watch the coupler to see the quickness of the reaction, no steps are lost ( simple gauge block test )


why Blender is not good for this purpose

the inputs are on the left, the outpust are on the right ,
adding the versatility to arrange them as you like in the layout is too complex for me.
I did this in NodeBox ( a python graphic toolkit ) and likely will go back there if i continue this idea.

the whole network is way too big to fit on the canvas
you really can draw it, but you can never see all of it, not enuf zoom out,
you end up with max zoom and large amounts of unseen graph.
meaning you have to both pan around and zoom in out
if you fight the user interface while you're trying to understand a thought, you'll loose track

nesting works but only to one level (this is like pages in electrical CAD )
the selected comps will collapse into a single rectangle
the comps contained will have thier exposed pins on edges, following the leftin/right out rules
the pin placement of the collapsed widget is not pleasing, and cannot be re-arranged

complex comps like axis/motion or stepgen are not pleasant to see in a single grafic widget
so i broke them up into what i thought were similar/logical sub-comps
this becomes not hal friendly and is not blender friendly

theres a input on lower left outputs on upper right rule also
the pins are never directly across from each other
which makes for an ugly staggering when theres a lot of pins

the nodes ( pins in HalSpeak) are supposed to have data types int, float, string, and a few float arrays ( color is 4 floats RGBA, vector is 3)
but theres really only float and float arrays, i checked the library for what really existed hoping for examples )
and no S32 U32 fer sure

the nets are hard to see, and no param to change width
no naming of nets, but i didnt mind, as i saw the Hal 'single source' rule was in tune with the idea that the source should just have a name
the source can only goto outputs, why name the wire when you could name the signal source
this single source rule meant no branching of nets, instead all connections eminate from the single source

the leftin rightout rule made for very ugly layouts,
wires wrapping immediately back to left

the use of blender exploits 'pynodes'
a feature dropped in Blender version 2.49b ( what you see here )
and is supposed to be resurrected in 2.66 ( Blender's on 2.65a now )

there some nice bits,
the bezier nets are nice, but they dont avoid anything ( would need way points )
the group comps expand in a nice HUD like window, and keep all thier nets intact
the comps widgets are easy to write
its pretty

so, like many other attempts, blender4hal leaves too much to be desired imo
28dec2012 tom3p
merry Christmas to all & Happy New Year



LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited January 3, 2013 9:12 am by Tjtr33 (diff)
Published under a Creative Commons License