QQ登录

只需一步,快速开始

微信登录

手机微信,扫码同步

用户名登录

用户名,密码登录

搜索
华舜
打印 上一主题 下一主题

[原创] DTAS 3D尺寸公差分析&尺寸链计算Python脚本自动化自定义测量,突破软件限制,实现建模自由!

[复制链接]
103 |1
阅读字号:
跳转到指定楼层
1
公差分析VIP会员 VIP会员 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式       最后访问IP上海市
海川小学4年  |  头衔:  TA未设置 
已绑手机   ★发布悬赏→ 发布(0)  承接(0/0)   

加入五千万化工人社群

您需要 登录 才可以下载或查看,没有账号?注册

x
DTAS Python脚本自动化自定义测量,突破软件限制,实现建模自由!
摘要:公差分析软件、尺寸链计算、尺寸公差分析、公差仿真分析、尺寸工程、尺寸链校核
-----棣拓(上海)科技发展有限公司

在上期内容中,我们对DTAS Python脚本自动化建模-专治建模界的 "二高" 问题(高重复、高耗时)进行了深入探讨。DTAS可以自由编写Python脚本,开发自己特定场景的虚拟装配与虚拟测量,成功将用户从繁琐的重复建模中解放出来,不仅大幅提升了建模效率,还让脚本能够重复利用,真正实现了建模的自动化与智能化。

而本期,我们将继续深入探索DTAS Python脚本的——自定义测量功能,看看它是如何为复杂应用场景提供定制化解决方案的。

