CadQuery / pywrap

C++ binding generator based on libclang and pybind11
Apache License 2.0
30 stars 12 forks source link

OCCT 7.3 Support #1

Closed jmwright closed 4 years ago

jmwright commented 4 years ago

@adam-urbanczyk Is the plan with this to support OCE, or will it be based on OCCT? A lot of the FOSS community's concerns about OCCT have been addressed, and OCE seems to be falling behind update-wise. Also, what's the thought process behind creating this from scratch vs forking PyOCCT or PythonOCC?

adam-urbanczyk commented 4 years ago

I currently work on OCCT 7.3. The idea was to have a binding generator that will require no (or minimal) manual fixing. PyOCCT came close but at the time I started working on this it's generator was not open sourced. Moreover I assumed that PythonOCC has stalled, but there seems to be activity on wrapping OCCT 7.4 now. I think I still want to bring this project to a usable state (actually not that far away) and propose to have a discussion then about which bindings (PythonOCC or this) to use. I like more the idea of using something like libclang (used by pywrap currently), libtooling (If I were to begin again I'd use this) or castXML for the bindings generation and that is the most important pro of this project.

NB: this project is rather involved and one cannot work on it 15' per day. I expect to have some time to push this forward late December.

adam-urbanczyk commented 4 years ago

@jmwright I added some clarifications to the README.

jmwright commented 4 years ago

I added some clarifications to the README.

@adam-urbanczyk Thanks.

You mentioned libtooling, so is this basically what you were thinking?

https://cppbinder.readthedocs.io/en/latest/about.html

adam-urbanczyk commented 4 years ago

I am aware of this project and others: https://github.com/jslee02/awesome-cpp-python-binding-generator . Probably I'd reuse some parts (C++ parsing) of binder, chimera or autowig.

adam-urbanczyk commented 4 years ago

Majority of OCCT 7.3 is working now.

jmwright commented 4 years ago

@adam-urbanczyk Awesome! Thanks for all your work on this. It's really appreciated.

jmwright commented 4 years ago

@adam-urbanczyk Is there a CadQuery branch or Anaconda environment that I could use to try this out?

adam-urbanczyk commented 4 years ago

No, not yet. You should be able to compile based on the current HEAD but I'm still tweaking things.

adam-urbanczyk commented 4 years ago

FYI: I did a quick conversion (cf. OCP branch of cadquery) and this is the result so far:

Ran 178 tests in 1.964s

FAILED (failures=1, errors=102)

Not great but on the right track.

jmwright commented 4 years ago

I imagine a lot of those errors could just be differences between OCE 6.9 and OCCT 7.3.

The build process seems to build pkl files. I can load those, but am not sure how to use them. How do I get the bindings to the point where I could import them similar to how we do it with PythonOCC?

adam-urbanczyk commented 4 years ago

Actually they are largely compatible. I have localized two issues so far:

adam-urbanczyk commented 4 years ago

@jmwright you should also get a lot of *cpp files generated in the specified output dir (OCP in the latest committed conf file). Just cd to it and run make (or make -j6 if you have more spare cores). NB: it will take a while to compile.

jmwright commented 4 years ago

The build ran for quite awhile, but ended up throwing errors and exiting. I see template argument 1 is invalid multiple times.

