Even more Polyline Arc stuff for freecad

Well, life seems to in one of these modes where I’m busy as heck and not feeling like I have a lot to show for it.    It’s been a few weeks since I looked at that freecad stuff, so all the insites that I’ve had have gone a bit fuzzy.

On the workshop side of things, I want to cut some slots with my metal shaper and I was reflecting one how cool it would be if I had a automatic  downfeed.  I have my project that I was working on over Christmas break.  So I think I might be bouncing around projects on this lovely saturday.

When I last left off on this I seemed to think this is where I need to  set break points:
class DrawSketchHandlerLineSet: public DrawSketchHandler
in function:
virtual bool releaseButton(Base::Vector2D onSketchPos)

I was talking about this in the freecad forum. https://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=10&t=2097&start=20

Ok… I think may have narrowed in on the section of code that I need to hack..

So the next thing I need to figure out is how freecad how free cad stores a character during a keypress event.  (hopefully this will be relatively painless?)

I think I might have found something promising in:


I was able to set a breakpoint on keypressing during a sketch which looks real promising here:






So I think I need to examine the call stack at this point..  What I need to figure out is how to get a the keypress value at this point.

void ViewProvider::eventCallback(void * ud, SoEventCallback * node)

From the IRC these suggestions came about:


It seems like you can easily test to see if an alt ctrl etc… is pressed but not an “a”


It seems like going with a keyboard modifier would be easiest… but I’m not sure that’s the best approach..

I threw the question out to the free-cad forum: https://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=10&t=2386

Time to cut a few chips in the workshop.



This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *