GC案例实操用户手册

GC中相关节点介绍

1 导入

GC中包含了多种处理外部文件或数据的选项。例如通过MicroStation导入标准文件类型中包含的几何元素,通过Excel表格中的数据控制模型。GC允许以多种方式与外部的程序和数据交互。
一般来说,有以下几种方法可以将外部数据导入到GC中:

2 导入MicroStation元素

在GC中,通过MicroStation直接导入几何模型文件比使用参考节点有更多的限制。
我们可以在任何时间将文件导入到GC中。但是,由于文件时直接导入的,GC不会为导入创建事务步骤。此外,导入文件中的几何图形只有在被转化为可用的节点时才能被GC访问到。
另外,当关闭.gct文件时,导入的文件中没有转化为可用节点的几何图形都将丢失,必须重新导入。
导入的操作步骤:
点击File>Import,选择要进行的操作和要导入的文件类型,选择想要导入的目标文件,单击OK即可完成导入。
除了
.dgn文件格式外,MicroStation还兼容很多的文件格式,这些文件都可以被导入到GC中。包括cel ,.dwg, ASCII,3ds Max, Obj等等
新-GC用户手册 - 图1

3 与Excel协同工作

电子表格是一种有效的存储数据的方式。使用GC中的ExcelRange节点,如下图所示,Excel中读取或写入数据。只要没有引用相同的范围,我们甚至可以对相同的工作表读写值。
新-GC用户手册 - 图2
GC参考Excel表格优势在于可以建立不同规则的数据组织。此外,还可以将输入和输出的与各种链接单元格的公式指定成特定的格式。
尽管GC可以从正在写入数据的同一表格中读取数据,但是不能在GC和Excel的表格单元之间创建完整的循环。例如,GC不可能将数据写入读取数据的相同单元格。

4 从Excel中读取数据

首先,在NodeTypes对话框中点击ExcelRange节点,或将其选中并拖拽到图表界面新建一个ExcelRange节点,指定其方法为ReadValue,如下如所示:
新-GC用户手册 - 图3
接下来是建立该节点与目标表格的联系,包括文件位置和名称、工作表名称以及所要引用的数据的范围,如下图所示:
新-GC用户手册 - 图4
右击打开节点属性对话框,也可以查看我们输入的我文件名、路径、工作表等信息,如下图所示:
新-GC用户手册 - 图5
我们也可以打开Watches对话框,在其中查看我们导入GC的数据,如下图所示:
新-GC用户手册 - 图6

5 将数据写入Excel

同样的我们新建ExcelRange节点,将方法选为WriteValue,如下图所示:
新-GC用户手册 - 图7

在节点的输入端口填入相应的信息,如导出文件的位置、工作表、数据区域和需要导出的数据等,完成后如属性对话框所示:
新-GC用户手册 - 图8
在节点框中点击“写入”,即将数据导出指定的Excel中。如下图所示:
新-GC用户手册 - 图9

6 参考MicroStation元素

与MicroStation参考功能的使用方法一样,将外部文件引用到GC中。与导入MicroStation文件相同,GC不会为该种参考创建事务,直接导入的文件也不能被GC所识别。所以,只有将参考的元素转化为GC可识别的元素时才能被GC访问到。

7 使用参考节点

新建ReferenceAttachment节点,如下图所示,我们可以看到该节点有两个必须的输入端口:参考文件所用的坐标系和文件的路径。还有三个可选择的输入端口,分别是需要的导入的模型,导入的视口和嵌套的层数。
新-GC用户手册 - 图10
新-GC用户手册 - 图11
将输入端口的信息填完后,我们会看到在参考的元素在模型窗口种显示。并且GC为参考外部文件这个步骤创建了事务,当我们下次打开时,参考这个步骤是被保存了的。这个也是与直接使用MicroStation参考功能的最大区别。
新-GC用户手册 - 图12
值得注意的是:使用参考节点参考到GC中的元素存在于只读的参考文件中,还是不能被GC直接识别使用,需要我们在后边提到的功能—“将元素转化为GC可识别的类型”转化后才可以在GC中直接使用。