g++-8 -O3 -Wall --std=c++11 -fPIC  -g -fpermissive -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o NIS.o NIS.cpp
g++-8 -O3 -Wall --std=c++11 -fPIC  -g -fpermissive -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o ShapeFix.o ShapeFix.cpp
In file included from ShapeFix.cpp:9:
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:205:66: error: ‘TColStd_HArray1OfReal’ was not declared in this scope
                                                           Handle(TColStd_HArray1OfReal)& params,
                                                                  ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:205:66: note: suggested alternative: ‘TColStd_Array1OfReal’
                                                           Handle(TColStd_HArray1OfReal)& params,
                                                                  ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
 #define Handle(Class) opencascade::handle<Class>
                                                ^
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:205:59: note: in expansion of macro ‘Handle’
                                                           Handle(TColStd_HArray1OfReal)& params,
                                                           ^~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:208:138: error: ‘TColStd_HArray1OfReal’ was not declared in this scope
   Standard_EXPORT Handle(Geom2d_Curve) ApproximatePCurve (const Standard_Integer nbrPnt, Handle(TColgp_HArray1OfPnt2d)& points2d, Handle(TColStd_HArray1OfReal)& params, const Handle(Geom_Curve)& orig) const;
                                                                                                                                          ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:208:138: note: suggested alternative: ‘TColStd_Array1OfReal’
   Standard_EXPORT Handle(Geom2d_Curve) ApproximatePCurve (const Standard_Integer nbrPnt, Handle(TColgp_HArray1OfPnt2d)& points2d, Handle(TColStd_HArray1OfReal)& params, const Handle(Geom_Curve)& orig) const;
                                                                                                                                          ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
 #define Handle(Class) opencascade::handle<Class>
                                                ^
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:208:131: note: in expansion of macro ‘Handle’
   Standard_EXPORT Handle(Geom2d_Curve) ApproximatePCurve (const Standard_Integer nbrPnt, Handle(TColgp_HArray1OfPnt2d)& points2d, Handle(TColStd_HArray1OfReal)& params, const Handle(Geom_Curve)& orig) const;
                                                                                                                                   ^~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:210:133: error: ‘TColStd_HArray1OfReal’ was not declared in this scope
   Standard_EXPORT Handle(Geom_Curve) InterpolateCurve3d (const Standard_Integer nbrPnt, Handle(TColgp_HArray1OfPnt)& points, Handle(TColStd_HArray1OfReal)& params, const Handle(Geom_Curve)& orig) const;
                                                                                                                                     ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:210:133: note: suggested alternative: ‘TColStd_Array1OfReal’
   Standard_EXPORT Handle(Geom_Curve) InterpolateCurve3d (const Standard_Integer nbrPnt, Handle(TColgp_HArray1OfPnt)& points, Handle(TColStd_HArray1OfReal)& params, const Handle(Geom_Curve)& orig) const;
                                                                                                                                     ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
 #define Handle(Class) opencascade::handle<Class>
                                                ^
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:210:126: note: in expansion of macro ‘Handle’
   Standard_EXPORT Handle(Geom_Curve) InterpolateCurve3d (const Standard_Integer nbrPnt, Handle(TColgp_HArray1OfPnt)& points, Handle(TColStd_HArray1OfReal)& params, const Handle(Geom_Curve)& orig) const;
                                                                                                                              ^~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:212:81: error: ‘TColStd_HArray1OfReal’ was not declared in this scope
   Standard_EXPORT void CheckPoints (Handle(TColgp_HArray1OfPnt)& points, Handle(TColStd_HArray1OfReal)& params, Standard_Real& preci) const;
                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:212:81: note: suggested alternative: ‘TColStd_Array1OfReal’
   Standard_EXPORT void CheckPoints (Handle(TColgp_HArray1OfPnt)& points, Handle(TColStd_HArray1OfReal)& params, Standard_Real& preci) const;
                                                                                 ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
 #define Handle(Class) opencascade::handle<Class>
                                                ^
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:212:74: note: in expansion of macro ‘Handle’
   Standard_EXPORT void CheckPoints (Handle(TColgp_HArray1OfPnt)& points, Handle(TColStd_HArray1OfReal)& params, Standard_Real& preci) const;
                                                                          ^~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:214:85: error: ‘TColStd_HArray1OfReal’ was not declared in this scope
   Standard_EXPORT void CheckPoints2d (Handle(TColgp_HArray1OfPnt2d)& points, Handle(TColStd_HArray1OfReal)& params, Standard_Real& preci) const;
                                                                                     ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:214:85: note: suggested alternative: ‘TColStd_Array1OfReal’
   Standard_EXPORT void CheckPoints2d (Handle(TColgp_HArray1OfPnt2d)& points, Handle(TColStd_HArray1OfReal)& params, Standard_Real& preci) const;
                                                                                     ^~~~~~~~~~~~~~~~~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:43: note: in definition of macro ‘Handle’
 #define Handle(Class) opencascade::handle<Class>
                                           ^~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/Standard_Handle.hxx:463:48: error: template argument 1 is invalid
 #define Handle(Class) opencascade::handle<Class>
                                                ^
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/ShapeConstruct_ProjectCurveOnSurface.hxx:214:78: note: in expansion of macro ‘Handle’
   Standard_EXPORT void CheckPoints2d (Handle(TColgp_HArray1OfPnt2d)& points, Handle(TColStd_HArray1OfReal)& params, Standard_Real& preci) const;
                                                                              ^~~~~~
