鲁班人[ Ben's Blog]

-专注于建筑钢结构技术的发展与应用

« 开源软件之BugFree一组中西文化对比的图片 »

使用Tekla API创建Tekla模型

  在Tekla的安装目录(D:\TeklaStructures\13.0\nt\bin\plugins\)中为我们提供了.Net API接口,利用这些接口,可以实现对Tekla模型的控制和修改操作。本贴将讲述一个最简单的在Tekla中创建梁对象的示例,通过一个按钮在运行的Tekla进程中快速创建模型。需要注意的是,运行此示例程序时Tekla程度需要打开一个模型。

要连接Tekla模型数据库,需要在C#中添加“Tekla.Structures.Model”的引用,按钮下代码如下(C#):
private void button1_Click(object sender, EventArgs e)
        {
            Model M = new Model();
            if (M.GetConnectionStatus())//判断是否获取了Tekla进程
            {
                Tekla.Structures.Point Pt1 = 
                             new Tekla.Structures.Point(0,0,0);
                Tekla.Structures.Point Pt2 = 
                             new Tekla.Structures.Point(6000,0,0);
                Tekla.Structures.Point Pt3 = 
                             new Tekla.Structures.Point(6000, 3000, 0);
                Tekla.Structures.Point Pt4 = 
                             new Tekla.Structures.Point(0, 3000, 0);

                Tekla.Structures.Point Pt5 = 
                             new Tekla.Structures.Point(0, 0, 3000);
                Tekla.Structures.Point Pt6 = 
                             new Tekla.Structures.Point(6000, 0, 3000);
                Tekla.Structures.Point Pt7 = 
                             new Tekla.Structures.Point(6000, 3000, 3000);
                Tekla.Structures.Point Pt8= 
                             new Tekla.Structures.Point(0,3000, 3000);

                Beam C1 = new Beam(Pt1,Pt5);
                Beam C2 = new Beam(Pt2,Pt6);
                Beam C3 = new Beam(Pt3,Pt7);
                Beam C4 = new Beam(Pt4, Pt8);

                C1.Profile.ProfileString = "HM440*300*11*18";
                C2.Profile.ProfileString = "HM440*300*11*18";
                C3.Profile.ProfileString = "HM440*300*11*18";
                C4.Profile.ProfileString = "HM440*300*11*18";

                C1.Material.MaterialString = "Q235B";
                C2.Material.MaterialString = "Q235B";
                C3.Material.MaterialString = "Q235B";
                C4.Material.MaterialString = "Q235B";

                C1.Name = "Column";
                C2.Name = "Column";
                C3.Name = "Column";
                C4.Name = "Column";

                C1.Position.Depth = Position.DepthEnum.MIDDLE;
                C2.Position.Depth = Position.DepthEnum.MIDDLE;
                C3.Position.Depth = Position.DepthEnum.MIDDLE;
                C4.Position.Depth = Position.DepthEnum.MIDDLE;

                Beam B1 = new Beam(Pt5, Pt6);
                Beam B2 = new Beam(Pt6, Pt7);
                Beam B3 = new Beam(Pt7, Pt8);
                Beam B4 = new Beam(Pt8, Pt5);
               
                B1.Profile.ProfileString = "HN400*200*8*13";
                B2.Profile.ProfileString = "HN400*200*8*13";
                B3.Profile.ProfileString = "HN400*200*8*13";
                B4.Profile.ProfileString = "HN400*200*8*13";
               
                B1.Material.MaterialString = "Q235B";
                B2.Material.MaterialString = "Q235B";
                B3.Material.MaterialString = "Q235B";
                B4.Material.MaterialString = "Q235B";

                B1.Name = "Beam";
                B2.Name = "Beam";
                B3.Name = "Beam";
                B4.Name = "Beam";

                C1.Insert();//插入梁到模型数据库
                C2.Insert();
                C3.Insert();
                C4.Insert();

                B1.Insert();
                B2.Insert();
                B3.Insert();
                B4.Insert();
                M.CommitChanges();
            }


运行截面:
Tekla 二次开发示例

示例程序下载:点击下载
  • quote 1.steelsame
  • 大哥,太崇拜你了。请问大哥现在在做什么工作啊?我现在也用Tekla structure,感觉没什么意思。请大哥指点一下前进的方向。
  • 2007-11-17 17:07:59 回复该留言
  • quote 2.hjw
  • 我下了你的程序,并且打开了一个新的模型,我用的是13.0SR3的版的,既然用不起来.
    ben 于 2008-3-10 15:12:48 回复
    应该可以的,有什么提示么?
  • 2008-3-10 13:01:08 回复该留言
  • quote 3.苏建永
  • 我运行后怎么只有四根柱子,没有梁呢!
    ben 于 2008-4-15 13:38:50 回复
    是不是你的视图显示深度不够?再调深一点儿看看...如果生成了柱子,不可能没有梁的!
  • 2008-4-15 13:33:17 回复该留言
  • quote 4.今晚有约
  • 博主你好,我认为针对模型的操作对于刚刚接触二次开发的人来说只是实验和娱乐的,并不能很好的运用到实际工作中,博主是否有一些针对图纸操作的API开放呢?修改自己创建的宏对于操作图纸有很大的帮助,但也不是万能的,如果可以开放图纸的API我想就能实现很多功能了,而且很实际。本人比较笨,找来找去也找不到关于图纸的API,全部都是模型中的。希望博主能提供一些参考。万分谢谢
    ben 于 2009-4-2 12:55:15 回复
    这方面的功能偶也想过,由于不经常接确这块,因此没有细研究,也许现有版本这方面的函数还没有开放。
  • 2009-3-24 22:57:19 回复该留言
  • quote 5.临界点
  • 高人啊,tekla 打开文件出错E:\14.0\environments\china\symbols\targetpoint.dwg 出错代码0.能帮忙解决吗?万分感谢!!!!
    ben 于 2010-7-14 12:13:04 回复
    最近没研究过Tekla了,也没遇到上述情况,见谅。
  • 2010-7-14 12:01:49 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 91204 Code detection by Codefense

Copyright 2002-2010 Ben’s Weblog™. Some Rights Reserved.