8 将元素转化为GC可识别的类型

9 转化单独元素

10 将元素重新创建为节点

点击升级元素新-GC用户手册 - 图13命令,在模型窗口选中要转化的MS元素,GC会自动分析元素的几何类型,并将该元素重新创建为GC所支持的元素。

11 转化简单几何元素

如果一个在MS中创建的由简单几何元素的构成的模型被导入,使用升级元素命令,GC可以快速的按照极点将它转化为B样条曲线。

12 转化复杂几何元素

升级元素功能在转化简单元素时非常好用,但当其涉及到复杂元素时会变得非常难以管理。例如下图中,在MS中利用Sweep创建的看似简单的曲面却包含了非常多的控制点,当使用升级元素来转化时,会产生极多的点而是我们无法进行下一步工作。
新-GC用户手册 - 图14
为了管理对于复杂几何元素模型的转化,对于大多数节点类型,都有一个通过范围(Range)进行转化的方法。通过使用此技术,我们可以在导入的文件中创建任意数量的特定类型的元素。

13 Range节点

Range 新-GC用户手册 - 图15是一种能将外部模型与GC模型关联起来的有效方法。首先我们的模型应该被一个范围包围,然后我们可以将转化范围内的某些元素转化为GC所能识别的类型,作为我们在GC中建模的依据。
当被参考模型改变时,所有关联的元素都可以通过简单的重新执行相关的事务来同步被参考文件的更新。
如下图所示,我们可以有多种方法来定义所需的范围,如通过函数、元素等等。
新-GC用户手册 - 图16

14 转化范围(Range)内的元素

新建一个范围节点,方法为ByLowHighRangePoints,如下图所示:
新-GC用户手册 - 图17
将确定范围的两个点输入该节点,我们就成功的将ORD创建的路线元素转化成了GC可以识别的节点元素,ORD中创建的平面路线被转化成曲线,而有高程信息的路线被转化为多段线,如下图所示:
新-GC用户手册 - 图18
分别新建曲线和多段线节点,方法指定为FromElementsInRange,将之前创建的范围节点作为输入端口,并将ReferenceAttachemnt节点的可见性设置为否。如下图所示,我们可以清晰地看到MicroStation的路线元素在GC中被重新引用:
新-GC用户手册 - 图19
将以上这些操作生成事务,如下图:
当导入的路线有更新时,我们只需要重新执行事务,即可将更新同步到GC中,基于该路线的其他操作也会一同更新。

新-GC用户手册 - 图20

15 导出模型

16 导出到另一个文件中

新建导出节点(Export),方法指定为ExportNodesAsElementsToAnotherDesignFile,在输入端口填入想要导出的节点,要导出的文件,以及要导出的文件的种子文件,还可以在节点属性中指定要导入的模型名称和图层,如下图所示:
新-GC用户手册 - 图21
点击导出按钮,即可将设计成果导出至指定文件,如下图:
新-GC用户手册 - 图22

17 导出当前设计文件的另一个模型中

新建导出节点,方法指定为ExportNodesAsElementsToAnotherModelWithActiveDesignFile,选择要导出的节点,点击DGNModelName输入端口可以新建模型或者新建图纸类型,点击导出即可将选中节点导出至指定模型,如下图所示:
新-GC用户手册 - 图23

放置花瓶墩案例实操

18 概况介绍及数据准备

19 概况介绍

在某大桥项目的下部结构设计中,有大量的花瓶墩。众所周知,花瓶墩的建模一直是个难点。在我们传统使用的建模软件,如MocroStation,OpenBridge Modeler或OpenRoads Designer中,均没有简单且快捷的方法对花瓶墩顶部的渐变段进行建模,如下图所示:
新-GC用户手册 - 图24
在OpenBridge Modeler中,我们只能使用放置下部结构中的放置桥墩或者放置自定义实体的命令单独放置桥墩模板,不能实现批量的放置花瓶墩。
在GC中,我们可以使用节点生成任意形式的花瓶墩,并通过与Excel中的桩号、花瓶墩类型的信息联系起来,实现批量的放置花瓶墩。

