首页/技术分享

开源Nurbs库:LNLib半小时封装出Python API

发布于:2025-11-24 21:17:44
306人 分享

image.png

在之前封装LNLib WebAssembly的文章中提到使用DeepSeek进行疑难杂症的排除,具体详见《开源Nurbs库:AI立大功,LNLib已支持WebAssembly》。


有网友留言有没有Python API,正好本次封装Python API再次偷懒,借助AI的力量在半小时内完成

C++封装Python选择技术成熟的pybind11。仅在Github官网上显示的pybind11使用者就有27.2K之多,实际使用者至少还有两个数量级。
图片
(图源 Github pybind11)

选定好pybind11,剩下就是用封装C++变成CPython。但LNLib的接口众多,一个个写不知道什么时候了。这时AI登场了,告诉其使用pybind11,并提供一个初步的模板:














#include <pybind11/pybind11.h>#include <pybind11/stl.h>#include "PyLNLib.h"
namespace py = pybind11;void construct(py::module_ &);PYBIND11_MODULE(PyLNLib, m){    construct(m);}void construct(py::module_&m){    cstrUV(m);}

#include <pybind11/pybind11.h>#include "Constants.h"#include "UV.h"
namespace py = pybind11;
void cstrUV(py::module_&m){    py::class_<LNLib::UV>(m, "UV")        .def(py::init<>())        .def(py::init<doubledouble>())        .def("SetU", &LNLib::UV::SetU)        .def("GetU", &LNLib::UV::GetU)}

然后让其根据模板对其它方法进行补全。DeepSeek很快完成了代码补充,不过编译还是会有些bug,只要逐个分析修复即可。


image.png

image.png
(图源 Github LNLib)

目前LNLib已支持三种语言API(C++, wasm,Python),.NET API之后将使用同样方式进行封装

我们的工程几何技术交流1群与2群已满欢迎更多从事几何,包括:BRep,Mesh,GCS,CAD/CAE/CAM等领域的技术朋友加入3群,共同参与讨论。

转载请注明来源本文地址:https://www.tuituisoft/blog/96069.html

上一篇:

第十七届“斯维尔杯”大赛BIM建模个人赛获奖名单正式发布!

下一篇:

2025一带一路暨金砖国家技能发展与技术创新大赛建筑智能化创新技能应用赛项全国总决赛在重庆工贸圆满收官