Surfacing example

Here's the place for discussion related to CAM/CNC and the development of the Path module.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
topcyde
Posts: 48
Joined: Wed Mar 05, 2014 5:32 am

Surfacing example

Post by topcyde »

I'm building some examples for testing things in path but I can't get anything to work from surfacing.

Does anyone have a working surfacing example?

I was also curious, is surfacing using libarea or opencamlib? The calls I'm seeing in PathSurface.py are ocl.
Is it going to stay ocl or is it being ported to libarea?
Linden
Posts: 109
Joined: Wed Aug 19, 2015 10:35 pm
Location: Canada/Philippines

Re: Surfacing example

Post by Linden »

topcyde wrote: I'm building some examples for testing things in path but I can't get anything to work from surfacing.
Does anyone have a working surfacing example?
I was also curious, is surfacing using libarea or opencamlib? The calls I'm seeing in PathSurface.py are ocl.
Is it going to stay ocl or is it being ported to libarea?
I have attached an example for you.
Under operations you can pick the algorithm to run from the drop down list.
It is also a bit counter intuitive as you have to select the object out of the tree and then press the Surface path button. Or i have just not figured out how to select complete object rather than faces in the viewr.

hope this helps linden
Attachments
Surface example.fcstd
(15.1 KiB) Downloaded 128 times
Linden
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Surfacing example

Post by sliptonic »

Linden wrote:
topcyde wrote: I'm building some examples for testing things in path but I can't get anything to work from surfacing.
Does anyone have a working surfacing example?
I was also curious, is surfacing using libarea or opencamlib? The calls I'm seeing in PathSurface.py are ocl.
Is it going to stay ocl or is it being ported to libarea?
I have attached an example for you.
Under operations you can pick the algorithm to run from the drop down list.
It is also a bit counter intuitive as you have to select the object out of the tree and then press the Surface path button. Or i have just not figured out how to select complete object rather than faces in the viewr.

hope this helps linden
You are correct. Surfacing is very unfinished and only operates on the whole object right now.

It also requires opencamlib to be installed separately. If the report window is open, you'll see an error if ocl isn't working.
duisenberg
Posts: 6
Joined: Wed Sep 07, 2016 10:57 pm

Re: Surfacing example

Post by duisenberg »

Is there a windows version / installer available for opencamlib?

And - isnt opencamlib a bit like a dead horse as a Freecad part due to its GPL V3 license?
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Surfacing example

Post by sliptonic »

duisenberg wrote:Is there a windows version / installer available for opencamlib?

And - isnt opencamlib a bit like a dead horse as a Freecad part due to its GPL V3 license?
I don't use windows so I can't say but a good place to start is here: https://github.com/aewallin/opencamlib/ ... er/Windows

Opencamlib is the best open source library for 3D offsetting that I'm aware of. It does waterlining and dropcutter paths. Sister project, openvoronoi can do centerline calculation for V-cutter engraving among other things.

It's unfortunate that the license is incompatible with FreeCAD which prevents easy distribution but that doesn't mean we have an alternative. If you're aware of one, I'll happy take a look at it.

At least in the linux world, it's possible that packages could be built and accepted into the default repos. That would make installation trivial for linux users but someone would have to step up to maintain a windows installer.
User avatar
sliptonic
Veteran
Posts: 3459
Joined: Tue Oct 25, 2011 10:46 pm
Location: Columbia, Missouri
Contact:

Re: Surfacing example

Post by sliptonic »

FWIW, we'll have the same issue with adaptive roughing. The only open source library I'm aware of is libactp. This is the basis of the Freesteel/ HSM algorithm. It would be great to have this in FreeCAD but it too is license incompatible. That doesn't mean we can't have an operation that uses it, but we won't be able to distribute the library itself with FreeCAD.
topcyde
Posts: 48
Joined: Wed Mar 05, 2014 5:32 am

Re: Surfacing example

Post by topcyde »

well after beating my head against the wall for a week trying to get this to work, I realize that ocl is is my problem. I didn't realize that until scrubbing over the source a little more thoroughly trying to figure out why nothing was adjusting when changing parameters. I realized that the OCL waterline and OCL Dropcutter options are hardcoded into PathSurface not based on if they are available installed. Was sure I had it installed because I would have expected and error to have come up on launching PathSurface about import ocl not working. I decided to verify it manually