20 案例中花瓶墩的桩号、类型等信息

经整理该项目的下部结构资料,我们以在路线上放置四个花瓶墩来作为我们本次的演示案例。桩号和花瓶墩的信息如下图所示:
新-GC用户手册 - 图25
花瓶墩的具体尺寸和建模方法会在下文具体描述。

21 路线准备

我们将在OpenRoads Designer中创建的路线参考到GC中,并使用前文介绍的Range节点将导入的路线元素转化为GC可以识别操作的元素,为下一步的创建花瓶墩以及放置工作做好铺垫,具体的操作过程如下:

22 新建baseCS节点和ReferenceAttachment节点,在节点的DesignFileToAttach端口中填入要参考的路线文件,如下图所示:

新-GC用户手册 - 图26

23 在路线的左上和右下角新建两个点作为Range的边界点,并新建一个方法为ByLowHighRangePoints的Range节点。将之前的两点输入Range节点中,把参考的路线包含在做创建的范围中,如下图所示:

新-GC用户手册 - 图27
新-GC用户手册 - 图28

24 新建方法为FromElementInRange的Curve节点和PolyLine(带有高程信息的路线会被GC识别为多段线)节点,将之前新建的Range节点输入其中,则可以看到我们的路线被转化为GC可以识别的元素,如下图所示:

新-GC用户手册 - 图29

25 新建一个方法为CompositeCurves的Curve节点,将之前步骤中分段的曲线合并成一条。OpenRoads Designer路线的最终转化效果如下图所示:

新-GC用户手册 - 图30
新-GC用户手册 - 图31

26 使用ByDistanceAlongCurve方法新建一个坐标系,Curve端口输入底部的平面曲线,DistanceAlongCurve输入桩号(支持以列表的形式输入多个桩号),如图所示:

新-GC用户手册 - 图32

27 新建方法为AtPlaneCurveIntersection的点,输入端如下图所示,即可确定不同桩号在空间路线的位置:

新-GC用户手册 - 图33
新-GC用户手册 - 图34

28 花瓶墩建模

29 花瓶墩的几何尺寸

根据设计图纸,该类型花瓶墩的几何尺寸如下图所示。该桥墩有两个对称的花瓶墩构成,因此在建模时我们可以先完成一个,然后镜像得到另一个。另外,单个花瓶墩的构造也是对称的,故我们可以在建模中灵活使用镜像来简化我们的建模步骤。
新-GC用户手册 - 图35

30 桥墩的定位

在前文中我们得到桩号在路线上的对应位置,即该类型桥墩中心点的位置,故我们应按照图纸确定单个花瓶墩墩身中点的位置。新建方法为ByDirectionAndDistanceFromOrigin的点,输入如下参数,即可确定一侧花瓶墩的中心点位置。新-GC用户手册 - 图36
为了后续方便定位墩身上的点,我们在花瓶墩的中心点位置,新建一个坐标系,方法为ByOriginCoordinateSystem,输入参数如下图所示:
新-GC用户手册 - 图37

31 墩身渐变段建模

32 按照图纸信息,我们先创建如下图所示的花瓶墩的定位点

新-GC用户手册 - 图38新-GC用户手册 - 图39
新建基于花瓶墩中心点坐标系的定位点,如下图所示:
新-GC用户手册 - 图40

33 依据前文画出的上部定位点,通过新建方法为FromVertices的多边形节点做出花瓶墩变截面部分的顶部轮廓。依据下部定位点,首先使用ByPoints方法创建线画出花瓶墩下部轮廓线;然后根据下部的定位点与轮廓线通过新建方法为FilletTangentToCurvers的圆弧创建轮廓线的线的圆弧倒角;最后新疆方法为CompositeCurves的Curve节点生成变截面部分的底部轮廓。如下图所示:

