码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python二次开发CATIA:根据已知数据点创建曲线


    已知数据点存于Coords.txt文件如下:

    8.67155477658819,20.4471021292557,0
    41.2016126836927,20.4471021292557,0
    15.9568941320569,-2.93388599177698,0
    42.2181532110364,-6.15301746150354,0
    43.0652906622083,-26.4843096139083,0
    -31.6617679595947,-131.151351928711,0
    -14.6248416900635,-39.5306015014648,0
    15.9568941320569,38.4064145682206,0
    59.1609022344739,15.8725553152909,0
    32.5608045782239,-13.7772545220504,0
    -63.4640121459961,-80.4192123413086,0
    55.9417860235364,-24.7900347115646,0
    68.4794141973646,33.6624417899003,0
    21.0357210363538,66.5608792899003,0
    3.08042928830694,52.4688993094315,0
    18.6677705969007,43.3198056815018,0
    28.6076795782239,61.6390958426347,0
    2.86299154416632,62.3962827322831,0
    -36.9062805175781,39.9295196533203,0
    3.98236274719238,41.822509765625,0

    下面通过python读取数据点,创建曲线:

    1. import win32com.client
    2. import pywintypes # 导入pywintypes模块
    3. # 启动CATIA应用
    4. catia = win32com.client.Dispatch('CATIA.Application')
    5. catia.visible=1
    6. try:
    7. # 打开文件
    8. f = open('Coords.txt')
    9. # 读取行内容,并去除换行符
    10. line = f.readline().replace('\n', '')
    11. coords = []
    12. # 循环读取,直到最后一行
    13. while line:
    14. print(line)
    15. # 用","分割每行
    16. values = line.split(',')
    17. # 将分割得到的坐标值(string类)转为float,并放在数组中
    18. coord = [float(values[0]),
    19. float(values[1]),
    20. float(values[2])]
    21. coords.append(coord)
    22. line = f.readline().replace('\n', '')
    23. part = catia.activedocument.part
    24. hsf = part.hybridshapefactory
    25. # 添加一个新几何图形集并重命名
    26. hb = part.hybridbodies.add()
    27. hb.name = 'bird'
    28. # 创建一根样条线
    29. curve = hsf.addnewspline()
    30. # 遍历点坐标序列
    31. for coord in coords:
    32. # 创建点,并更新
    33. pt = hsf.addnewpointcoord(coord[0],
    34. coord[1],
    35. coord[2])
    36. hb.appendhybridshape(pt)
    37. pt.compute()
    38. # 隐藏点
    39. hsf.gsmvisibility(pt, 0)
    40. # 将点添加为样条线的控制点
    41. curve.addpoint(pt)
    42. # 更新样条线
    43. hb.appendhybridshape(curve)
    44. curve.compute()
    45. except pywintypes.com_error as e:
    46. # 如果出现错误,可能是因为没有活动文档
    47. print("无法获取活动文档,请确保CATIA应用程序中已有打开的文档。")
    48. print(e)

  • 相关阅读:
    JAVA计算机毕业设计体育城场地预定系统后台源码+系统+mysql数据库+lw文档
    后端开发总结(3):代码健壮性:容错处理+测试
    【心理学·人物】第二期(学术X综艺)
    Spring BeanFactory支持的Bean生命周期接口和整套初始化方法顺序
    一篇文章彻底理解数据库的各种超时参数
    【题解】盛最多水的容器
    单片机C语言实例:23、串口通讯
    java网络编程Socket output is already shutdown
    医院空调冷热源设计方案VR元宇宙模拟演练的独特之处
    深度神经网络的特征表示,深度神经网络通俗理解
  • 原文地址:https://blog.csdn.net/T20151470/article/details/133514178
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号