Tekla Structures二次开发_模型方面
Tekla Structures二次开发关于模型方面的代码示例
Mike_detailing
多年Tekla使用经验,钢结构详图工程师。
初学Tekla二次开发,希望有同仁一起交流。
有需要节点插件,软件工具的,可有偿代寻高手
展开
-
(Tekla Structures二次开发)测试螺栓组中的螺栓序号
螺栓序号原创 2023-03-12 19:02:13 · 399 阅读 · 1 评论 -
(Tekla Structures二次开发)修改状态
分别修改构件状态和零件状态。原创 2022-08-17 22:53:22 · 1140 阅读 · 0 评论 -
从模型中选择板(或特定型材类型)
PROFILE_TYPE 变量:要选择配置文件的特定类型,您可以使用模板变量 PROFILE_TYPE。以下是可能的值:原创 2022-02-01 15:14:43 · 813 阅读 · 0 评论 -
(Tekla Structures二次开发)分享官方关于工作平面和矩阵的幻灯片
工作平面改变后,物体属性可以通过方法Select()来刷新。测试代码如下:TSM.Model model = new Model(); if (model.GetConnectionStatus()) { TSM.UI.Picker picker = new Picker(); try { model.GetWorkPlan原创 2021-11-30 15:24:59 · 835 阅读 · 0 评论 -
(Tekla Structures二次开发)ModelObjectEnumerator.AutoFetch
新的版本中增加了这个属性,据国外同行测试会影响速度。我查看帮助文件,发现2017版本已经有这个属性。国外同行Github代码地址:https://github.com/razorcx/speed-test/blob/master/SpeedTest/Program.csusing System.Collections;using System.Collections.Generic;using Tekla.Structures;using Tekla.Structures.Filtering;原创 2021-10-03 11:13:19 · 742 阅读 · 0 评论 -
(Tekla Structures二次开发)模型中螺栓的主次零件测试
查询视图:结果视图:测试代码: TSM.Model model = new Model(); if (model.GetConnectionStatus()) { TSM.UI.Picker picker = new Picker(); try { TSM.ModelObject mo = pi原创 2021-08-17 11:00:06 · 665 阅读 · 0 评论 -
如何在不移动剪切平面的情况下移动剪切平面剪刀?
答案很简单。按住 shift 并尝试移动剪刀!原创 2021-08-13 16:05:32 · 213 阅读 · 0 评论 -
在复制/移动对话框中使用公式
没有多少人知道移动/复制对话框窗口可以填充公式。现在您可以关闭 Windows 计算器并开始在该对话框中进行计算。完整的函数列表参见:https://teklastructures.support.tekla.com/2019i/en/det_functions_in_variable_formulas您可以加、乘、除和使用许多数学函数,但可能最有用的公式是 vwu() – 单位值。使用该公式,您可以输入与您的环境不同的单位的值。举例如下:...原创 2021-08-13 12:45:00 · 357 阅读 · 0 评论 -
选择单零件的构件
原创 2021-08-13 11:21:35 · 736 阅读 · 0 评论 -
Select parts or assemblies without drawing
Select parts without drawingSelect assemblies without assembly drawingSelect assemblies without assembly drawing原创 2021-08-09 22:16:14 · 407 阅读 · 0 评论 -
(Tekla Structures二次开发)返回指定螺栓标准下,对应的直径种类数目。
int i = 0; CatalogHandler myCatalogHandler = new CatalogHandler(); if (myCatalogHandler.GetConnectionStatus()) { BoltItemEnumerator myBoltItemEunm = myCatalogHandler.GetBoltItems(); ...原创 2021-07-30 12:25:49 · 545 阅读 · 0 评论 -
分享方法代码:根据构件选取零件
/// <summary>Get parts from this assembly. If assembly has no main part then return empty list</summary> public static List<Part> GetParts(this Assembly assembly, bool includeMainPart = true) { var mainPart = .转载 2021-07-24 12:03:52 · 550 阅读 · 0 评论 -
(Tekla Structures二次开发)修改状态
//测试状态:对于主零件,修改的是构件(零件)状态。对于次零件,修改的是零件状态。TSM.Model model = new Model(); if (model.GetConnectionStatus()) { TSM.UI.Picker picker = new Picker(); TSM.ModelObject mo = picker.PickObject(Picker.PickObjec原创 2021-05-08 19:32:54 · 2317 阅读 · 3 评论 -
(Tekla Structures二次开发)角钢局部坐标系设定
角钢局部坐标系设定如下:起点到终点方向是X轴,Z轴方向由X,Y轴根据右手法则定义。Y轴的设定根据角钢的旋转方向而定,如下图所示:原创 2021-02-13 17:27:43 · 1305 阅读 · 0 评论 -
(Tekla Structures二次开发)改变螺栓方向的算法思路
改变螺栓头的方向,第一步:需要对应改变螺栓位置中的旋转,前面(后面)互换,顶面(下部)互换。第二步:需要对应改变螺栓孔开槽的方向,奇数(偶数)互换。原创 2021-02-04 22:24:38 · 1148 阅读 · 0 评论 -
(Tekla Structures二次开发)获取当前模型路径
TSM.Model model = new TSM.Model();MessageBox.Show(model.GetInfo().ModelPath);获取当前模型得路径,用于读取,写入文件。原创 2021-01-31 20:54:55 · 745 阅读 · 0 评论 -
(Tekla Structures二次开发)beam属性赋值
回复某同学私信,关于beam属性赋值,代码如下: TSM.Beam beam = new Beam(); beam.Name = "Beam";//名称 beam.Profile.ProfileString = "HN400*200*8*13";//截面型材 beam.Material.MaterialString = "Q235B";//材质 beam.Finish = "Galv.";原创 2021-01-24 17:50:20 · 1131 阅读 · 2 评论 -
(Tekla Structures二次开发)通过读取Excel中的报表属性修改模型
通过读取Excel中的报表属性修改模型private void button7_Click(object sender, EventArgs e) { TSM.Model model = new TSM.Model(); ModelObjectEnumerator selectedObjects = new TSM.UI.ModelObjectSelector().GetSelectedObjects(); if (s原创 2020-10-18 11:30:42 · 1786 阅读 · 0 评论 -
(Tekla Structures二次开发)将所选零件的报表属性写入Excel
using Microsoft.Office.Interop.Excel;首先需要在模型中选择物体,然后获取指定报表属性的集合,方便写入Excel。private void button6_Click(object sender, EventArgs e) { //获取所选零件的指定报表属性的集合 ArrayList原创 2020-10-18 11:10:24 · 2117 阅读 · 0 评论 -
(Tekla Structures二次开发)通过文件修改模型
通过读取实例“将报表模板数据写入文本文件”中创建的文本,修改模型。private void button5_Click(object sender, EventArgs e) { TSM.Model model = new TSM.Model(); if(model.GetConnectionStatus()) { if(System.IO.File.Exists(model.GetInfo().ModelPa原创 2020-10-16 21:15:12 · 1355 阅读 · 0 评论 -
(Tekla Structures二次开发)将报表模板数据写入文本文件
程序读取报表模板数据,写入指定文本。后期可以用excel打开文本,分列数据,方便使用。private void button4_Click(object sender, EventArgs e) { TSM.Model model = new TSM.Model(); if (model.GetConnectionStatus()) { string DOC1 = "ID,PROFIL原创 2020-10-15 21:42:25 · 1688 阅读 · 0 评论 -
(Tekla Structures二次开发)先选择再执行,或先执行再选择,同时适用
try {//获取选中的物体 ModelObjectEnumerator selectedObjects = new TSM.UI.ModelObjectSelector().GetSelectedObjects(); if (selectedObjects.GetSize() > 0) { /*所需执行操作代码*/原创 2020-10-04 00:16:10 · 859 阅读 · 0 评论 -
(Tekla Structures二次开发)模型中创建螺栓组
在模型中创建螺栓组的方法private void BoltArray() { TSMU.Picker _picker = new TSMU.Picker(); ModelObject mo = _picker.PickObject(TSMU.Picker.PickObjectEnum.PICK_ONE_PART); TSG.Point p1 = _picker.PickPoint(); TSG.原创 2020-07-30 22:20:20 · 2086 阅读 · 0 评论 -
(Tekla Structures二次开发)模型中创建切割平面
模型中创建切割平面ModelViewEnumerator viewEnum = ViewHandler.GetVisibleViews(); viewEnum.MoveNext(); TSMU.View activeView = viewEnum.Current; ClipPlane cPlane = new ClipPlane(); cPlane.View = activeView;原创 2020-07-30 20:48:53 · 1689 阅读 · 0 评论 -
(Tekla Structures二次开发)提示选择零件,并创建它的NC文件。
TSMU.Picker picker = new TSMU.Picker(); try { Beam beam = picker.PickObject(TSMU.Picker.PickObjectEnum.PICK_ONE_PART, "Pick object to Create NC for") as Beam; ArrayList parts = new ArrayList(); .原创 2020-07-21 10:26:31 · 1557 阅读 · 0 评论 -
(Tekla Structures二次开发)模型插件实例:两点创建梁
创建项目:TestPlugin1.添加引用using System;using System.Collections.Generic;using System.Windows.Forms;using Tekla.Structures.Plugins;using Tekla.Structures.Model.UI;using Tekla.Structures.Geometry3d;using Tekla.Structures.Model;2.声明插件所需使用的变量,固定格式这是使用变量原创 2020-07-20 11:45:38 · 1564 阅读 · 1 评论 -
(Tekla Structures二次开发)使用选中的零件创建指定报表,并显示创建的报表
Model myModel = new Model(); //获取选中的物体 TSM.UI.ModelObjectSelector modelObjectSelector = new TSM.UI.ModelObjectSelector(); TSM.ModelObjectEnumerator mo = modelObjectSelector.GetSelectedObjects(); //创建指定名称的报表,并原创 2020-07-16 18:31:16 · 1396 阅读 · 0 评论 -
(Tekla Structures二次开发)模型中的移动物体功能
using TSG = Tekla.Structures.Geometry3d;using TSMU = Tekla.Structures.Model.UI;Model myModel = new Model();TSMU.ModelObjectSelector modelObjectSelector = new TSMU.ModelObjectSelector(); TSMU.Picker picker = new TSMU.Picker(); ...原创 2020-07-16 17:29:39 · 780 阅读 · 0 评论 -
(Tekla Structures二次开发)选择零件,反馈其是否编号。
TSMU.Picker P = new TSMU.Picker(); try { TSM.ModelObject MO = P.PickObject(TSMU.Picker.PickObjectEnum.PICK_ONE_OBJECT) as TSM.ModelObject; if (TSM.Operations.Operation.IsNumberingUpToD...原创 2020-07-16 16:24:55 · 1279 阅读 · 0 评论 -
(Tekla Structures二次开发)在模型中选中指定类别物体
Model myModel = new Model(); ArrayList objectToSelect = new ArrayList();//使用ModelObjectEnumerator选中模型中指定类别物体,这里是梁BEAM。可以修改括号中的枚举来修改类别。 ModelObjectEnumerator myEnum = MyModel.GetModelObjectSelector().GetAllObjectsWithType(...原创 2020-07-16 15:33:14 · 1579 阅读 · 0 评论 -
(Tekla Structures二次开发)模型视图集合ModelViewEnumerator
ViewHandler.SetRepresentation("test");//设置视图属性中的表示样式 //ModelViewEnumerator viewEnum = ViewHandler.GetAllViews();//获取所有视图 ModelViewEnumerator viewEnum = ViewHandler.GetSelectedViews();//获取选中的视图 ...原创 2020-07-16 11:44:10 · 817 阅读 · 0 评论 -
(Tekla Structures二次开发)在模型中创建梁,并选中
Model myModel = new Model();//创建梁需要给定起点,终点的坐标。这里是指定的特定坐标点,也可以提示用户输入点。//关于如何提示用户输入点,请参考另外的博文。 Beam B1 = new Beam(new Point(0, 0, 0), new Point(0, 0, 6000)); Beam B2 = new Beam(new Point(0, 1000, 0), new Point(0, 1000, 6000)); ...原创 2020-07-15 22:38:14 · 1180 阅读 · 2 评论 -
(Tekla Structures二次开发)使用Picker类提示用户选择模型或图纸物体和点
当用户中断拾取命令,会抛异常。在模型中:Picker picker=new Picker();TSG.Point p=null;try { p = picker.PickPoint(); }catch { }在图纸中:DrawingHandler myDrawingHandler=new DrawingHandler();TSD.UI.Picker picker=myDrawingHandler.GetPicker();TSG.Point point=null;Vie原创 2020-07-11 10:51:12 · 895 阅读 · 0 评论 -
(Tekla Structures二次开发)操作梁的属性对话框的宏语句
打开对话框//打开梁的属性对话框,属性面板akit.Callback("acmd_display_part_attr_dialog", "", "main_frame");对属性面板进行操作 //修改零件前缀akit.ValueChange("part_attrib", "part_number_prefix", "");//修改零件开始编号akit.ValueChange("part_attrib", "part_number_start_no", "0");//修改构件开始编号aki原创 2020-07-21 21:21:30 · 2372 阅读 · 0 评论 -
(Tekla Structures二次开发)创建多边形板
提示用户输入点,并以此创建多边形板。下面是创建多边形板的方法代码private void contourPlate() { TSM.Model model = new TSM.Model(); TSMU.Picker _picker = new TSMU.Picker(); ArrayList pickedPoints = _picker.PickPoints(Picker.PickPointEnum.PICK_PO原创 2020-07-30 17:19:10 · 2591 阅读 · 0 评论 -
(Tekla Structures二次开发)创建折梁
提示用户输入点,依此创建折梁创建折梁方法代码如下private void polyBeam() { TSM.Model model = new TSM.Model(); TSMU.Picker myPicker = new TSMU.Picker(); ArrayList pickedPoints = myPicker.PickPoints(TSMU.Picker.PickPointEnum.PICK_POLYGON原创 2020-07-30 17:23:23 · 1116 阅读 · 0 评论