新-GC用户手册 - 图41
新-GC用户手册 - 图42

34 如图所示,基于下部倒角圆弧的起终点先创建只有z坐标不同的辅助点,使用ByDirectionAndDistanceFromOrigin方法;依据圆弧起终点与只有Z值不同的辅助点使用ByOriginDirectionPoint方法生成方向节点,为下一步生成边缘的圆弧做准备。

新-GC用户手册 - 图43
新-GC用户手册 - 图44

35 基于上一步完成的方向,使用方法为ByTangentDirectionEndPoint创建渐变段的边界圆弧,如下图所示:

新-GC用户手册 - 图45
新-GC用户手册 - 图46

36 创建方法为FromRailAndSweptSections的B样条曲面,输入的数据如下所示,生成花瓶墩渐变段的曲面。按照如下图所示的方法,生成渐变段的所有曲面。

新-GC用户手册 - 图47
新-GC用户手册 - 图48

37 将花瓶墩渐变段顶面和底面的轮廓线按照FromClosedCurve方法转成B样条曲面。然后新建方法为ByClosedListOfSurfaces的实体(Solid)节点,将之前创建的曲面全部输入其中,生成了花瓶墩上部渐变段的建模,如下图所示:

新-GC用户手册 - 图49

38 墩身标准段建模

使用方法为OffsetFromClosedCurve的实体创建墩身的下部标准段。同样的,使用相同的方法生成实体创建墩身的顶部标准段,输入端口的参数和最终的效果图如下所示:
新-GC用户手册 - 图50
新-GC用户手册 - 图51
新-GC用户手册 - 图52

39 墩身凹槽建模

40 基于该花瓶墩的中心点坐标系,结合图纸信息使用方法为ByCartesianCoordinates的点创建墩身凹槽的特征点。坐标系选择为墩顶中心点的坐标系,分别输入X、Y、Z坐标,如下图所示:(注:点的”.X”引用的坐标值是baseCS坐标系下的,不是当前引用坐标系下的坐标值)

新-GC用户手册 - 图53

41 生成凹槽的轮廓线。首先使用方法为ByPoints的直线生成轮廓线的直线段,然后使用方法为ByTangentDirectionEndPoint的圆弧生成轮廓的圆弧段,最后使用方法为CompositeCurvers的曲线将生成整个轮廓线,效果图如下图所示:

新-GC用户手册 - 图54新-GC用户手册 - 图55

42 利用上一步中生成的轮廓线生成凹槽部分的各个面。首先使用方法为FromClosedCurves的B样条曲面生成前后面,然后使用方法为LoftCurves的B样条曲面生成侧面。节点详情如下截图所示:

新-GC用户手册 - 图56

43 使用方法为ByClosedListOfSurfaces的Solid节点生成凹槽部分,效果如下图所示:

新-GC用户手册 - 图57

44 使用方法为BooleanOperation的Solid节点,将之前创建的墩身实体与凹槽实体做布尔运算,即得到最终的花瓶墩墩身。使用镜像节点,镜像平面为coordinateSyetem1.YZPlane,得到该类型花瓶墩的完整墩身,如下如所示:

新-GC用户手册 - 图58
新-GC用户手册 - 图59

45 承台建模

46 首先按照图纸信息,创建承台的定位点,然后按照定位点生成承台的拉伸断面,节点详情如下所示:

新-GC用户手册 - 图60

47 使用方法为OffsetFromClosedCurve的实体节点,拉伸形成承台的雏形,再使用方法为BlendEdge的实体节点对其进行倒角,生成最终的承台,如下图所示:

新-GC用户手册 - 图61
新-GC用户手册 - 图62

48 使用镜像节点对其进行镜像,生成另一侧的承台,如下图所示:

新-GC用户手册 - 图63
新-GC用户手册 - 图64

49 桩的建模

与承台的建模方式类似,首先创建桩的定位点,然后依据定位点生成桩的断面,然后拉伸断面形成桩,最后使用镜像节点生成另外一侧的桩,最终结果如下图所示:
新-GC用户手册 - 图65