Python脚本应用场景举例
场景举例
如图所示:6块马蹄状的零件通过两孔销装到绿色圆盘,6块马蹄状内表面围成的最小圆的直径是如何变化的?
软件中是没有此类型测量,DTAS软件可以通过编写脚本来实现此场景下的测量。
软件操作
准备好了吗?让我们开始这段自动化测量的探索之旅,一起解锁DTAS3D公差仿真分析的新技能吧!
软件演示
点击链接-查看案例演示:https://www.bilibili.com/video/BV1tXoVYPEub/

                               
登录/注册后可看大图
案例脚本
如下:
  1. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体"># DTAS Soft</font></span></div>

  2. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体"># zjy 20241104</font></span></div>

  3. <div align="left" style="text-indent:2em;"><font face="宋体"><span style="font-size:14.0pt;"># Function:</span><span style="font-size:14.0pt;">求xy平面上24个点算出的最大外接圆半径及x,y坐标</span></font></div>

  4. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">#</font></span></div>

  5. <div align="left" style="text-indent:2em;"><font face="宋体"><span style="font-size:14.0pt;"># </span><span style="font-size:14.0pt;">获取24个点的坐标参数</span></font></div>

  6. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p1 = [features[0][0], features[0][1],
  7. features[0][2]]</font></span></p>

  8. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p2 = [features[1][0], features[1][1],
  9. features[1][2]]</font></span></p>

  10. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p3 = [features[2][0], features[2][1],
  11. features[2][2]]</font></span></p>

  12. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p4 = [features[3][0], features[3][1],
  13. features[3][2]]</font></span></p>

  14. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p5 = [features[4][0], features[4][1],
  15. features[4][2]]</font></span></p>

  16. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p6 = [features[5][0], features[5][1],
  17. features[5][2]]</font></span></p>

  18. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p7 = [features[6][0], features[6][1],
  19. features[6][2]]</font></span></p>

  20. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p8 = [features[7][0], features[7][1],
  21. features[7][2]]</font></span></p>

  22. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p9 = [features[8][0], features[8][1],
  23. features[8][2]]</font></span></p>

  24. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p10 = [features[9][0], features[9][1],
  25. features[9][2]]</font></span></p>

  26. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p11 = [features[10][0],
  27. features[10][1], features[10][2]]</font></span></p>

  28. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p12 = [features[11][0],
  29. features[11][1], features[11][2]]</font></span></p>

  30. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p13 = [features[12][0],
  31. features[12][1], features[12][2]]</font></span></p>

  32. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p14 = [features[13][0],
  33. features[13][1], features[13][2]]</font></span></p>

  34. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p15 = [features[14][0],
  35. features[14][1], features[14][2]]</font></span></p>

  36. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p16 = [features[15][0],
  37. features[15][1], features[15][2]]</font></span></p>

  38. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p17 = [features[16][0],
  39. features[16][1], features[16][2]]</font></span></p>

  40. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p18 = [features[17][0],
  41. features[17][1], features[17][2]]</font></span></p>

  42. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p19 = [features[18][0],
  43. features[18][1], features[18][2]]</font></span></p>

  44. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p20 = [features[19][0],
  45. features[19][1], features[19][2]]</font></span></p>

  46. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p21 = [features[20][0],
  47. features[20][1], features[20][2]]</font></span></p>

  48. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p22 = [features[21][0],
  49. features[21][1], features[21][2]]</font></span></p>

  50. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p23 = [features[22][0],
  51. features[22][1], features[22][2]]</font></span></p>

  52. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p24 = [features[23][0],
  53. features[23][1], features[23][2]]</font></span></p>

  54. <div align="left" style="text-indent:2em;"><font face="宋体"><span style="font-size:14.0pt;"># </span><span style="font-size:14.0pt;">求24个点在xy平面上的投影点</span></font></div>

  55. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">facePos1 = [1,0,0]</font></span></div>

  56. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">facePos2 = [0,1,0]</font></span></div>

  57. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">facePos3 = [1,1,0]</font></span></div>

  58. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p1Pos =
  59. PointProjectionOntoThePlane(p1,facePos1,facePos2,facePos3)</font></span></p>

  60. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p2Pos =
  61. PointProjectionOntoThePlane(p2,facePos1,facePos2,facePos3)</font></span></p>

  62. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p3Pos = PointProjectionOntoThePlane(p3,facePos1,facePos2,facePos3)</font></span></div>

  63. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p4Pos =
  64. PointProjectionOntoThePlane(p4,facePos1,facePos2,facePos3)</font></span></p>

  65. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p5Pos =
  66. PointProjectionOntoThePlane(p5,facePos1,facePos2,facePos3)</font></span></p>

  67. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p6Pos =
  68. PointProjectionOntoThePlane(p6,facePos1,facePos2,facePos3)</font></span></p>

  69. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p7Pos =
  70. PointProjectionOntoThePlane(p7,facePos1,facePos2,facePos3)</font></span></p>

  71. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p8Pos =
  72. PointProjectionOntoThePlane(p8,facePos1,facePos2,facePos3)</font></span></p>

  73. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p9Pos =
  74. PointProjectionOntoThePlane(p9,facePos1,facePos2,facePos3)</font></span></p>

  75. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p10Pos =
  76. PointProjectionOntoThePlane(p10,facePos1,facePos2,facePos3)</font></span></p>

  77. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p11Pos =
  78. PointProjectionOntoThePlane(p11,facePos1,facePos2,facePos3)</font></span></p>

  79. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p12Pos =
  80. PointProjectionOntoThePlane(p12,facePos1,facePos2,facePos3)</font></span></p>

  81. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p13Pos =
  82. PointProjectionOntoThePlane(p13,facePos1,facePos2,facePos3)</font></span></p>

  83. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p14Pos =
  84. PointProjectionOntoThePlane(p14,facePos1,facePos2,facePos3)</font></span></p>

  85. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p15Pos =
  86. PointProjectionOntoThePlane(p15,facePos1,facePos2,facePos3)</font></span></p>

  87. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p16Pos =
  88. PointProjectionOntoThePlane(p16,facePos1,facePos2,facePos3)</font></span></p>

  89. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p17Pos =
  90. PointProjectionOntoThePlane(p17,facePos1,facePos2,facePos3)</font></span></p>

  91. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p18Pos =
  92. PointProjectionOntoThePlane(p18,facePos1,facePos2,facePos3)</font></span></p>

  93. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p19Pos =
  94. PointProjectionOntoThePlane(p19,facePos1,facePos2,facePos3)</font></span></p>

  95. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p20Pos =
  96. PointProjectionOntoThePlane(p20,facePos1,facePos2,facePos3)</font></span></p>

  97. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p21Pos =
  98. PointProjectionOntoThePlane(p21,facePos1,facePos2,facePos3)</font></span></p>

  99. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p22Pos =
  100. PointProjectionOntoThePlane(p22,facePos1,facePos2,facePos3)</font></span></p>

  101. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p23Pos =
  102. PointProjectionOntoThePlane(p23,facePos1,facePos2,facePos3)</font></span></p>

  103. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p24Pos =
  104. PointProjectionOntoThePlane(p24,facePos1,facePos2,facePos3)</font></span></p>

  105. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体"> </font></span></div>

  106. <div align="left" style="text-indent:2em;"><font face="宋体"><span style="font-size:14.0pt;"># </span><span style="font-size:14.0pt;">求xy平面上24个点算出的最大内接圆半径及x,y坐标</span></font></div>

  107. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">listPos =
  108. [p1Pos[0],p1Pos[1],p2Pos[0],p2Pos[1],p3Pos[0],p3Pos[1],p4Pos[0],p4Pos[1],\</font></span></p>

  109. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p5Pos[0],p5Pos[1],p6Pos[0],p6Pos[1],p7Pos[0],p7Pos[1],p8Pos[0],p8Pos[1]
  110. ,\</font></span></p>

  111. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p9Pos[0],p9Pos[1],p10Pos[0],p10Pos[1],p11Pos[0],p11Pos[1],p12Pos[0],p12Pos[1],\</font></span></div>

  112. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p13Pos[0],p13Pos[1],p14Pos[0],p14Pos[1],p15Pos[0],p15Pos[1],p16Pos[0],p16Pos[1],\</font></span></div>

  113. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p17Pos[0],p17Pos[1],p18Pos[0],p18Pos[1],p19Pos[0],p19Pos[1],p20Pos[0],p20Pos[1],\</font></span></div>

  114. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">p21Pos[0],p21Pos[1],p22Pos[0],p22Pos[1],p23Pos[0],p23Pos[1],p24Pos[0],p24Pos[1]]</font></span></div>

  115. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体"> </font></span></div>

  116. <div align="left" style="text-indent:2em;"><font face="宋体"><span style="font-size:14.0pt;"># 0:</span><span style="font-size:14.0pt;">半径; 1: x; 2:y</span></font></div>

  117. <div align="left" style="text-indent:2em;"><font face="宋体"><span style="font-size:14.0pt;">#dtas</span><span style="font-size:14.0pt;">底层函数FittingMaxCircleIn-最大内接圆</span></font></div>

  118. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">res = FittingMaxCircleIn(listPos) </font></span></div>

  119. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">SetHolePinCenter('monitor',
  120. DTASPoint(res[1],res[2], 30),False)</font></span></p>

  121. <p align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">SetHolePinDiameter('monitor',
  122. 2*res[0],False)</font></span></p>

  123. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体">measureValue = 2*res[0]</font></span></div>

  124. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体"> </font></span></div>

  125. <div align="left" style="text-indent:2em;"><span style="font-size:14.0pt;"><font face="宋体"># end</font></span></div>
