Hi Dan,

Yes that logo looks like a fairly good test case. It has some very sharp
small portions.

What do you think the possibility would be to "pyOCC-size" that algorithm so
that we can use it convieniently in conjunction with the OCC objects?

IE, how difficult would it be to make a python version of the library that
would operation on a wire object?  That'd save me some work.

Last night i spent some time on a routine to convert an edge, wire, and
gp_Pnt into code-- these were fairly easy, because I copped out and handled
only edges that have lines as the curve.  But with another few hours i
should be able to handle curves of type circle and ellipse and convert them
to G2/G3 ( which, by the way, is something very very few cam packages out
there do today).

After that, my next step would be the last one i need for my slicer-- to add
'convert a face to gcode'.  Doing this part would need the offset algorithm
available...



On Fri, Feb 12, 2010 at 10:10 AM, Dan Falck <dfa...@verizon.net> wrote:

>  Hi Dave,
>
> I will try and attach a screenshot. I think that this lib does pretty well.
> I used it for pocketing this logo and was pretty pleased with the results. I
> haven't used it extensively, but so far so good.
>
> Thanks,
> Dan
>
>
>
> On 2/12/10 4:14 AM, Dave Cowden wrote:
>
> Hey, Dan:
>
>  How well does this routine handle geometries for which offset curves self
> or boundary intersect?  pyOCC actually has a very easy to use tool to do the
> offsets, but it runs into trouble when the curves self-intersect--
> essentially it just punts and throws an error.
>
>  So, with pyOCC i think i'd have to manually offset each curve and then
> find the intersections, so that I can deal with what happens when the
> geometry is odd....
>
> On Thu, Feb 11, 2010 at 10:48 PM, Dan Falck <dfa...@verizon.net> wrote:
>
>> 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>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
>>> https://mail.gna.org/listinfo/pythonocc-users
>>>
>>
>>
>> _______________________________________________
>> Pythonocc-users mailing 
>> listpythonocc-us...@gna.orghttps://mail.gna.org/listinfo/pythonocc-users
>>
>>
>> _______________________________________________
>> Pythonocc-users mailing list
>> Pythonocc-users@gna.org
>> https://mail.gna.org/listinfo/pythonocc-users
>>
>>
>
> _______________________________________________
> Pythonocc-users mailing 
> listpythonocc-us...@gna.orghttps://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