【问题标题】:create a CAD model using programming (preferably python)使用编程创建 CAD 模型(最好是 python)
【发布时间】:2021-03-10 23:21:09
【问题描述】:

我有脊髓切片的等高线图(C1,C2 .... C36)

我已将这些图转换为每个图的一组顶点 (x,y)。现在, 我想把这些顶点拿出来做一个cad模型。

例如,如果一组顶点(X1,Y1)代表C1的轮廓,(X2,Y2)代表C2的轮廓,C1和C2之间的高度是1厘米,那么我希望做一个1厘米长光滑的表面,上表面有 C1,下表面有 C2 顶点,侧面是通过连接 C1 和 C2 中的顶点得到的。对脊髓的所有 36 个部分执行此操作。

有人能指出我如何做到这一点的正确方向吗,最好使用示例代码?

P.S : 即使建议是使用 Python 以外的编程语言,但最好建议使用 Python 实现,因为这是我更熟悉的,并且项目的其余部分正在运行python,所以很容易集成

提前致谢!!

【问题讨论】:

  • 你考虑过devDept Eyeshot(C#)吗?
  • 为每个截面拟合一条曲线(插值或近似),然后使用放样技术通过所有“截面曲线”创建曲面。
  • @fang 这就是我的想法......问题是我如何实现它?我希望将 .cad 文件提供给某人,以便在此项目上进行进一步的工作。
  • @Alberto 我刚刚检查了 devDept Eyeshot。似乎这仅适用于 Windows 用户(我在 Ubuntu 上),而且它是一个付费软件(有 30 天免费试用)。我希望多次使用这个脚本,因为我的项目需要根据顶点不断创建和更新 cad 模型。
  • 您可以在网上找到许多关于曲线拟合和放样的文献。从头开始实施它们需要相当长的时间。因此,最好的选择是找到一个已经为您完成此操作的包。我的评论只是为了给你一个关于搜索内容的方向(因此它们被发布为评论,而不是答案)

标签: python automation cad


【解决方案1】:

确实有用于这种网格生成的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])

给出以下内容:

我希望这是你需要的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2019-06-19
    相关资源
    最近更新 更多