Hi guys. Would a 'pocketing' routine like this help?:

http://code.google.com/p/libarea/

I use routines like this to mill away material, but you could also use it for filling.

Dan

On 2/11/10 8:34 AM, Dave Cowden wrote:
Hi, Thomas, thanks!

The target machine is a rapid prototyping (RP) machine-- RepRap. Thus, the infill for a slice is not necessarily a 'machine all material away' path. Ultimately it still uses Gcode, but it is additive rather than subtractive. I use EMC for machine control.

The ideal is actually to offset all of the wires on the face inwards to create a user-configured number of 'shells' around the exterior boundaries, but then inside fill with a hatch pattern. For the offset I can use BRepOffsetAPI of course.

The unusual variation that an RP machine has is that the interior hatching is ideally not uniform or 100% coverage. Sometimes a honeycomb is desired, and other times, a 'sparse' hatch is desired to save material.

I thought about looping over the surface parameters, but then again realized it would not create points along a uniform grid.

Is there a function that will test whether a point is on the surface? Maybe it would be easiest to make my own discrete x-y- grid, and then simply test each point for membership on the surface.

I'm quite excited about this project. The main reason is that nearly the entire RP community ( including commercial ) still relies on STL files for production. This is a pain because it results in all toolpaths being little line segments. So for curves there end up being a billion little G01 moves.

Using OCC represents the only way i know of to use STEP representations of solids, which when sliced still preserve the ability to generate Gcode arcs ( G02/G03 ), which result in much smaller Gcode and much smoother motion than having all arcs represented by tiny line segments. This would be the first tool that can prevent a triangulated approximation during the fabrication process.

Thanks for the help!

On Thu, Feb 11, 2010 at 11:16 AM, Jelle Feringa <jelleferi...@gmail.com <mailto:jelleferi...@gmail.com>> wrote:

    > I'm getting back to using pyOCC after a while.

    Welcome back Dave, we've missed you!

    > I am hoping someone can point me the right direction. After
    reading documentation and samples for a few hours, I'm still not
    sure where to start.
    >
    > Previously, I have written a slicing application ( samples-->
    slicer ), and I would like to continue that work.
    >
    > The next step is to create toolpaths that fill in the faces
    created from the slicing operation.

    Wow, so a g-code export?
    Have you seen pycam?

    >  There are a number of general approaches that could be used:
     One is to use BRepOffset to offset the wires inwards.
    >
    > However, the approach I would rather take is to use a 'grid'
    approach, in which I first compute a grid of points on the face,
    and the fill them all in afterwards.  I feel like this approach
    will be more tolerant to degenerate geometry.

    Yes, dekskproto of delft spline systems has that algorithm for
    instance.

    > So, to my question:  I think looking at the SMESH sample, I
    could use smesh to generate a set of points on my surface that are
    spaced evenly.

    Or just loop through the U,V domain of a face?
    And than offset via the normal of the face?

    >  Looking at the sample I can see how to create the mesh, but I
    cannot see how to extract the points from the mesh.

    You could do something similar ( if you decide polysoup is the way
    to go ) to just look up the triangles that represent a surface (
    we always look at triangles in OpenGL, you don't get to see the
    actual nurbs but just an approximation )

    > I am also unsure how to instruct the mesher to generate a grid
    that has a fixed space between the points in a particular plane.

    No way a mesher will generate equidistant points uh uh...

    >  In my case the face will always be a planar face in the x-y
    plane: what I want is an array of points at a fixed spacing that
    cover the surface.

    Right, abscissa points…
    So, what about dividing up the contours of your slicer by n-points
    or a distance?

    For what machine are you writing the slicer exactly?
    Do you need an offset ( like we need when milling ) to the surface?

    Happy to see you back on this list ;')

    -jelle
    _______________________________________________
    Pythonocc-users mailing list
    Pythonocc-users@gna.org <mailto:Pythonocc-users@gna.org>
    https://mail.gna.org/listinfo/pythonocc-users



_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to