Skip to content
/ oc Public
forked from awolven/oc

OpenCASCADE wrappers for Lisp

License

Notifications You must be signed in to change notification settings

caadxyz/oc

 
 

Repository files navigation

Users:

* # to run:

* # install sbcl.

* git clone [email protected]:awolven/oc.git

* # no need to install opencascade, as the binaries for version 7.1.0 are included

* sbcl # currently only sbcl is supported, but only for minor reasons which will change in the future

* (asdf:load-system :oc) ;; whatever method you use to load an asdf system

* (oc::make-bottle)
#<OC::TOPODS-COMPOUND {10022D9FC3}>

* ;; oc has no graphics, see https://github.com/awolven/cl-vulkan and https://github.com/awolven/VkTk if you need a graphics subsystem.

* ;; oc has bindings for generating meshes from solids which you can feed into opengl/vulkan/metal.

Developers:

* cd oc

* git submodule update --recursive --init # this downloads a custom swig build

* cd util

* # modify or add .i files as desired

* generate.sh # or generate.bat for Windows

* # known bug with cffi.cxx or swig:

* build.sh

* # look for this error in the output and change respective lines in oc_wrap.cxx

50896 | Vertex *) &((BRepBuilderAPI_MakeVertex const *)arg1)->Vertex();
51364 | opoDS_Wire *) &((BRepBuilderAPI_MakeWire const *)arg1)->Wire();
52899 | opoDS_Edge *) &((BRepBuilderAPI_MakeEdge const *)arg1)->Edge();

to: 

50896 | Vertex *) &(arg1)->Vertex();
51364 | opoDS_Wire *) &(arg1)->Wire();
52899 | opoDS_Edge *) &(arg1)->Edge();

* build.sh # rebuild this time without the casting errors

* # Add or edit lisp files as needed to wrap raw overloads and create your CLOS (or other) lispy interface

* # run lisp, re-load system and test

Releases

No releases published

Packages

No packages published

Languages

  • C++ 88.8%
  • C 8.2%
  • Common Lisp 2.2%
  • Other 0.8%