使用编程创建CAD模型(最好是python)

时间:2016-09-27 10:23:08

标签: python automation cad

我有脊髓切片的等高线图(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,所以它很容易集成

提前致谢!!

1 个答案:

答案 0 :(得分:0)

确实有一个用于生成网格的python模块:pymadcad !

如果我很了解你想要做什么,那么也许你应该直接看一下blending functions 或者最终在 extrusiontubing 函数

这是上行线和下行线之间混合曲面的典型结果:

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])

top and down lines

给出以下内容:

blended surface

我希望这是你需要的