用Tekla制作参数化节点时,一根梁的两端节点板总是不受控制的一正一反,根据钢结构从南向北、从西向东安装的一般原则,连接板是要保持在钢梁腹板西侧或北侧的(当然特殊情况比如边梁、洞口梁及特殊要求的项目除外),那么这种情况就会导致做出的参数化节点在使用过程中需要炸开节点然后镜像一下方向。 据我当前参数化节点认识水平,我只有一种解决方案,但比较麻烦,需要在点完节点或点节点前手动选择节点方向或修改节点方向:将节点原地复制一份并镜像到钢梁另一侧,然后在变量中新建一个“是”与“否”的参数名称,在节点浏览器中将新复制的这些节点板及连接螺栓属性“创建”中填上前面新建的是否变量。用来控制显示与否。如下图所示。这样做出的节点也是半自动节点,需要手工选择方向。
用Tekla制作参数化节点时,一根梁的两端节点板总是不受控制的一正一反,根据钢结构从南向北、从西向东安装的一般原则,连接板是要保持在钢梁腹板西侧或北侧的(当然特殊情况比如边梁、洞口梁及特殊要求的项目除外),那么这种情况就会导致做出的参数化节点在使用过程中需要炸开节点然后镜像一下方向。
据我当前参数化节点认识水平,我只有一种解决方案,但比较麻烦,需要在点完节点或点节点前手动选择节点方向或修改节点方向:将节点原地复制一份并镜像到钢梁另一侧,然后在变量中新建一个“是”与“否”的参数名称,在节点浏览器中将新复制的这些节点板及连接螺栓属性“创建”中填上前面新建的是否变量。用来控制显示与否。如下图所示。这样做出的节点也是半自动节点,需要手工选择方向。
请问有没有更智能的节点做法让连接板无论在钢梁哪端都保持连接板在北侧或西侧、只有自己想调整的时候才手工更改方向?
另外一个思路:
让节点自动识别方向:模型杆件由XYZ坐标组成,掌握了坐标即掌握了杆件的方向。
原理:假设主梁起点、终点的Y坐标相等,说明这根梁是从左至右横放;
假设主梁起点、终点的X坐标相等,说明这根梁是从下至上竖放;
当主梁横放时,如果次梁终点Y坐标-主梁Y坐标大于次梁起点Y坐标-主梁Y坐标,则次梁在主梁上方,反之在主梁下方;
当主梁竖放时,如果次梁终点X坐标-主梁X坐标大于次梁起点X坐标-主梁X坐标,则次梁在主梁右侧,反之在主梁左侧;
公式:获取起点X坐标:fTpl(“START_X”,4646546) Y坐标将X改成Y即可
获取终点X坐标:fTpl(“END_X”,4646546) Y坐标将X改成Y即可
获取重心X坐标:fTpl(“COG_X”, 4646546) Y坐标将X改成Y即可
连接板换向与否,采用if/else语句将以上关系关联起来即可。
=如果次梁终点Y坐标-主梁(起点终点任意)Y坐标>次梁起点Y坐标-主梁Y坐标,则次梁在主梁上方,连接板方向不动(0),反之反向(1);
=如果次梁终点X坐标-主梁(起点终点任意)X坐标>次梁起点X坐标-主梁X坐标,则次梁在主梁右侧,连接板方向不动(0),反之反向(1);
=如果主梁起点终点Y坐标相等,则采用第一个等式,反之采用第二个等式。
实际应用:
P40=fTpl("START_X",37234652) 主部件X坐标起点
P41 =fTpl("END_X",37234652) 主部件X坐标终点
P42 =fTpl("START_Y",37234652) 主部件Y坐标起点
P43 =fTpl("END_Y",37234652) 主部件Y坐标终点
P44 =fTpl("START_X",37234668) 次部件X坐标起点
P45 =fTpl("END_X",37234668) 次部件X坐标终点
P46 =fTpl("START_Y",37234668) 次部件Y坐标起点
P47 =fTpl("END_Y",37234668) 次部件Y坐标终点
P48=if P47>P42 then 0 else 1 endif
P49=if P45>P40 then 0 else 1 endif
=if P42==P43 then P48 else P49 endif