50 总结

这样我们就使用GC完成了在特定桩号放置花瓶墩的需求,但在我们具体的实操过程中,发现使用节点一步步的在GC中生成花瓶墩的过程是十分繁琐且效率低下的,不符合我们实际项目的需求。
因此我们以上的建模步骤仅供大家参考学习GC的建模流程以及GC与ORD路线的简单交互,在下一章我们将介绍在GC中使用函数在特定桩号放置花瓶墩。

51 使用函数创建、放置花瓶墩

52 花瓶墩的基本信息

与使用图表方式建模的花瓶墩尺寸、桩号相同。

53 准备工作

54 导入路线,如图所示,按照下边的步骤导入路线并将其装化成GC可以识别的元素:

新-GC用户手册 - 图66

55 使用路线定位花瓶墩。首先,使用Expression节点输入花瓶墩的桩号,如下图所示:

新-GC用户手册 - 图67

使用如下图所示的节点,在路线上定位花瓶墩的桩号。我们使用一个坐标系节点-workingCS来表示花瓶墩的桩号:

新-GC用户手册 - 图68

Note:point3节点的重复样式(Replication Style)是与其他不同,是因为其使用了穷举样式,具体描述见帮助文档。

因为point3使用了穷举样式,workingCS的编号变成了双重列表,workingCS[0][*], 如下图所示:

新-GC用户手册 - 图69

56 墩身渐变段建模

57 首先,我们新建一个方法为ByFunction的Solid节点,打开函数输入端口编写我们的函数,以及定义函数的输入参数:

Note:使用节点的ByFunction方法创建的函数内部可以直接访问到其他节点的信息。故建议将函数内部的变量以及入参单独命名,防止其他节点名称改变而引起的报错。

新-GC用户手册 - 图70

58 因为我们需要一次生成多个花瓶墩,故在这使用for循环。首先,新建一些在建模过程中用到的GC节点对象,如下图所示;然后使用如下的方法生成我们所需要的定位点和花瓶墩渐变段的上下部轮廓。完整的代码文本见附件。

新-GC用户手册 - 图71

59 利用代码创建花瓶墩侧面渐变段的轮廓线的辅助点和方向,部分代码如下图所示:

新-GC用户手册 - 图72

60 利用上一步中生成的辅助方向,利用ByTangentDirectionEndPoint方法生成渐变段侧面的圆弧轮廓。注意:方法中有个布尔类型的ReverseTangent需要根据实际情况调整。部分代码如下如图所示:

新-GC用户手册 - 图73
新-GC用户手册 - 图74

61 使用B样条曲面中的FromRailsAndSweepSections方法拉伸出渐变段的曲面,代码如下图所示:

新-GC用户手册 - 图75

62 使用同样的方法拉伸出渐变段的侧面,代码如下图所示:

新-GC用户手册 - 图76

63 使用方法为FromClosedCurve的B样条曲面生成花瓶墩渐变段的顶面和底面,代码如下:

新-GC用户手册 - 图77

64 新建方法为ByClosedListOfSurfaces的Solid节点,将上边步骤创建的B样条曲面缝合起来,生成花瓶墩的渐变段实体,部分代码如下图所示;这样我们就生成了路线一侧的渐变段花瓶墩。

新-GC用户手册 - 图78

65 使用镜像节点,镜像面设置为桩号坐标系的XZ平面,生成路线另外一侧的花瓶墩渐变段实体,图表节点和模型窗口如下图所示:

新-GC用户手册 - 图79
新-GC用户手册 - 图80

66 墩身标准段建模

67 如图所示,新建两个方法为ByFunction的Solid节点,分别生成渐变段上部和下部的标准段,如下图所示:

新-GC用户手册 - 图81

68 上部标准段的函数代码如下图所示:

新-GC用户手册 - 图82

69 下部标准段的部分代码如下所示:

新-GC用户手册 - 图83

