Friday, December 21, 2012

For A Duke Fan

Sometimes sacrifices have to be  made.  I would have  much preferred making a pen out of a lighter blue. 




Saturday, December 8, 2012

A Candy Cane

An acrylic pen.  The  blank was called 'Candy Cane'.





Wednesday, December 5, 2012

We'll See What Happens

I dropped some of my work off at a local consignment shop today.  I will see what happens with it.  I am  also going to do some smaller items for a different shop and see if that shop is willing to sell them.

Monday, December 3, 2012

Going Bowling

Spalted Oak/Oak Crotchwood.  10" diameter.



Natural Edge Pear 6" diameter



Undercut Oak 7" diameter


Maple 10" diameter





Friday, November 30, 2012

Had Some Fun



First one ever.  The wood is cherry.  I also tried one that the wood was dyed pink but the blank blew up.



Also did this.  Mahogany.  I need to find a kit that either has a cap or lets you reverse the pointy bit into the handle.  



Thursday, November 29, 2012

A Retirement Gift

My boss retired last month.  Best boss I've had.  Anyhoo, he is a woodworker so I made him this.  I wanted something small enough that if he chose not to use it, he could also display it.  I made sure to give it to him on his last day, just so he wasn't tempted to  use it as a head knocker.  :)


Sunday, August 26, 2012

The Mess That Is Programming Visio

So I am writing a program that among other things will draw the diagram of a network.  Unfortunately the .COM interface to Visio is a disaster, at least from the OO model perspective.  First, here's how you create the Visio document.  This is C#, and I am skipping all the using statements you might need as well some variable declarations.

// create the application instance

 Visio.Application va = new Visio.Application();
            va.Documents.Add(@"");

//grab the document in the application
// since you can't just write a file in the .vsd format



Visio.Documents vdocs = va.Documents;

// now open it - of course casting arcane arguments as short
// makes perfect sense
// and no, I don't know what that does
      Visio.Document vc = vdocs.OpenEx(@"Basic_U.vss", (short)Visio.VisOpenSaveArgs.visOpenDocked);

// it gets a little better here, this is pretty straightforward
            
Visio.Document vd = va.ActiveDocument;
Visio.Page vp = vd.Pages.Add();

// but now we need to get the master shapes collection
Visio.Masters vMasters = vc.Masters;  

// and select the shapes we are using from the collection
// I had to open the collection in the debugger to figure out
// which ones I needed - there wasn't a way to just get a list
// oh and another annoyance - the C# convention is to have 
// members start with upper case.  For Visio, some do and some don't
           Visio.Master RectangleMaster = vc.Masters.get_ItemU(@"Rounded rectangle");
Visio.Master ConnectionMaster = vc.Masters.get_ItemU(@"Dynamic connector");

 Visio.Shape MyselfAsShape = null;
// now let's drop a shape on the page and set some parameters
// here's where the fun starts

 MyselfAsShape = vp.Drop(RectangleMaster, xaxis, yaxis);

// set the width - you can't just access a width property 
// on the shape                       MyselfAsShape.get_CellsSRC((short)Visio.VisSectionIndices.visSectionObject, 
                           (short)Visio.VisRowIndices.visRowXFormOut, 
                           (short)Visio.VisCellIndices.visXFormWidth).FormulaU = "1.0 in";

// same for height                      MyselfAsShape.get_CellsSRC((short)Visio.VisSectionIndices.visSectionObject, 
                           (short)Visio.VisRowIndices.visRowXFormOut, 
                           (short)Visio.VisCellIndices.visXFormHeight).FormulaU = "1.5 in";



Other operations on shapes and connectors are similarly arcane.  I won't show the code but to connect 2 shapes you first get the shapes, then you figure out where the connection points are, then you use code similar to the above to connect them. You can't just do something like:

shape1.Connect(shape2)