发布于 2021-05-31 13:28:53
一个小小的背景:我在做一个项目并使用pythonocc。这是一个很棒的项目,但当时还停留在OCE (OpenCASCADE Community )上,v6和OpenCASCADE (官方版)已经发布了许多性能改进的v7+。我试图将pythonocc更新为v7+,但是使用7+时,它们更多地使用了c++模板,而且我无法掌握如何在SWIG中这样做。当我尝试用pybind11来做这件事时,它似乎是一种更自然的适合(而且我能够让它工作)。因此,我开始使用pyOCCT来使用pybind11包装OCCT 7+。
从那时起,pythonocc已经更新了它的包装过程,现在以OCCT为目标,所以如果您只是在Python中寻找对OCCT的访问,那么您就不会出错。Pythonocc拥有更大的用户群,因此您可能会找到更多的人与之协作。
我试图跟上SMESH,并最近启动了一个用于pySMESH应用程序的pySMESH项目,如果这与您的工作相关。这只与pyOCCT兼容。尽管如此,如果你真的愿意的话,如果你真的愿意的话,你也许可以为SMESH而不是pybind11写一些小包装,使它与pythonocc兼容。
发布于 2021-01-12 17:57:32
pyOCCT基于简单、强大的pybind11模板库。PythonOCC是基于SWIG的,这是相当复杂的。我尝试过这两种方法,pyOCCT看起来更有吸引力和透视图,特别是如果您需要添加自己的包装器以达到某种目的。但是,我根本不使用web渲染。
发布于 2021-06-08 22:34:49
也不是。使用CadQuery的OCP代替,因为OCP是唯一在内部使用基于sane clang的绑定生成器的基于sane clang的绑定生成器包装器。因此,OCP大致类似于PySide2,后者内部也使用基于sane clang的绑定生成器来生成其Python绑定。
同时,pyOCCT使用-specific宏。由于pybind11不使用clang,pyOCCT也不使用clang。奇怪的是,实际上有一个下游绑定生成器含糊不清地命名为"Binder“可以同时利用pybind11和clang。当然,pyOCCT不使用Binder。
在其他条件相同的情况下,在选择高级语言绑定到低级语言框架之间时,通常需要寻找的是这些绑定是否使用clang。更喜欢基于clang的绑定,而不是尝试(并且通常失败)使用手工滚动的词汇和解析器解析C++的临时绑定。C++是一个你永远不想用非标准工具链解析的词汇、句法和语义边缘案例的黑点。
相信卡昂。不信任任何东西,而不是咯咯作响。这就是方法。
https://stackoverflow.com/questions/62783383
复制相似问题