To check, in the console:

Code: Select all

>>> import ocl
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ImportError: dynamic module does not define init function (initocl)
Then I tried pyocl and it sees it, which means they're in the right place.

Code: Select all

>>> import pyocl
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pyocl.py", line 12, in <module>
    import ocl
ImportError: dynamic module does not define init function (initocl)
Still not sure what that means because the ocl.so file is right there in the same directory.
which is /usr/local/lib/python2.7/dist-packages

To double check I did a rebuild and reinstall for ocl and everything looks good but still have the same issue with ocl not working.
Here's the output if anyone could take a look and see if there's something not right that I am overlooking. I'm going to give it another shot tomorrow.

Code: Select all

~/opencamlib/build$ sudo make install
[sudo] password for graphos: 
[ 46%] Built target libocl
[ 59%] Built target ocl_algo
[ 64%] Built target ocl_dropcutter
[ 78%] Built target ocl_geo
[ 81%] Built target ocl_common
[ 92%] Built target ocl_cutters
[100%] Built target ocl
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/python2.7/dist-packages/ocl.so.11.10.64
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/ocl.so
-- Installing: /usr/local/lib/python2.7/dist-packages
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/camvtk.py
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/procmemory.py
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/STLTools.py
-- Up-to-date: /usr/local/lib/python2.7/dist-packages/pyocl.py
-- Up-to-date: /usr/local/lib/opencamlib/libocl.so.11.10.64
-- Up-to-date: /usr/local/lib/opencamlib/libocl.so
-- Up-to-date: /usr/local/include/opencamlib/arc.hpp
-- Up-to-date: /usr/local/include/opencamlib/bbox.hpp
-- Up-to-date: /usr/local/include/opencamlib/ccpoint.hpp
-- Up-to-date: /usr/local/include/opencamlib/clpoint.hpp
-- Up-to-date: /usr/local/include/opencamlib/line.hpp
-- Up-to-date: /usr/local/include/opencamlib/path.hpp
-- Up-to-date: /usr/local/include/opencamlib/stlreader.hpp
-- Up-to-date: /usr/local/include/opencamlib/stlsurf.hpp
-- Up-to-date: /usr/local/include/opencamlib/triangle.hpp
-- Up-to-date: /usr/local/include/opencamlib/point.hpp
-- Up-to-date: /usr/local/include/opencamlib/ballcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/bullcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/compositecutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/conecutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/cylcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/ellipseposition.hpp
-- Up-to-date: /usr/local/include/opencamlib/millingcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/ellipse.hpp
-- Up-to-date: /usr/local/include/opencamlib/adaptivepathdropcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/pathdropcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/batchdropcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/pointdropcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/brent_zero.hpp
-- Up-to-date: /usr/local/include/opencamlib/kdnode.hpp
-- Up-to-date: /usr/local/include/opencamlib/kdtree.hpp
-- Up-to-date: /usr/local/include/opencamlib/numeric.hpp
-- Up-to-date: /usr/local/include/opencamlib/lineclfilter.hpp
-- Up-to-date: /usr/local/include/opencamlib/clfilter.hpp
-- Up-to-date: /usr/local/include/opencamlib/halfedgediagram.hpp
-- Up-to-date: /usr/local/include/opencamlib/operation.hpp
-- Up-to-date: /usr/local/include/opencamlib/batchpushcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/fiberpushcutter.hpp
-- Up-to-date: /usr/local/include/opencamlib/fiber.hpp
-- Up-to-date: /usr/local/include/opencamlib/interval.hpp
-- Up-to-date: /usr/local/include/opencamlib/waterline.hpp
-- Up-to-date: /usr/local/include/opencamlib/adaptivewaterline.hpp
-- Up-to-date: /usr/local/include/opencamlib/weave.hpp
-- Up-to-date: /usr/local/include/opencamlib/simple_weave.hpp
-- Up-to-date: /usr/local/include/opencamlib/smart_weave.hpp
-- Up-to-date: /usr/local/include/opencamlib/weave_typedef.hpp
-- Up-to-date: /usr/local/include/opencamlib/tsp.hpp
-- Installing: /usr/local/include/opencamlib/version_string.hpp
Post Reply