这篇将介绍如何利用Dynamo自动生成结构柱类型【“T”字形柱】

● 思路

T形柱由8条边组成,有且只有两个顶点(8、3)两侧的顶点(1,7;2,4)的连线的中点(Point1、Point2)位于图形外,且此两点中间只隔两个顶点(1、2)。如下图:

首先,滤出具有八条线的PolyCurve

核心节点:PolyCurve.NumberOfCurves

拾取顶点

核心节点:Curve.StartPoint

顶点排序

核心节点:List.GetItemAtIndex、List.RemoveItemAtIndex

此处无图

顶点隔点连线

核心节点:List.GetItemAtIndex、List.RemoveItemAtIndex

连线取中点

核心节点:Curve.PointAtParameter

以PolyCurve创建Surface

核心节点:Surface.ByPath

判别点是否与Surface相交

核心节点:Geometry.DoesIntersect

滤出有两个点没有与Surface相交的线且无交集

核心节点:List.FilterByBoolMask

值得注意的是:隔点顶点连线的中点在图形外且连线不相交,只有T形。

最后我们就选出了T形的PolyCurve

根据PolyCurve的排序,选取该柱名称,新建T形柱类型。(详上一篇)

核心节点:FamilyType.Duplicate(Clockwork节点包)

T形参数特点

红线未相交的线为宽度

与宽度线平行且最远的线距为深度

宽度相交的线分别为a、a2

与a线相交的且排除宽度线的线为b

首先获取宽度线,并写入参数值【宽度】

核心节点:Geometry.DoesIntersect、Element.SetParameterByName

获取与宽度线平行的线

核心节点:Vector.IsParallel

获取与宽度线最远的线的距离和线长,并写入参数值【深度】【a1】

核心节点:Geometry.DistanceTo、Element.SetParameterByName

获取与宽度线相交的线的长度,并写入参数值【a】【a2】

核心节点:Element.SetParameterByName

取上一个步骤其中一根线【a】,获取与其相交的线,并排除宽度线,将其长度写入参数值【b】

核心节点:Geometry.DoesIntersect


来源:玖辰建筑科技。

作者:黎笑尘

0

评论0

请先
国网输变电工程工程量计量计价规范(2023年版)Q/GDW 11337—2023代替Q/GDW 11337—2014
国网输变电工程工程量计量计价规范(2023年版)Q/GDW 11337—2023代替Q/GDW 11337—2014
8分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站