Note
Go to the end to download the full example code
Keypoints#
本例演示了如何使用关键点命令创建基本几何体。
本节的重点是创建“关键点”。
import numpy as np
from ansys.mapdl.core import launch_mapdl
# 启动 MAPDL 并进入前处理
mapdl = launch_mapdl()
mapdl.clear()
mapdl.prep7()
print(mapdl)
C:\Users\ff\AppData\Local\Programs\Python\Python310\lib\site-packages\ansys\tools\path\path.py:818: DeprecationWarning: This method is going to be deprecated in future versions. Please use 'get_mapdl_path'.
warnings.warn(
Product: Ansys Mechanical Enterprise
MAPDL Version: 23.1
ansys.mapdl Version: 0.67.0
APDL Command: K#
在 [0, 0, 0]
创建一个关键点。请注意,第一个值是空字符串,以便 MAPDL 自动选择关键点编号。
1
在 (10, 11, 12) 处创建关键点,同时指定关键点编号。
2
APDL Command: KBETW#
在两个关键点之间创建关键点
3
APDL Command: KCENTER#
在由三个位置定义的圆弧中心创建关键点。 请注意,在生成这个几何体之前,我们首先要 clear mapdl
[1, 2, 3, 4]
Keypoint IDs#
返回关键点 ID 的数组 请注意,这与数组``[k0, k1, k2, k3]``相匹配(由于排序)
array([1, 2, 3, 4])
Keypoints geometry#
获取包含关键点的 VTK MultiBlock
。该 VTK 网格可以保存或绘制。更多信息,请访问 Pyvista 文档 。
keypoints = mapdl.geometry.keypoints
keypoints
Keypoint Coordinates#
返回关键点位置数组
APDL Command: KDIST#
计算两个关键点之间的距离。请注意,您可以根据 kloc
自行计算。
[1.414213562, 1.0, -1.0, 0.0]
Keypoint Selection#
有两种选择关键点的方法,一种是旧的 “传统” 风格,另一种是新的风格。对于那些熟悉现有 MAPDL 命令的人来说,旧式方法很有价值,而新式方法则适用于以 pythonic 方式选择关键点。
本例生成一系列随机关键点,并选择它们
mapdl.clear()
mapdl.prep7()
# 创建 20 个随机关键点
for _ in range(20):
mapdl.k("", *np.random.random(3))
# 打印关键点编号
print(mapdl.geometry.knum)
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]
使用“旧方法”命令选择每隔一个关键点。
mapdl.ksel("S", "KP", "", 1, 20, 2)
print(mapdl.geometry.knum)
[ 1 3 5 7 9 11 13 15 17 19]
使用“新样式”命令选择每隔一个关键点。
Note that the item IDs are 1 based in MAPDL, while Python ranges are 0 based.
mapdl.geometry.keypoint_select(range(1, 21, 2))
print(mapdl.geometry.knum)
[ 1 3 5 7 9 11 13 15 17 19]
从列表中选择关键点
请注意,如果您想查看所选内容,可以 return_selected
。这在从现有区域重新选择时非常有用。
注意,这里也可以使用 numpy 数组。
[ 1 5 10 20]
APDL Command: KPLOT#
绘制关键点,同时显示关键点编号
所有常见的绘图方法都有多种绘图选项。
mapdl.kplot(
show_keypoint_numbering=True,
background="white",
show_bounds=True,
font_size=26,
)
Stop mapdl#
mapdl.exit()
Total running time of the script: (0 minutes 3.357 seconds)