首页/文章/ 详情

ANSA二次开发_Python基础-最终篇-快速命名工具开发

3月前浏览2150

    根据前面的基础知识,我们来做一个小功能开发“快速命名工具”。来作为ansa二次开发Python基础系列教程的成果


    在开发同时,顺便回顾一下以前所讲到的知识。命名工具在开发过程当中只用到了少量ANSA的API,大部分都是基于前面介绍的Python的基础知识来的。


    本篇文章作为基础系列的最后一篇,仅给大家提供开发思路,代码编辑就交给大家了,具体细节,逻辑在视频中有介绍。


    同样的功能在HyperMesh中同样能实现,详细信息请通过下方链接访问。

简化建模过程: HyperMesh中的二次开发与模型命名技术


    本篇文章的源码不提供,大家可以根据前面的知识,自己动手编写。


    本系列到此结束,本系列文章仅作为抛砖引玉,后续深层次的开发,还需要大家去通过学习帮助文档掌握。

   希望小伙伴们在以后的工作中能减少重复性操作,做更多值得思考的事情。


    需要工具的小伙伴,提供一种方式:

1、请将本篇文章分享到朋友圈集赞20,后台回复截图即可。


    加餐:本来准备是以创建压头作为最终作业的,但是考虑到用到的API相对于命名工具比较多,遂替换,这里就给出逻辑。


需求是通过选择一个节点,生成压头。


根据需求我们很容易分析出开发的步骤,逻辑如下:

1、让用户交互选择节点;

2、获取节点关联单元;

3、对单元法向进行求和;

4、以所选择点为中心,单元法向为平面法向,生成半径为10的曲线;

5、生成曲面;

6、划分网格;

7、创建边界;

8、提交计算:

9、生成报告。


可以看出交互步骤仅限于第一步,那么怎么实现自动选点,从而实现在nogui下运行,从而完全实现自动化流程,欢迎大家讨论哦



来源:TodayCAEer
HyperMesh二次开发ANSApython曲面
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 28文章 243课程 0
点赞
收藏
作者推荐

ANSA二次开发_Python基础-基于matplotlib的模型厚度分布图