70 使用镜像节点,将上下部标准段沿woekingCS.XZPlane平面镜像,得到路线左侧的花瓶墩,最终效果如下图所示:

新-GC用户手册 - 图84

71 当然,我们也可以把标准段的函数建模与渐变段的建模整合到一起,形成一个函数。使用布尔运算将三部分组合成一个整体,输出一个实体,部分代码如下图所示:

新-GC用户手册 - 图85

72 墩身凹槽建模

73 新建一个方法为ByFunction的Solid节点,打开编辑对话框编写我们的函数,如下图所示:

新-GC用户手册 - 图86

74 新建凹槽定位点的节点和生成凹槽轮廓的线、圆弧、曲线等辅助元素,如下图所示:

新-GC用户手册 - 图87

75 新建B样条曲面节点,使用上一步骤中生成的凹槽轮廓创建围成凹槽的曲面,代码和使用的方法去下图所示:

新-GC用户手册 - 图88

76 新建实体节点,使用BySurfaceCapping方法生成凹槽实体,然后使用关于桩号坐标系YZ平面镜像得到另一侧的凹槽实体。将二者作为实体列表so的元素返回,部分代码如下图所示:

新-GC用户手册 - 图89

77 将之前生成的墩身实体与上一步骤生成的凹槽实体做两次布尔运算,得到最终的花瓶墩墩身,代码和最终的效果图如下所示:

新-GC用户手册 - 图90
新-GC用户手册 - 图91

78 承台建模

79 新建一个方法为ByFunction的Solid节点,打开编辑对话框编写我们的函数,如下图所示:

新-GC用户手册 - 图92

80 新建生成基础实体的点和多边形辅助节点,并确定定位点的坐标,如下图所示:

新-GC用户手册 - 图93

81 先将之前创建的承台实体的轮廓拉伸成初步的实体,再对其做倒角,生成最终的承台实体,代码如下图所示:

新-GC用户手册 - 图94

82 将我们创建的承台实体镜像到路线的另一侧,最终得效果图如下所示:

新-GC用户手册 - 图95
新-GC用户手册 - 图96

83 桩的建模

84 与创建承台的方法类似,先创建点和圆的节点,然后把圆拉伸成实体,就生成了我们的桩,将生成的桩实体镜像到路线的另外一侧,代码和最终效果图如下图所示:

新-GC用户手册 - 图97
新-GC用户手册 - 图98

85 一些总结

使用函数创建花瓶墩一方面可以提高建模的速度和软件运行的速度,另一方面也可以提高建模的可重复性,方便后期修改参数直接生成新的花瓶墩。

86 导出模型

新建导出节点,按照输入端口填入相应的需要导出的节点,导出到的目标文件,以及目标文件所采用的种子文件,如下图所示:
新-GC用户手册 - 图99
如上图所示,我们还可以将模型到指定文件的指定model中。
打开导出的文件,可以看到我们在GC中生成的模型已经被导出到了该文件中,如下图所示:
新-GC用户手册 - 图100

隧道布置锚杆案例实操

87 概况介绍及数据准备

88 概况介绍

某隧道项目起点桩号480+760,全长5360米,最大埋深439米。该隧道为客运专线双线隧道,列车设计时速350km/h,设置双侧救援通道。隧道建筑限界基本尺寸轮廓和内轮廓图纸如下所示:
新-GC用户手册 - 图101
新-GC用户手册 - 图102
该隧道通过的地质条件复杂,针对不同的围岩等级和强度以及隧道埋深,设计了不同的衬砌形式。

89 项目数据准备(锚杆桩号、间距、位置、倾角、长度)

本案例选择围岩等级为IV时的IV型复合衬砌。经查图纸,使用IV型符合衬砌隧道对应的起点桩号为478+702,终点桩号为479+525,全长823米。IV型复合衬砌所对应的锚杆加固信息如下表所示:

纵向间隔(m) 横向间隔/2(m) 拱部半径(m) 布设角度/2(°) 锚杆长度(m)
1 0.6 7.05 109 4