<builtin>: recipe for target 'ShapeFix.o' failed
make: *** [ShapeFix.o] Error 1
adam-urbanczyk commented 4 years ago

It should be fixed in the latest commit. You'd need to regenerate the bindings though.

It was related to non-deterministic order of including header files (that is why I did not see this issue). Now I sort them so all should be fine.

jmwright commented 4 years ago

It starts throwing errors in a different spot now. Do I have a version mismatch somehow? I rebuilt the conda environment off of the yml file in master before starting this build.

g++-8 -O3 -Wall --std=c++17 -fPIC  -g -fpermissive -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o TopTools_enums.o TopTools_enums.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -g -fpermissive -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o IntCurvesFace.o IntCurvesFace.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -g -fpermissive -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o HLRAlgo.o HLRAlgo.cpp
In file included from /home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/HLRAlgo_Array1OfPHDat.hxx:20,
                 from HLRAlgo.cpp:16:
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/HLRAlgo_PolyHidingData.hxx:41:5: error: ‘gp_XYZ’ does not name a type
     gp_XYZ Normal;
     ^~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/HLRAlgo_PolyHidingData.hxx: In member function ‘void HLRAlgo_PolyHidingData::Set(Standard_Integer, Standard_Integer, Standard_Integer, Standard_Real, Standard_Real, Standard_Real, Standard_Real)’:
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/HLRAlgo_PolyHidingData.hxx:61:13: error: ‘struct HLRAlgo_PolyHidingData::PlaneT’ has no member named ‘Normal’
     myPlane.Normal = gp_XYZ(A, B, C);
             ^~~~~~
/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade/HLRAlgo_PolyHidingData.hxx:61:22: error: ‘gp_XYZ’ was not declared in this scope
     myPlane.Normal = gp_XYZ(A, B, C);
                      ^~~~~~
<builtin>: recipe for target 'HLRAlgo.o' failed
make: *** [HLRAlgo.o] Error 1
adam-urbanczyk commented 4 years ago

Could you try to make -k -j and then report what make -n says?