matplotlib是Python中的绘图库,它提供了大量的工具来创建静态、动态和交互式的可视化图形。需要注意的是这个库与自带的guitk库会起冲突,官方文档建议是不直接将所生成图表的显示出来,而是通过保存到文件中,再通过guitk库提供的控件显示图片。并且直接调用plot.show也是无法显示,会给出如下提示。 UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown添加这行代码后依然会出现如下的错误,后续还有解决方案,重装修改解释器,但是重装后是否会导致其他问题就不得而知了,所以就按照官方文档开发吧。 matplotlib.use('TkAgg') #No module named '_tkinter'matplotlib在ANSA中使用较少,使用场景可以用于单元质量统计,模型厚度分布等相关。主要是后处理开发中使用,在这里作为基础模块一同介绍下。本篇文章的案例,通过ANSA绘制模型厚度条形图,弥补deck info的功能。统计模型的厚度分布,这个需求,属实是为了这碟醋,包了一顿饺子,哈哈哈。常用的matplotlib方法1. 折线图(Line plot) 用于展示数据随时间或有序类别变化的趋势。2. 散点图(Scatter plot) 用于展示两个变量之间的关系,观察数据点的分布。3. 条形图(Bar chart) 用于比较不同类别之间的数值大小。可以是垂直的(plt.bar)或水平的(plt.barh)。4. 直方图(Histogram) 用于展示数据的分布情况,通过数据分组(bins)来观察频率分布。5. 饼图(Pie chart) 用于展示各部分占整体的比例关系。6. 箱型图(Box plot) 用于展示数据的分布情况,包括中位数、四分位数和异常值。7. 等高线图(Contour plot) 用于展示三维数据的二维等值投影,常用于地理数据的可视化。8. 3D 图形 - 包括3D 线图、3D 散点图、3D 条形图等,用于展示三维空间中的数据关系。9. 热图(Heatmap) 用于展示矩阵数据,颜色深浅表示数据大小,常用于展示相关性矩阵。10. 极坐标图(Polar plot) 用极坐标系统展示数据,适用于周期性数据的展示。11. 误差条形图(Error bar plot) 用于展示数据的变异情况,通过误差线表示数据的不确定性。12. 堆叠条形图(Stacked bar chart) 类似于条形图,但是将多个类别的数据堆叠在一起,用于展示总量及各部分的比例。13. 面积图(Area plot) 类似于线图,但是线下区域被填充颜色,用于展示随时间变化的数量累积效果。14. 阶梯图(Step plot) 类似于线图,但是数据点之间用水平和垂直线段连接,常用于展示离散变化。15. 棉棒图(Stem plot) 用于展示每个数据点的大小,类似于散点图,但每个点有一个从基线延伸的线段。16. 雷达图(Radar chart) 用于展示多变量数据,每个变量的值沿着轴线展示,常用于性能分析。下面是针对上述列举的图形类型的matplotlib代码示例: 1. 线图(Line plot)import matplotlib.pyplot as pltx = range(1, 6)y = [1, 4, 6, 8, 4]plt.plot(x, y)plt.title('Line Plot')plt.xlabel('X Axis')plt.ylabel('Y Axis')plt.show()2. 散点图(Scatter plot)import matplotlib.pyplot as pltx = [5, 7, 8, 5, 6, 7, 9, 2, 3, 4, 4, 4, 2, 6, 3, 6, 8, 6]y = [7, 4, 3, 9, 1, 3, 2, 5, 2, 4, 8, 7, 1, 6, 4, 9, 7, 8]plt.scatter(x, y)plt.title('Scatter Plot')plt.xlabel('X Axis')plt.ylabel('Y Axis')plt.show()3. 条形图(Bar chart)import matplotlib.pyplot as pltcategories = ['A', 'B', 'C', 'D']values = [23, 45, 56, 78]plt.bar(categories, values)plt.title('Bar Chart')plt.xlabel('Categories')plt.ylabel('Values')plt.show()4. 直方图(Histogram)import matplotlib.pyplot as pltimport numpy as npdata = np.random.randn(1000)plt.hist(data, bins=30)plt.title('Histogram')plt.xlabel('Value')plt.ylabel('Frequency')plt.show()5. 饼图(Pie chart)import matplotlib.pyplot as pltsizes = [215, 130, 245, 210]labels = ['A', 'B', 'C', 'D']plt.pie(sizes, labels=labels, autopct='%1.1f%%')plt.title('Pie Chart')plt.show()6. 箱型图(Box plot)import matplotlib.pyplot as pltimport numpy as npdata = np.random.rand(10, 4)plt.boxplot(data)plt.title('Box Plot')plt.show()7. 等高线图(Contour plot)import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3.0, 3.0, 100)y = np.linspace(-3.0, 3.0, 100)X, Y = np.meshgrid(x, y)Z = np.sin(X**2 + Y**2)plt.contour(X, Y, Z)plt.title('Contour Plot')plt.xlabel('X Axis')plt.ylabel('Y Axis')plt.show()8. 3D 散点图from mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltimport numpy as npfig = plt.figure()ax = fig.add_subplot(111, projection='3d')x = np.random.standard_normal(100)y = np.random.standard_normal(100)z = np.random.standard_normal(100)ax.scatter(x, y, z)ax.set_title('3D Scatter Plot')plt.show()9. 热力图(Heatmap)import numpy as npimport matplotlib.pyplot as pltimport seaborn as sns; sns.set() # 使用seaborn样式# 生成数据data = np.random.rand(10, 12)# 绘制热图plt.figure(figsize=(8, 6))sns.heatmap(data, annot=True, fmt=".1f", linewidths=.5)plt.title('Heatmap')plt.show()10. 极坐标图(Polar plot)import numpy as npimport matplotlib.pyplot as plt# 生成数据r = np.arange(0, 2, 0.01)theta = 2 * np.pi * rplt.subplot(111, polar=True)plt.plot(theta, r)plt.title('Polar Plot')plt.show()11. 误差条形图(Error bar plot)import matplotlib.pyplot as pltimport numpy as npx = np.arange(0.1, 4, 0.5)y = np.exp(-x)# 定义误差error = 0.1 + 0.2 * np.sqrt(x)plt.errorbar(x, y, yerr=error, fmt='-o')plt.title('Error Bar Plot')plt.show()12. 堆叠条形图(Stacked bar chart)import matplotlib.pyplot as pltimport numpy as npN = 5menMeans = (20, 35, 30, 35, 27)womenMeans = (25, 32, 34, 20, 25)ind = np.arange(N) width = 0.35 plt.bar(ind, menMeans, width, label='Men')plt.bar(ind, womenMeans, width, bottom=menMeans, label='Women')plt.ylabel('Scores')plt.title('Scores by group and gender')plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))plt.yticks(np.arange(0, 81, 10))plt.legend()plt.show()13. 面积图(Area plot)import matplotlib.pyplot as pltx = range(1, 6)y = [1, 4, 6, 8, 4]plt.fill_between(x, y)plt.title('Area Plot')plt.xlabel('X Axis')plt.ylabel('Y Axis')plt.show()14. 阶梯图(Step plot)import matplotlib.pyplot as pltx = range(1, 6)y = [1, 4, 6, 8, 4]plt.step(x, y)plt.title('Step Plot')plt.xlabel('X Axis')plt.ylabel('Y Axis')plt.show()15. 棉棒图(Stem plot)import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0.1, 2 * np.pi, 10)y = np.cos(x)plt.stem(x, y)plt.title('Stem Plot')plt.xlabel('X Axis')plt.ylabel('Y Axis')plt.show()16. 雷达图(Radar chart)import numpy as npimport matplotlib.pyplot as pltfrom math import pi# 设置数据categories = ['A', 'B', 'C', 'D', 'E']values = [4, 3, 2, 5, 4]values += values[:1] # 闭合图形# 计算角度angles = [n / float(len(categories)) * 2 * pi for n in range(len(categories))]angles += angles[:1]# 绘图ax = plt.subplot(111, polar=True)plt.xticks(angles[:-1], categories)ax.plot(angles, values)ax.fill(angles, values, 'teal', alpha=0.1)plt.show()来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