其中,拱部系统采用22组合的中空锚杆,边墙采用22的普通砂浆锚杆,锚杆长度4米。
本案例中,初期支护、防水板、二次衬砌等结构在OBM中完成,在GC中使用隧道路线完成图中两种类型锚杆的排布。
IV型复合衬砌的构造图如下所示:

新-GC用户手册 - 图103

90 在GC中按要求排布锚杆

91 将路线参考到GC中

首先新建一个项目文件,新建基准坐标系,然后新建两个参考节点。坐标系端口填入基准坐标系,下一个端口填入要参考的文件。如下图所示,打开节点的属性窗口,我们需要特别注意该节点的可选输入端口,即属性窗口蓝色的参数,一般默认是不显示的,这些可选输入参数可以让我们更好的控制需要导入的元素信息。
在本案例中,路线文件使用2D 的种子文件创建的,所以平面线形和有高程信息的空间路线分别属于两个模型中。所以我们需要新建两个参考节点,分别导入Default模型中的平面线形和Default-3D模型中的空间线形。另外,如果需要参考的文件也参考了别的文件,我们可以通过设置NestLeve的数值确定参考的嵌套层数。
新-GC用户手册 - 图104
新-GC用户手册 - 图105
然后,创建Range节点,使用ByLowHighRangePoints方法,同时为参考的元素创建两个边界点,如下图所示:
新-GC用户手册 - 图106
创建Curve节点将路线的平面线形转化为GC可以识别的曲线;创建多段线(PolyLine)节点将路线的空间线形转化为GC可以识别的元素是,如上图所示。需要注意的是,从Range节点中返回元素必然是一个列表,尽管这个列表可能只有一个元素。

92 在路线上标定桩号

在GC中我们不能直接使用ORD路线中的桩号信息,我们只能使用曲线上某点距离曲线起点的距离。故我们采用如下图所示的方式在GC所能识别的元素上确定桩号。
首先创建两个Expression节点,作为实际工作桩号与路线的起点桩号;然后新建方法为ByDistanceAlongCurve的坐标系节点,曲线端口输入路线转化的平面曲线,沿曲线的距离端口输入“station - POB”,最后一个可选的UpVector端口指定基准坐标系的Z轴方向为该坐标系的Z轴方向,这样可以防止坐标系绕曲线旋转。这样就在平面线形上标定了指定桩号的位置。
新-GC用户手册 - 图107新-GC用户手册 - 图108
新建方法为AtPlaneCurveIntersection的点节点和方法为ByOriginCoordinateSystem的坐标系节点。通过求上一步骤中坐标系的YZ平面与空间线形的交点确定指定桩号在空间线形上的位置,将上一步骤创建的坐标系移动到交点位置确定该桩号处的方向等信息,如上图所示。

93 确定隧道锚杆的工作点

锚杆排布在二次衬砌的外侧的圆弧上,该圆弧的圆心并不是隧道的中心,也不在路线上。所以我们要依据上一步骤中确定的桩号定位出排布锚杆的圆弧及其圆心。
创建方法为ByUniversalTransform的坐标系节点,根据之前确定的桩号坐标系以及隧道的尺寸信息填入XYZ的值,就可以定位出锚杆排布圆弧的圆心,如下图所示:
新-GC用户手册 - 图109

94 使用节点、图表放置锚杆(验证技术思路)

95 创建锚杆排布的圆弧

由图纸信息可得圆弧半径为7.05,拱部角度为142.6566,两侧边墙的角度为37.3434。我们拱部圆弧为例。
新建方法为ByCenterRadiusSweepAngle的圆弧节点,节点的输入端口输入如下的参数,即可生成锚杆排布的圆弧,如下图所示:
新-GC用户手册 - 图110

96 在圆弧上定位锚杆排布的点

