On 4/16/2013 7:23 PM, Gene Heskett wrote:
> On Tuesday 16 April 2013 19:05:57 andy pugh did opine:
>
>> On 16 April 2013 10:49, propcoder <marius.alks...@gmail.com> wrote:
>>> electronics (power, drivers, custom electronics with documentation and
>>> all datasheets, cabling, signals, computer,..)
>> I don't do anything for anyone other than myself, but I would be lost
>> without the wiring details. (and it really needs to be down to the
>> level of pin numbers in every connector, and the wire colours between
>> them)
>>
>> It would be nice to be able to generate a nice HAL diagram, and there
>> have been various ways to do that suggested, but I am not sure any
>> have been shown to work properly.
> There was a thingy that I assume worked, I installed it last fall, but it
> had one fatal flaw.  It tried to make the whole diagram fit on a single
> sheet of paper, when, in order to have been able to read it with a
> magnifying glass, it would have had to be done in multi-page poster style
> that would have likely used 54 to 100+ sheets of paper to be taped together
> before the text in one of the teeny little logic boxes would have been big
> enough to read.
> <...>
>
> Looking on the lathes box, I find a ~/gene/src/RockHopper directory that
> looks like one of those usual suspects, was that it?
>
> Cheers, Gene

Sorry for coming to the party a week late. I've been very distracted lately.

Me thinks you exaggerate the problem just a bit. The Rockhopper server 
creates a diagram in SVG. One could save* the diagram to file from the 
browser, open the saved file in Inkscape, and either go through 
machinations to print it in tiles or use the Inkscape "save as" function 
to create** a PDF version of the diagram. With that in hand, one could 
use available on-line servers or standalone utilities to print the 
diagram in tiles. Try searching on "tiled printing". Note that some of 
the programs discussed in the Wikipedia article appear to have moved, 
changed authorship, or disappeared since the article was last edited and 
that the version of pdfposter that Synaptic Package Manager installed on 
my Ubuntu 10.04LTS system didn't behave (could be my own fault). I went 
to the latest version available from github.com (and found it a PITA to 
install, but I persevered).

Let's take a step back though. The Rockhopper HAL Graph function works 
essentially the same way as my HAL2HTML program I posted about in the 
fall of 2011. The Rockhopper developers made most of the same design 
choices I did (you can see my list at 
https://sites.google.com/site/manisbutareed). Visually their diagrams 
and mine are slightly different (no question theirs are prettier; mine 
look like they were made by a bookkeeper). Mostly they are the same, 
though, because we both use Graphviz functionality to construct a graph 
from HAL information and to render the resulting diagram. One obvious 
difference is in the presentation of HAL signals: they chose to make 
them labelled nodes (rendered as dotted boxes) and I decided not to, 
making them labelled arcs instead. My choice reduces the number of nodes 
to be placed but makes for more contorted signal paths.The same 
information is communicated either way. We both suffer from the problem 
that the size and complexity of a HAL diagram is potentially unbounded.

Looking at my Google site now I see that I never posted the next step in 
the evolution of my thinking. Trying to partition the completed graph 
automagically looked difficult to a lazy hacker like me The relevant 
Graphviz tools brought no joy. I decided instead to try the following:

     1) create an overview diagram which showed all the HAL components 
by name only with no internal structure, e.g. no pins, and the 
interconnections between them.
     2) create detailed nearest-neighbor diagrams, each showcasing a 
single HAL component and all the components to which it is 
interconnected, along with all pins involved in any interconnections.
     3) embed these diagrams in HTML pages with hyperlink maps so one 
could navigate relatively easily among components on different diagrams.

I implemented this approach and tested it with some of the example HAL 
configurations distributed with LinuxCNC. I thought the approach worked 
pretty well. Whether displayed or printed, each diagram was logically 
self-contained, more or less, and not just a tile cut out of a big 
diagram that wasn't laid out with tiling in mind. I'll try to add 
examples to my Google site so you can see what I mean. There obviously 
will be some redundancy. In the simplest case, consider two components A 
and B interconnected only with each other. My KISS approach will 
generate two nearest-neighbor diagrams, one for A "is connected to" B 
and one for B "is connected to" A. Someone less lazy that I would fix 
that by implementing better bookkeeping. C'est la vie.

I put the HAL2HTML work aside because I wanted to explore coding up a 
Manhattan-routing algorithm to generate rectilinear interconnect paths 
in place of the Bezier curves generated by Graphviz---think electronic 
schematic. (Actually, Graphviz claims to support "ortho" arcs natively 
but that feature didn't work properly in the versions*** I used.) Then 
family events pushed everything aside. I'm slowly digging through my 
collection of round2its and this subject has come back into view. Who 
knows, maybe I'll be able to make some progress this spring.

To get back to Rockhopper, the other server functions look very useful 
for documenting a build too. I like their display of ini-file contents 
so much I immediately abandoned my own crude attempt.

Regards,
Kent

*If you're feeling frisky, you could modify the Rockhopper Python script 
so that in addition to creating the SVG file Graphviz would also create 
and save a PDF file for further use.
**There's also the Apache Batik SVG Toolkit for the adventuresome. I 
fooled with it during my waning days of employment and don't wish to 
return to it. Maybe it's gotten better but I've gotten dumber, so it 
remains a standoff.
***Like so many Ubuntu packages, the version of Graphviz installed by 
the Synaptic Package Manager is well behind the current release, 
although less so in the case of Ubuntu 12.04LTS.


------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to