T E K L A二次开发案例
自学手册
https://www.doczj.com/doc/3513385540.html,work Information Technology Company.2020YEAR
这种材料面向开发人员,他们在Tekla Open API方面的经验很少。这包括具有一定量指导的练习,但是没有太多自动学习和比较新颖的东西。
1 Tekla Structures的Tekla Open API的自学材料
练习的目的和结构
这种自学材料包含练习,以帮助您学习和实践Tekla Open API的基本概念。想要覆盖开发人员可能面临的问题都是不可能的,因此特地介绍了一些典型的例子。熟悉API后,您可以为其他情况开发自己的应用程序。
这个练习分为几个较小的练习,一个创建小建筑物的应用程序,然后从那里生成图纸。练习包含一些建模和图纸的练习。还包括对话框的使用。
在每次练习中,您将在Tekla Structures中看到最终结果的图像,您也可以获取示例代码。下一个练习开始时可以使用相同的示例代码。如果你自己的代码太不一样以至于无法轻松地继续练习,你可以使用示例代码库。
参考手册
在开始练习之前,强烈建议您阅读Open API的参考手册。参考手册TeklaOpenAPI_Reference.chm包含在Open API启动包中。
参考手册是使用API构建新软件时非常宝贵的资源。关于如何使用不同的对象和方法有很多很好的例子。这些练习中应使用参考手册。
以下章节包括自学API的练习。在第1.1章中,有关如何在Microsoft Visual Studio 2010中设置新项目以及如何使用API的练习。建模和对话练习在第2章介绍,绘图练习在第3章中介绍。
1.1在Visual Studio中创建一个新项目
您将学习在项目中使用API所需要做的工作。
前提:当您要测试您的应用程序时,您需要运行Tekla Structures并打开模型,最好是空模型。
1.1.1创建一个新的.NET应用程序项目。
第一步是启动Microsoft Visual Studio 2010并从文件菜单创建一个新项目(新建->项目)。
填写屏幕截图所示的详细信息,然后按OK创建一个空的Windows应用程序。
1.1.2添加对API程序集的引用。
创建项目后,您需要添加对Tekla Open API程序集的引用,如
Tekla.Structures.Model.dll和Tekla.Structures.dll。添加这些引用将使您能够使用这些程序集中包含的对象。
要添加引用,您可以右键单击解决方案资源管理器中的引用,然后从弹出菜单中选择添加引用,也可以从项目菜单中选择添加引用。
单击添加引用菜单中的浏览,以找到Tekla.Structures.Model.dll和
Tekla.Structures.dll文件。您将在Tekla Structures安装文件夹\nt\bin\plugins\文件夹中找到这些文件。找到它们之后,请选择它们并选择打开,然后在添加引用对话框中按确定。
在练习中,您将需要这些参考:
●Tekla.Structures.dll
●Tekla.Structures.Model.dll
●Tekla.Structures.Drawing.dll
●Tekla.Structures.Dialog.dll(从\ nt \ bin \ dialogs \找到)
●Tekla.Structures.Catalogs.dll
如果要为Tekla Structures中创建一个插件,那么您需要添加
Tekla.Structures.Plugin.dll。
接来下您可以在项目中使用API的类和方法。
1.1.3将指令添加到API程序集的命名空间。
查看Form1.cs的代码(右键单击表单并选择查看代码),并将指令行添加到代码的开头:
using Tekla.Structures.Model;
using TSG3D = Tekla.Structures.Geometry3d;
现在您可以使用API开始开发应用程序了。
2建模API的练习
以下是建模练习的主题:
(第1.1章)在Visual Studio中创建一个新的项目
(第2.1章)创建垫脚
(第2.2章)在底座上添加列
(第2.3章)将钢筋添加到垫脚上
(第2.4章)使用目录UI控件
(第2.5章)添加模板表单
2.1 创建垫脚
您将学习如何通过API在Tekla Structures中创建基本对象。
这个练习结果应该是这样的:
前提
您需要运行Tekla Structures并打开一个空模型。使用此模型,以便网格间距与示例中使用的相同:
Exercise-model.zip
(\ TeklaOpenAPIStartUpPackage_v190\ SelfLearningExercises\ Exercise-model.zip)
请记住阅读该页面上的提示。从第1.1章阅读并学习关于在Microsoft Visual Studio中创建新项目。
创建创建垫脚的应用程序
在应用程序表单中添加一个按钮“创建垫脚”,并将脚注创建点击事件。在网格线A,E,1和6上的每个网格交点上创建垫脚。因此,总共创建18个垫脚。
提示:
●可以使用梁类创建垫脚。
●您应该创建一个方法,根据给出的坐标位置创建一个垫脚。
●然后,您可以使用for循环创建垫脚的位置。
创建Model实例后,通过调用Model.GetConnectionStatus()来检查连接是否有效。如果返回true,那么可以使用API。
帮助:
请参阅参考手册中的至少以下主题:
●Beam class梁类
说明:
关于代码应该做的简要说明:
1.创建一个新的Model对象,该对象表示您在Tekla Structures中打开的Tekla Structures模型。
2.检查您是否打开了可以连接的Tekla Structures模型。
3.创建一种基于两个输入位置的创建并插入一个垫脚的方法。垫脚应该设置以下属性:
Name = "FOOTING"
Profile.ProfileString = "1500*1500"
Material.MaterialString = "K30-2"
Class = "8"
StartPoint
EndPoint (change Z coordinate 500.0 mm lower than in startpoint)
Position.Rotation = Position.RotationEnum.FRONT
Position.Plane = Position.PlaneEnum.MIDDLE
Position.Depth = Position.DepthEnum.MIDDLE
请注意,这些值可能需要本地化,需要在环境中找到配置文件和材料。
4.创建两个for循环以遍历位置的X和Y方向,并使用步骤3中提到的方法创建垫脚。
5. CommitChanges()确保在Tekla Structures中更新已完成的所有更改,并相应更新模型视图。如果未调用此命令,则必须在Tekla Structures中手动刷新视图以查看更改。
完成之后,您需要做的就是确保您已经打开了Tekla Structures模型,并选择“从Visual Studio中的”调试“菜单开始运行您的项目。您现在将出现带有“创建垫脚”按钮的窗体,并按压它将垫脚放置在模型的网格交叉点。
此练习的示例解决方案可以从“练习/练习2.1-PadFootings”文件夹下的Open API启动包中找到。
(.. \ TeklaOpenAPIStartUpPackage_v190\自学习\练习\ Exercise2.1-PadFootings)
2.2在垫脚的顶部创建柱,并将柱连接到垫脚
您将学习如何创建与模型的连接。
结果应该是这样的:
前提
您需要运行Tekla Structures并打开一个空模型。你还需要第一个练习中的代码; 你可以从下面的链接中获得它。
上一次练习的示例解决方案
帮助:
请参阅参考手册中的至少以下主题:
●Beam class梁类
●Connection class连接类
在每个垫脚的顶部创建柱,并将其与加固的底板连接(1014)
修改上一个练习,以便添加两种方法,一种用于在衬垫底座上添加柱,另一种用于在垫脚和柱之间添加加固的底板(1014)。您需要返回插入的垫脚和列,然后将它们提供给创建这些连接的方法(您也可以为代码使用其他架构)。
说明:
1.创建一个在垫脚上创建柱(Beam类)的方法。
2.使用连接类,加固底板(1014)将柱连接到垫脚上; 使用柱作为主要部分。
对柱使用这些值(记住要定位所需的值)
Name = "Column";
Profile.ProfileString = "HEA400";
Material.MaterialString = "S235JR";
Class = "2";
EndPoint.Z = 5000.0;
Position.Rotation = Position.RotationEnum.FRONT;
Position.Plane = Position.PlaneEnum.MIDDLE;
Position.Depth = Position.DepthEnum.MIDDLE;
使用此属性用于加固的底板以实现锚杆:
SetAttribute("cut", 1)
LoadAttributesFromFile("standard")
UpVector = new Vector(0, 0, 1000)
关于“剪切”属性的注释。它是Tekla Structures中的一个选项菜单,它在该特定连接的.inp文件中定义。
另请注意,由于历史原因,选项菜单返回的值为:
●第一个值(通常为0)表示内部空值
●第二个值(通常为1)表示值0
●第三个值(通常为2)表示值1。
这就是为什么你需要将该属性设置为1,而在.inp中它表示锚杆的值为2。
本练习的示例解决方案可以从练习2-2中的Open API启动包中找到。
2.3创建钢筋底座的钢筋
您将学习如何从模型中选择对象,然后使用枚举器循环遍历这些对象。
结果应该是这样的:
前提:
您需要运行Tekla Structures并打开模型,最好是空模型。
您还需要练习2.2的源代码。
上一次练习的示例解决方案
(.. \ TeklaOpenAPIStartUpPackage_v190\自学习\练习\ Exercise2.2-列)
帮助:
请参阅参考手册中的至少以下主题:
●Reinforcement and RebarGroup classes
●Polygon and Point classes 多边形和点类
说明:
1.为每个垫脚建立钢筋。在对话框中创建一个字段以供用户给出基准的大小。
2.在对话框中添加一个新按钮,使用以下方法创建钢筋。
3.从模型中选择所有对象到枚举器(ModelObjectEnumerator)。
4.通过枚举器循环。
5.如果物体是垫脚,则使用垫脚的StartPoint作为位置来创建钢筋组。
6.从对话框获取基础的大小。
7.在基础周围创建圆形钢筋。
使用这些值(记住要定位所需的值):
多边形,使用垫脚的角点作为多边形点,记住给出起点也是最后一点(见第6点)。StartPoint和EndPoint,使用垫脚位置和高度。
Class = 3
Name = "FootingRebar"
Father, use pad footing.
Grade = "A500HW"
Size = "12"
Radiusvalues.Add(40.0)
SpacingType = SPACING_TYPE_TARGET_SPACE
Spacings.Add(100.0)
ExcludeType = EXCLUDE_TYPE_BOTH
StartNumber = 0
Prefix = "Group"
OnPlaneOffsets.Add(25.0)
FromPlaneOffset = 40
此练习的示例解决方案见Open API启动包中的练习。
2.4使用目录UI控件
API包含用于配置文件目录,钢筋目录和网格目录的窗体对话框,以帮助具有窗体并且需要在UI中提供示例配置文件选择的应用程序(和插件)的开发人员。现在,您将学习如何使用现成的自定义用户界面控件从Tekla Structures 中的目录中选择配置文件和网格。
您还将学习如何通过目录枚举并自定义对话框中显示的项目列表。
此练习后,您的应用程序可能看起来像这样:
前提
您需要运行Tekla Structures并打开模型,最好是空模型。
您还需要练习2.3的源代码。
将用户界面控件添加到Visual Studio的工具箱中:
有两种方法可以将控件添加到Visual Studio的工具箱中:
●右键单击工具箱,然后选择“选择项目”。然后点击浏览按钮打开
Tekla.Structures.Dialog.dll。控件将被添加到列表中。您可以选择一个控件或所有要添加到工具箱的控件。
●使用Windows资源管理器导航到\ Program Files \ Tekla Structures \ [version] \
nt \ bin \ dialogs \ Tekla.Structures.Dialog.dll,打开Designer并将dll拖放到工具箱的“常规”选项卡中。所有的控件将被添加到工具箱。请参阅下面的快照。
帮助:
请参阅参考手册中的至少以下主题:
●FormBase class
●ProfileCatalog class
●ReinforcementCatalog Class
●SaveLoad Class
说明:
1.为了使用户界面控件工作,您的Form必须继承自ApplicationFormBase。另外在Form的构造函数中必须调用
base.InitializeForm();
2.让用户选择柱的配置文件。为此,您可以使用名为“ProfileCatalog”的用户界面控件。将此控件添加到窗体。您可以将控件拖放到“窗体”对话框中。
用户从对话框中选择的项目将被存储到SelectedProfile属性中。
添加一个文本框以显示所选配置文件。
当用户将配置文件键入文本框并单击“选择”按钮时,应从配置文件目录对话框中自动选择键入的配置文件。将属性SelectedProfile设置为某个值将在对话框打开时从对话框中选择该值(如果该值包含在目录中)。
3.添加“ReinforcementCatalog”用户界面控件,选择垫脚的钢筋。
添加三个文本框以显示所选钢筋的尺寸,坡度和弯曲半径。使用这些文本框的值也可以在对话框打开时选择加强编录对话框中的值。
4.在代码中替换配置文件和钢筋的硬编码值。
钢筋弯曲半径可以在目录中具有几个值,例如。“20 40”,所以这些值需要由应用程序处理。因此,我们不像以前那样在代码中定义半径值Radiusvalues.Add(40.0)
我们可以询问用户的值:
char[] Separator = {' '};
string[] Radiuses =
BendingRadiusTextBox.Text.Split(Separator,
StringSplitOptions.RemoveEmptyEntries);
foreach(string Item in Radiuses)
Rebar.RadiusValues.Add(Convert.ToDouble(Item));
5.将“SaveLoad”控件添加到窗体。
只有绑定到某些属性的控件的值将被保存,这意味着它们具有“AttributeName”和“AttributeTypeName”。要设置它们,打开Visual Studio 设计视图,然后转到“属性”选项卡。AttributeName和AttributeTypeName位于标题Tekla Structures下:
AttributeName是您标识控件的名称。
AttributeTypeName是控件内容的Tekla.Structures.Datatype的名称。可能的AttributeTypeNames是Boolean,Distance,DistanceList String,Integer和Double。
提示:
当使用用户界面控件“ProfileCatalog”和“ReinforcementCatalog”时,请记住为事件“SelectClicked”和“SelectionDone”创建回调。
修改两个对话框的SelectClicked回调。当用户单击您的窗体中的选择按钮时,会引发SelectClicked事件。修改回调,以便根据Form中的值设置SelectedProfile,SelectedRebarGrade,SelectedRebarSize和SelectedBendingRadius的值,例如:
profileCatalog1.SelectedProfile = ColumnsProfileTextBox.Text;
当配置文件或钢筋选择对话框关闭时,会引发SelectionDone事件。要更新表单中显示的文本,请使用SetAttributeValue()方法和SelectedProfile,
SelectedRebarGrade,SelectedRebarSize和SelectedBendingRadius属性中存储的值。例如:
SetAttributeValue(ColumnsProfileTextBox, profileCatalog1.SelectedProfile);
要替换硬编码值,您需要使用在文本框中定义的值。例如:
Column.Profile.ProfileString = ColumnsProfileTextBox.Text;
此练习的示例解决方案可以从练习/练习2.4 - UIControls文件夹下的Open API启动包中找到。
2.5添加模板表单
您将学习如何使用Tekla.Structures.Dialog.UIControls命名空间中可用的一些继承的表单。这些继承的表单可以用作一些最常见的Tekla Structures对话框的模板。
可用表单为:
●CommitAction
●CreateDialog
●OrganizerDialog
●PropertiesDialog
●TreeViewDialog
前提:
您需要运行Tekla Structures并打开模型,最好是空模型。您还需要练习2.4的源代码。
应用程序的主对话框可能如下所示:
创建对话框看起来像这样:
说明:
在本练习中,我们不会添加任何新功能,但我们将只显示如何向项目添加模板对话框。
1.为了使用其中一个模板对话框,您需要在项目中插入一个新窗体。这个新窗体必须从您要使用的对话框继承,例如:
public partial class CreateForm : Tekla.Structures.Dialog.UIControls.CreateDialog
2.在应用程序的主窗体中添加一个新按钮,创建一个继承的对话框的新实例并显示它。
3.尝试不同的模板并修改那些包含的控件。对话框不包含任何逻辑,所以一切都需要添加。模板对话框的目的只是为了拥有“Tekla外观”。您可以使用“CreateDialog”来实现类似于“创建NC文件”对话框的对话框。
4.如果您喜欢,可以通过创建包含有关所选零件(或所有零件)的信息的文档来继续建模练习。
提示:
可以修改对话框,因为其中包含的所有控件都受到保护,因此可以修改文本,添加新控件,可以将事件添加到现有对象中。
对话框中的控件不能被删除,尽管它们可以被隐藏。
此练习的示例解决方案可以从“练习/练习2.5”模板窗体文件夹下的Open API启动程序包中找到。
3绘图API练习
以下是绘图练习的主题:
(第1.1章)在Visual Studio中创建一个新的项目
(第3.1章)轻松编辑打开的图纸
(第3.2章)浏览图纸列表并打开图纸
3.1轻松编辑打开的图纸
您将学习如何对Tekla Structures中打开的图形进行简单的编辑。在本练习中,您将向图形添加线条和文本。
这个练习的结果应该是这样的:
3.2浏览图纸列表并打开图纸
您将学习如何打开图纸列表并循环浏览其中的图纸。此外,您将学习如何打开图形。
这个练习的结果应该是这样的: