我有脊髓切片的等高线图(C1,C2 ...... C36)
我已将这些图转换为每个图的顶点集(x,y)。现在, 我希望采用这些顶点并制作一个cad模型。
例如,如果顶点组(X1,Y1)代表C1的轮廓,(X2,Y2)代表C2的轮廓,C1和C2之间的高度是1厘米,那么我希望长1厘米上表面上具有C1的光滑表面和下表面上的C2顶点以及侧表面通过连接C1和C2中的顶点而得到。并且对脊髓的所有36个部分都这样做。
有人能指出我如何做到这一点的正确方向,最好是一个示例代码吗?
PS:即使建议是使用python以外的编程语言,但请最好建议python实现,因为这是我更熟悉的项目的其余部分正在运行python,所以它很容易集成
提前致谢!!
答案 0 :(得分:0)
确实有一个用于生成网格的python模块:pymadcad !
如果我很了解你想要做什么,那么也许你应该直接看一下blending functions 或者最终在 extrusion 或 tubing 函数
这是上行线和下行线之间混合曲面的典型结果:
from madcad import *
# create two weird outlines, even not plane
# in that case Softened is a particular bspline but that can be your sections instead
top = wire(Softened([
vec3(-0.1277, 0.06541, 0),
vec3(-0.1289, -0.0629, 0),
vec3(-0.02201, -0.1384, 0),
vec3(0.06227, -0.03145, 0),
vec3(0.173, 0.06416, 0),
vec3(0.1038, 0.1975, 0),
vec3(-0.01572, 0.1082, 0),
vec3(-0.08869, 0.1371, 0),
vec3(-0.1277, 0.06541, 0)]))
down = wire(Softened([
vec3(-0.06537, 0.05328, -0.1786),
vec3(0.04401, -0.01194, -0.1431),
vec3(0.1536, 0.01488, -0.1826),
vec3(0.1782, -0.07515, -0.1132),
vec3(0.1412, -0.1906, -0.01316),
vec3(-0.03975, -0.09969, -0.07689),
vec3(-0.1816, -0.08512, -0.04706),
vec3(-0.1602, 0.01721, -0.1066),
vec3(-0.06537, 0.05328, -0.1786)]))
# generate a blended surface
mysurface = blendpair(top, down)
show([mysurface])
给出以下内容:
我希望这是你需要的