按照图纸信息,锚杆沿着二次衬砌的外表面以纵向间距1米,横向间距0.6米,布设角度109度排列在圆弧上的。
我们将锚杆的定位点以坐标系的原点定位出来,坐标系自带的方向属性可以方便我们后续生成锚杆实体。因此,我们必须保证我们创建的锚杆定位点坐标系的方向的一致性,这也是我们这一步骤的难点。为了达成这些,按照图中的方法新建如下节点:
新-GC用户手册 - 图111
滑块节点(Slider)的最小值设置为0,最大值设置为圆弧的长度,步长为0.6(锚杆的横向间距),如下图所示:
新-GC用户手册 - 图112
观察可知,圆弧所处的平面为YZ平面,与X轴垂直,故显示的将X轴指定为方法为DyDistanceAlongCurve的UpVector输入端口的值,防止锚杆定位坐标系沿着圆弧转动,影响下一步操作,如下图所示:
新-GC用户手册 - 图113
我们可以通过改变滑块的值来测试在圆弧上的每一个锚杆排布位置的坐标系。

97 创建锚杆

我们使用圆柱体来代替锚杆。
如下图所示,在锚杆的定位点坐标系的XZ平面新建半径为11cm的圆作为拉伸锚杆实体的端面;沿径向拉伸端面得到锚杆实体。
重复此步骤即可得到该断面的全部的拱部锚杆。
新-GC用户手册 - 图114

98 利用函数排布锚杆

99 生成顶部锚杆、边墙锚杆的圆弧

首先新建一个方法为ByFunction的实体节点,开始编写我们的函数。
使用方法ByCenterRadiusSweepAngle生成边墙和拱部锚杆的排布圆弧,代码如下图所示:
新-GC用户手册 - 图115

100 在圆弧路径上生成锚杆的定位点

使用ByDistanceAlongCurve方法在指定的圆弧上创建间距为0.6米的锚杆定位坐标系,代码如下所示。
新建一个类型为坐标系的列表和一些用于计数的辅助变量,使用while循环结合以上提到的方法生成锚杆的定位坐标系。
Note:将两个边墙和拱部的锚杆定位点分别放在不同的列表中,方便后期生成锚杆实体的时候方便区分。
新-GC用户手册 - 图116

101 生成锚杆实体

在上一步骤生成的锚杆定位点坐标系上创建锚杆实体。先创建圆的拉伸断面,然后将断面拉伸成锚杆实体。
因为我们的目标是创建锚杆实体,故对上一步骤中的代码做一些修改,新建实体列表作为最终结果的返回值,删除上一步骤中的坐标系列表,分别在每个循环中间新建过渡的坐标系和圆型断面,并且给不同部分的锚杆添加不同的颜色以示区分,拱部锚杆的代码如下图所示:

新-GC用户手册 - 图117
类似的我们可以得到生成两侧边墙锚杆的代码,如下图所示:
新-GC用户手册 - 图118
新-GC用户手册 - 图119
最终的效果图如下图所示:
新-GC用户手册 - 图120

102 沿路线批量放置锚杆

从项目资料中,我们可以知道锚杆沿着路线方向的间距是1米。因此,我们只需要将上一步骤沿着路径循环起来就行。我们可以将之前创建好的锚杆使用Solid.CopyTransformGeometricContents方法复制到后续的每一个断面上,代码和最终效果图如下图所示:
新-GC用户手册 - 图121
新-GC用户手册 - 图122
我们也可以选择将循环直接加到创建第一排锚杆的代码中,使用一个实体节点直接创建该段上全部的锚杆,代码和最最终的效果图如下所示:
新-GC用户手册 - 图123
新-GC用户手册 - 图124
新-GC用户手册 - 图125
新-GC用户手册 - 图126
新-GC用户手册 - 图127

103 将模型导出进行最终组装

104 将模型导出

新建导出节点,将生成的锚杆节点导出到独立文件,如下图所示:
新-GC用户手册 - 图128

105 与衬砌进行组装

新建总装模型文件,将上一步骤中导出的锚杆实体模型与OBM创建的隧道初次衬砌模型组合,得到最终的总装模型,效果如下图所示:
新-GC用户手册 - 图129