-
Notifications
You must be signed in to change notification settings - Fork 391
tester-occ-7.4.0 #300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tester-occ-7.4.0 #300
Conversation
|
@adam-urbanczyk Can correct me, but I believe all tests pass on the OCP branch, but CI hasn't been updated. https://github.com/CadQuery/cadquery/tree/OCP I like the PythonOCC project, but I think @adam-urbanczyk made a compelling case for having our own bindings here: CadQuery/OCP#4 (comment) When CQ was originally based on FreeCAD, we started hitting the limits of what their API exposed to us. PythonOCC is pretty complete, but Adam is using some more modern binding technologies to get us close to a 1:1 set of output bindings that are generated in a much more automated way than I've seen from other projects. That makes updates for new versions of OCCT very fast too. We're already going through a disruptive transition away from FreeCAD, so my thought is that we might as well go through the extra pain of switching to custom, auto-generated bindings and get it over with. I believe that will set us up better for the future. That's my two cents. The discussion is still open though. |
|
I forgot that @adam-urbanczyk just did an alpha release of OCP with builds for the three major OSes. https://github.com/CadQuery/OCP/releases/tag/7.4-alpha That makes it easier to get started with OCP. |
|
@jmwright Jeremy: to me that sounds like he wants to support both OCP and P-OCC, no? :-) instead, could have just said straight "NO" to P-OCC. oh, well... :-) |
|
ok, I finally got to the source of my confusion: https://github.com/CadQuery/cadquery/tree/master https://github.com/CadQuery/cadquery/tree/OCP then Adam says he likes both. well then I say: I like P-OCC :-) |
|
@Andrei-Pozolotin I think he and I both are sending mixed signals because we don't want to force a decision yet. I don't think the community has had time to absorb what OCP is, let alone build any consensus around the decision. As core developers we can force changes quickly, but we've got a great community that offers good insights. I personally want to provide them some time. If nobody has any thoughts that's fine, but at least there was a chance given. My personal preference as a core developer would be to make OCP the default. If you and/or someone else also wanted to help maintain PythonOCC support, I'm not going to tell you "no" unless there is a good reason to (i.e. it would make the codebase unmaintainable to support both). Also, if somebody can make a great case for making PythonOCC the default instead of OCP, I'm willing to listen. |
|
Let me be clear @Andrei-Pozolotin - I think the best decision would be to go on and use our own (i.e. OCP) wrapper for CadQuery. So far it has more streamlined (and IMO more future proof) binding generation technology (clang+pybind11) that will allow to quickly adapt to new releases of OCCT. The other thing is that PythonOCC does not seem to offer bindings for all modules of OCCT. I want to still reach out to the PythonOCC community to check if my observations are correct. Your perception of giving mixed messages probably stems for the fact that we did not make this decision yet. I don't think that there will be bandwidth from the core team to support both wrappers. What I meant in the comment was that whichever wrapper is basis of CQ should not matter from the user point of view - it will be based on OCCT as the CAD kernel. I really appreciate the PR request, it is good to have testing possibilities for all options. I have a question though: what are you trying to achieve, what difference does it make to you which wrapper CQ is going to use? |
|
@jmwright Jeremy @adam-urbanczyk Adam Thank you guys for taking the time to respond and explain, here is my story :-)
As any "normal user" would answer: Now, please listen to yourselves:
Guys, stop deceiving yourselves - the decision is already made. And in the very unlikely event anyone will ask for PythonOCC, Thanks again! |
|
@Andrei-Pozolotin you don't need to build OCP yourself, just pull it form the CI here FYI: I just did merge master into OCP. |
|
@adam-urbanczyk Adam:
|
|
@Andrei-Pozolotin it is just "work". I will eventually provide conda packages for OCP. |
|
great, thank you, looking forward to that |
|
@adam-urbanczyk, @jmwright, update: still facing a performance problem after switch to
|
Nothing like the grid you have created. Almost all the time seems to be spent on the matrix creation just before |
thank you. any expert advice on that |
|
@Andrei-Pozolotin take a look at #312, it should improve the union speed even without 7.4. |
outstanding, thank you. |
|
What's the speedup factor BTW? |
you mean old-oce-vs-new-ocp?
|
|
I merged master to OCP again @Andrei-Pozolotin |
|
Any updates on the speed story? #312 is in the OCP branch and conda packages for OCP are available form the cadquery channel BTW. |
|
Master is using OCP now so I'm going to close this. One user reported 6x speed improvements, but it might not be relevant for the use case of OP. |

this is a summary of changes needed to start a branch
to track migration towards occ-7.4.0
currently, there are 40 failing tests:
tool/pytest_todo.md
for context, see:
Investigate PythonOCC based on OCCT7.4 #226
OCCT 7.4.0: Undefined references, again tpaviot/pythonocc-core#795