复制代码
总结
DTAS创造性的将CAE脚本自动化技术、二次开发等引入CAT领域
1.开放底层API、支持宏录制、编写Python脚本,将用户从繁琐重复的建模中解放,使用脚本自动化技术可以提高建模效率,并且脚本等可以重复使用;
2.支持用户开发自定义的公差分析模型如虚拟装配虚拟测量等,大大增强了软件面对复杂应用场景的拓展性与中高级、专家及用户使用软件的自由性;
3.构建软件用户生态、公差自动化智能化分析的前提。
下期我们介绍第三个场景的应用,敬请期待!
>>> 关注DTAS棣拓科技公众号或者扫码添加客服,回复“公差Python脚本预约演示”,我们将立刻与您联系!

 

发表于 4 天前



上一篇:Aspen的反应器在计算燃烧反应温度时用的是高位热值还是低位热值?
下一篇:关于二元交互作用参数的问题

声明:

本站是提供个人知识管理及信息存储的网络存储空间,所有内容均由用户发布,不代表本站观点。

请注意甄别主题及回复内容中的联系方式、诱导购买等信息,谨防诈骗。内容及翻译仅供参考

当前内容由会员用户名 公差分析 发布!权益归其或其声明的所有人所有 仅代表其个人观点, 仅供个人学习、研究之用。

本主题及回复中的网友及版主依个人意愿的点评互动、推荐、评分等,均不代表本站认可其内容或确认其权益归属,

如发现有害或侵权内容,可联系我站举证删除,我站在线客服信息service@hcbbs.com 电话188-4091-1640 

【发主题】高级


          特别提示:

          本站系信息发布平台,仅提供信息内容存储服务。

         禁止发布上传, 包括但不限于:不能公开传播或无传播权的出版物、无传播权的在行标准规范、涉密内容等
          不听劝告后果自负!造成平台或第三方损失的,依法追究相关责任。

          请遵守国家法规;不要散播涉爆类、涉黄毒赌类、涉及宗教、政治议题、谣言负面等信息   

     

您需要登录后才可以回帖 登录 | 注册

本版积分规则

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Español العربية Persian

联系

0411-88254066

18840911640

(工作时间09:00-17:00)

其它时间请联【微信客服】

或 电子信箱信箱

service@hcbbs.com

微信群

先加微信

再说要入何种专业群

拉你入群  勿发广告

100多个海川专业微信群

还有QQ大群:7990017
申请时注明你的QQ号


 

关于我们  -  隐私协议    -  网站声明   -  广告服务   -  企业会员   -  个人会员  -   主题竞价   -   专家智库  -  服务市场    -  APP和微信   -  分类信息   -     -  在线计算  -  单位换算


不良信息举报 0411-88254066  举报中心       在线客服#微信号:  18840911640    电子信箱   service@hcbbs.com   【QQ客服】3153267246   


海川化工论坛网(hcbbs) @Discuz! X3  加载0.094149 second(s), 42 queries , Redis On. | 网站统计 | 


辽公安备21100302203002号  | 辽ICP备17009251号  |  辽B2证-20170197