jmwright commented 4 years ago
$ make -n
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o BRepApprox.o BRepApprox.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o BRepBlend_enums.o BRepBlend_enums.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o NCollection_enums.o NCollection_enums.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o BRepBlend.o BRepBlend.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o BRepApprox_enums.o BRepApprox_enums.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o NCollection.o NCollection.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o HLRAlgo.o HLRAlgo.cpp
g++-8 -O3 -Wall --std=c++17 -fPIC  -fpermissive -fvisibility=hidden -fvisibility-inlines-hidden -D_GLIBCXX_USE_CXX11_ABI=0 -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/python3.6m -I/home/jwright/.local/include/python3.6m -I/home/jwright/anaconda3/envs/cpp-py-bindgen/include/opencascade  -c -o HLRAlgo_enums.o HLRAlgo_enums.cpp
g++-8 -shared -L/home/jwright/anaconda3/envs/cpp-py-bindgen/lib -o OCP.cpython-36m-x86_64-linux-gnu.so RWStepAP203_enums.o BinDrivers.o TColgp_enums.o BRep.o BRepTools.o IGESSolid_enums.o TColGeom_enums.o ShapeConstruct.o TNaming_enums.o ShapeAlgo_enums.o BinLDrivers_enums.o Plugin.o Geom2dConvert.o BSplSLib_enums.o RWStepRepr.o BinTObjDrivers.o ShapeAnalysis_enums.o StepToTopoDS_enums.o IGESAppli_enums.o V3d.o DsgPrs_enums.o Geom2dGcc.o BRepOffset_enums.o IntCurvesFace.o XmlMDF.o GeomAbs.o IGESConvGeom.o BSplCLib.o Transfer_enums.o ShapeExtend_enums.o BOPTools_enums.o LProp3d_enums.o Geom2dLProp.o BRepFilletAPI_enums.o IntAna_enums.o StdPrs_enums.o AppStd_enums.o IFSelect.o BRepBuilderAPI.o BRepGProp.o RWStepAP214.o XmlMFunction.o RWStepDimTol.o Draft_enums.o RWStepVisual.o TDF.o GccEnt_enums.o ElCLib_enums.o XmlDrivers_enums.o RWStepShape.o RWStepFEA.o ShapeFix_enums.o Interface_enums.o gp_enums.o IntImpParGen_enums.o Extrema.o Plate.o Sweep.o TopAbs.o RWStepRepr_enums.o IntPolyh_enums.o BRepLib.o UTL.o OpenGl.o StdObjMgt_enums.o CSLib_enums.o Geom2dEvaluator_enums.o StepData_enums.o gce.o BRepAlgo_enums.o ShapePersistent.o FEmTool.o BRepAdaptor_enums.o TDataXtd_enums.o BRepPrimAPI_enums.o LocOpe_enums.o StdPersistent.o ChFi3d.o ShapeProcess_enums.o XmlMNaming.o AppParCurves.o BOPDS.o StepAP242_enums.o AdvApprox.o RWStepVisual_enums.o StdStorage_enums.o FSD.o Bnd_enums.o UnitsAPI.o ElSLib.o IntTools.o IntImp.o GeomLProp_enums.o AppDef_enums.o UTL_enums.o StepRepr_enums.o GC_enums.o GeomToStep.o StepAP214_enums.o GeomLib_enums.o CPnts.o IGESToBRep_enums.o V3d_enums.o BRepApprox.o Adaptor3d.o AdvApp2Var.o XmlMDataXtd_enums.o BRepExtrema.o AppDef.o GeomProjLib.o AppParCurves_enums.o HLRAppli_enums.o BRepOffsetAPI_enums.o STEPConstruct.o BRepTopAdaptor_enums.o TopCnx_enums.o Geom2dHatch.o XSControl.o GccAna.o IGESGeom_enums.o BOPAlgo.o ShapeExtend.o StepDimTol_enums.o BRepBndLib.o AppStdL_enums.o ProjLib.o GeomEvaluator.o Font.o Aspect_enums.o BinMDF_enums.o ShapeCustom_enums.o BRepBlend_enums.o AppBlend.o StepShape_enums.o GCE2d.o XBRepMesh.o BSplSLib.o GeomInt_enums.o StdLPersistent_enums.o TopOpeBRepBuild.o GeomPlate.o Geom2dAPI.o ChFiDS_enums.o Sweep_enums.o GeomAPI_enums.o IGESDefs_enums.o IntCurvesFace_enums.o ChFi2d_enums.o StepAP209.o StepVisual.o Message.o BRepClass.o RWStepAP242_enums.o STEPConstruct_enums.o Storage.o BinTools_enums.o RWStepElement_enums.o SelectBasics.o BinMFunction_enums.o Convert_enums.o BiTgte_enums.o StepBasic_enums.o Geom2dToIGES_enums.o StdSelect_enums.o BVH.o TShort.o Approx_enums.o TopExp_enums.o IGESDraw.o BRepIntCurveSurface_enums.o BRepPrim_enums.o Standard.o SelectMgr_enums.o LProp_enums.o GeomLProp.o TColGeom2d.o NCollection_enums.o IFSelect_enums.o StlAPI.o NIS.o TObj_enums.o BRepFeat.o TopoDSToStep.o Image.o XSControl_enums.o Units.o XmlObjMgt.o TColStd.o HLRBRep.o MAT2d_enums.o Law_enums.o RWStepAP242.o Adaptor2d_enums.o BinDrivers_enums.o BRepTools_enums.o BRepBlend.o AppCont.o GeomTools.o TObj.o Geom2d.o Plugin_enums.o BRepApprox_enums.o IntRes2d.o TopOpeBRepTool.o BRepBndLib_enums.o BinTObjDrivers_enums.o RWStl_enums.o Quantity.o math.o IntRes2d_enums.o NLPlate_enums.o Geom2dAdaptor_enums.o ShapeFix.o Adaptor2d.o XmlMDF_enums.o GeomAbs_enums.o IGESFile_enums.o TopTools.o TopBas_enums.o BRepClass3d.o IGESBasic_enums.o Geom2d_enums.o InterfaceGraphic_enums.o BRepPrim.o BRepLProp_enums.o BRepBuilderAPI_enums.o BRepMesh.o RWStepAP214_enums.o XmlMFunction_enums.o RWStepDimTol_enums.o BinMNaming_enums.o ShapeProcess.o TopTrans.o IGESFile.o PrsMgr_enums.o StepData.o Convert.o BRepAlgo.o GeomInt.o RWStepShape_enums.o HLRAppli.o BRepAdaptor.o XBRepMesh_enums.o RWStl.o BRepPrimAPI.o Extrema_enums.o Plate_enums.o BRepClass3d_enums.o TopAbs_enums.o StepAP242.o Bisector_enums.o BRepLib_enums.o IGESDimen.o OpenGl_enums.o BRepCheck.o ChFi3d_enums.o IntAna2d_enums.o Hatch_enums.o Geom2dGcc_enums.o GeomToIGES_enums.o FairCurve_enums.o StepRepr.o Geom_enums.o CDF_enums.o BRepToIGESBRep_enums.o GccInt.o Precision_enums.o TNaming.o BinObjMgt.o TopOpeBRepDS_enums.o ShapeConstruct_enums.o IGESToBRep.o HatchGen.o RWStepFEA_enums.o TopTrans_enums.o Resource_enums.o XmlMDataXtd.o XmlDrivers.o ElSLib_enums.o ShapeUpgrade_enums.o ShapeProcessAPI.o BRepLProp.o SelectBasics_enums.o StepGeom_enums.o LProp.o MMgt_enums.o BRepOffsetAPI.o Bnd.o IntStart_enums.o BRepTopAdaptor.o BRepSweep_enums.o TColStd_enums.o StepAP214.o IGESGeom.o StepDimTol.o GeomFill_enums.o STEPEdit_enums.o GeomAPI.o BinMDocStd.o Aspect.o XmlTObjDrivers.o BRepMAT2d_enums.o LDOM_enums.o LocOpe.o StepShape.o TColGeom.o Adaptor3d_enums.o MAT_enums.o IGESBasic.o ChFiDS.o TShort_enums.o IntPatch_enums.o XmlLDrivers.o IGESDefs.o StdPrs.o BinMFunction.o Blend_enums.o TopCnx.o TColgp.o BiTgte.o TopoDS.o RWStepElement.o Geom2dToIGES.o TCollection.o Approx.o RWStepGeom_enums.o ExprIntrp_enums.o StepFEA.o BRepProj.o StdLPersistent.o CDF.o SelectMgr.o AIS_enums.o BRepProj_enums.o RWStepBasic.o StdObject_enums.o NCollection.o MeshVS_enums.o IGESGraph_enums.o TPrsStd_enums.o IGESData_enums.o TopoDS_enums.o IntStart.o CDM_enums.o BlendFunc.o HLRTopoBRep_enums.o Message_enums.o StepToGeom_enums.o IFGraph.o GeomConvert_enums.o StepElement_enums.o MAT2d.o Contap.o ChFi2d.o GeomToIGES.o Xw_enums.o TopOpeBRep_enums.o Intrv_enums.o ShapeAlgo.o TDataStd_enums.o TopLoc_enums.o Expr.o Intf_enums.o ShapeAnalysis.o TDF_enums.o Geom.o IGESAppli.o GCPnts_enums.o BinMDocStd_enums.o DsgPrs.o RWStepBasic_enums.o XmlMDataStd_enums.o BRepOffset.o StdObjMgt.o StdSelect.o BRep_enums.o IntAna2d.o XmlTObjDrivers_enums.o Bisector.o Transfer.o BRepAlgoAPI_enums.o TopOpeBRep.o BOPTools.o RWStepGeom.o LProp3d.o BRepGProp_enums.o BRepFilletAPI.o IntAna.o BlendFunc_enums.o AppStdL.o Prs3d_enums.o ShapeProcessAPI_enums.o STEPSelections_enums.o Draft.o IntTools_enums.o ShapeCustom.o GccEnt.o Intf.o BndLib.o BRepMesh_enums.o LDOM.o CSLib.o gp.o Geom2dLProp_enums.o IGESSelect_enums.o GeomConvert.o Geom2dConvert_enums.o IntPolyh.o Storage_enums.o TDocStd.o XmlLDrivers_enums.o IntSurf_enums.o BRepToIGES.o BRepFill_enums.o STEPControl_enums.o Hermit_enums.o StepAP203.o GeomFill.o AppCont_enums.o GeomTools_enums.o TDataXtd.o LocalAnalysis_enums.o Select3D.o GccAna_enums.o GeomLib.o Poly.o Precision.o StdFail.o BndLib_enums.o IntCurve.o Geom2dInt_enums.o math_enums.o XmlMNaming_enums.o GC.o TopClass_enums.o FSD_enums.o IGESControl_enums.o TopTools_enums.o HLRAlgo.o TopOpeBRepTool_enums.o TFunction_enums.o XmlMDocStd.o CPnts_enums.o BinMDataStd.o ShapeBuild_enums.o BRepIntCurveSurface.o GeomAdaptor.o OSD.o BRepAlgoAPI.o TDocStd_enums.o Hatch.o BRepToIGES_enums.o GeomProjLib_enums.o Contap_enums.o Intrv.o BRepToIGESBRep.o TPrsStd.o STEPSelections.o TopOpeBRepDS.o FairCurve.o IFGraph_enums.o Select3D_enums.o Resource.o Poly_enums.o ElCLib.o IntCurve_enums.o GCPnts.o Geom2dAPI_enums.o AppStd.o StepGeom.o GProp_enums.o PrsMgr.o TopBas.o Xw.o IntCurveSurface.o HLRAlgo_enums.o IntSurf.o XmlMDocStd_enums.o STEPEdit.o BinMDataStd_enums.o Geom2dEvaluator.o GccInt_enums.o BRepMAT2d.o ShapeBuild.o OCP.o NLPlate.o StdStorage.o LocalAnalysis.o GeomAdaptor_enums.o OSD_enums.o StepBasic.o MAT.o IntPatch.o StepFEA_enums.o gce_enums.o ShapePersistent_enums.o FEmTool_enums.o StdDrivers.o BRepSweep.o Graphic3d_enums.o IGESGraph.o MeshVS.o BOPDS_enums.o AdvApprox_enums.o Voxel.o Geom2dAdaptor.o BSplCLib_enums.o IGESConvGeom_enums.o StdLDrivers.o Blend.o UnitsAPI_enums.o BRepClass_enums.o ExprIntrp.o Voxel_enums.o BinMDF.o BRepFeat_enums.o Quantity_enums.o AIS.o BinObjMgt_enums.o IntImp_enums.o GeomToStep_enums.o TDataStd.o ShapeUpgrade.o IGESDraw_enums.o StdLDrivers_enums.o CDM.o Law.o HLRTopoBRep.o AdvApp2Var_enums.o FilletSurf.o BRepExtrema_enums.o Expr_enums.o StepElement.o PLib.o IGESSolid.o StdFail_enums.o Geom2dHatch_enums.o IGESDimen_enums.o BOPAlgo_enums.o BinLDrivers.o Geom2dInt.o Graphic3d.o ProjLib_enums.o GeomEvaluator_enums.o IGESControl.o TopLoc.o FilletSurf_enums.o RWStepAP203.o Font_enums.o AppBlend_enums.o GCE2d_enums.o PCDM.o InterfaceGraphic.o XmlMDataStd.o TopOpeBRepBuild_enums.o TopExp.o StdObject.o IntImpParGen.o GeomPlate_enums.o BinMDataXtd.o PCDM_enums.o BinMNaming.o BRepCheck_enums.o StepAP209_enums.o StepVisual_enums.o BRepFill.o TCollection_enums.o Interface.o GProp.o Prs3d.o StdDrivers_enums.o BVH_enums.o StepToTopoDS.o StepToGeom.o Standard_enums.o BinMDataXtd_enums.o TopClass.o IGESData.o TColGeom2d_enums.o TFunction.o IGESSelect.o StlAPI_enums.o NIS_enums.o IntCurveSurface_enums.o STEPControl.o HatchGen_enums.o TopoDSToStep_enums.o PLib_enums.o Image_enums.o StepAP203_enums.o Units_enums.o XmlObjMgt_enums.o MMgt.o HLRBRep_enums.o StdPersistent_enums.o BinTools.o Hermit.o -l:libTKMath.so -l:libTKernel.so -l:libTKG2d.so -l:libTKG3d.so -l:libTKGeomBase.so -l:libTKBRep.so -l:libTKGeomAlgo.so -l:libTKTopAlgo.so -l:libTKPrim.so -l:libTKShHealing.so -l:libTKHLR.so -l:libTKMesh.so -l:libTKBO.so -l:libTKBool.so -l:libTKFeat.so -l:libTKOffset.so -l:libTKFillet.so -l:libTKGeomAlgo.so -l:libTKHLR.so -l:libTKMesh.so -l:libTKOffset.so -l:libTKPrim.so -l:libTKShHealing.so -l:libTKTopAlgo.so -l:libTKXMesh.so -l:libTKXSBase.so -l:libTKService.so -l:libTKV3d.so -l:libTKOpenGl.so -l:libTKMeshVS.so -l:libTKBin.so -l:libTKBinL.so -l:libTKBinTObj.so -l:libTKCAF.so -l:libTKCDF.so -l:libTKLCAF.so -l:libTKStd.so -l:libTKStdL.so -l:libTKTObj.so -l:libTKVCAF.so -l:libTKXml.so -l:libTKXmlL.so -l:libTKXmlTObj.so -l:libTKIGES.so -l:libTKSTEP.so -l:libTKSTEP209.so -l:libTKSTEPAttr.so -l:libTKSTEPBase.so -l:libTKSTL.so -l:libTKXSBase.so
adam-urbanczyk commented 4 years ago

Thanks @jmwright ! I uploaded what I generated locally to https://github.com/CadQuery/OCP , could you also try to compile that (NB: you'll need to copy over your makefile)?

jmwright commented 4 years ago

Cross-referencing the issue on the OCP repo: https://github.com/CadQuery/OCP/issues/1

jmwright commented 4 years ago

I think we can close this now as pywrap and OCP both support OCCT 7.4.0.