Abaqus Python getByBoundingBox 命令
Abaqus Python getByBoundingBox command
我在 Abaqus 中有一个包含许多分区的 2D 零件,因此我想 select 使用 getByBoundingBox 命令创建多个边来创建曲面集。这是我的代码:
p = mdb.models['Model-1'].parts['Plate']
s = p.edges
edges = s.getByBoundingBox((0,0.02,0,0.003,0.04,0))
p.Surface(side1Edges=edges, name='r1')
但它给了我以下错误:"edges = s.getByBoundingBox((0,0.02,0,0.003,0.04,0)) TypeError: arg1; found tuple, expecting float"。
非常感谢任何建议。
边界框的角点应提供为 6 个单独的数字,而不是单个元组。解决方法很简单,把前导的“((”和尾随的“))”改为单个的“(”和“)”即可。所以调用看起来像这样 s.getByBoundingBox(0,0.02,0,0.003,0.04,0).
我用下面的代码在二维板上尝试了修改后的代码
p = mdb.models['Model-1'].parts['Plate']
s = p.edges
edges=s.getByBoundingBox(0,0,0,25,25,1)
而且它不会崩溃。但目前还不清楚如何使用它创建表面。您需要使用不同的策略来实现您想要的。您可以找到使用 'pointOn' 方法创建表面。
这来得太晚了,但万一有人进入并有同样的疑问:
当告诉 Abaqus 你实际上 edge/face/element 是哪个 selecting 时,有时你需要指定那个对象的 "ID",这就是为什么它要求一个浮点数而不是一个错误消息中的元组。这可以解决为:
你select你想要的edge/face/node/element:
edge = s.getByBoundingBox((0,0.02,0,0.003,0.04,0))
创建一个中间变量来知道元素的"ID":
edge_id = edge.id
您现在可以在创建表面的对话框中重新引用它:
p.Surface(side1Edges=p.edges[edge_id], name='r1')
在这种情况下,您要告诉 Abaqus select 从您的部件 "p" 具有的所有边中选择 ID 为 "edge_id" 的边。
这种情况发生了很多次,您必须了解 Abaqus 对代码的期望。有时可以是对象本身、元素元组或简单地表示为元组的浮点数,例如:edge = (number, )
此致
我在 Abaqus 中有一个包含许多分区的 2D 零件,因此我想 select 使用 getByBoundingBox 命令创建多个边来创建曲面集。这是我的代码:
p = mdb.models['Model-1'].parts['Plate']
s = p.edges
edges = s.getByBoundingBox((0,0.02,0,0.003,0.04,0))
p.Surface(side1Edges=edges, name='r1')
但它给了我以下错误:"edges = s.getByBoundingBox((0,0.02,0,0.003,0.04,0)) TypeError: arg1; found tuple, expecting float"。
非常感谢任何建议。
边界框的角点应提供为 6 个单独的数字,而不是单个元组。解决方法很简单,把前导的“((”和尾随的“))”改为单个的“(”和“)”即可。所以调用看起来像这样 s.getByBoundingBox(0,0.02,0,0.003,0.04,0).
我用下面的代码在二维板上尝试了修改后的代码
p = mdb.models['Model-1'].parts['Plate']
s = p.edges
edges=s.getByBoundingBox(0,0,0,25,25,1)
而且它不会崩溃。但目前还不清楚如何使用它创建表面。您需要使用不同的策略来实现您想要的。您可以找到使用 'pointOn' 方法创建表面。
这来得太晚了,但万一有人进入并有同样的疑问:
当告诉 Abaqus 你实际上 edge/face/element 是哪个 selecting 时,有时你需要指定那个对象的 "ID",这就是为什么它要求一个浮点数而不是一个错误消息中的元组。这可以解决为:
你select你想要的edge/face/node/element:
edge = s.getByBoundingBox((0,0.02,0,0.003,0.04,0))
创建一个中间变量来知道元素的"ID":
edge_id = edge.id
您现在可以在创建表面的对话框中重新引用它:
p.Surface(side1Edges=p.edges[edge_id], name='r1')
在这种情况下,您要告诉 Abaqus select 从您的部件 "p" 具有的所有边中选择 ID 为 "edge_id" 的边。
这种情况发生了很多次,您必须了解 Abaqus 对代码的期望。有时可以是对象本身、元素元组或简单地表示为元组的浮点数,例如:edge = (number, )
此致