特色技术

专业从事预应力结构体系的设计、施工一体化解决方案

资讯分类

Safe前处理程序新的小版本0.8

  • 分类:程序技术
  • 作者:
  • 来源:
  • 发布时间:2017-12-06 15:47
  • 访问量:

【概要描述】  一、算法:   1、根据预应力筋布置图,应用ObjectArx2002结合VC++6.0程序,读取图层上所有AcDbLine的功能,然后设定支座线Split图层,求取两个直线数组的交点集合,以确定预应力筋的支座。   2、编程过程中,因为读取的线段是随机的,所以某个split点不是按顺序进行排列,C++标准程序库STL中虽然有泛型Sort算法,但是不能对Point进行排列

Safe前处理程序新的小版本0.8

【概要描述】  一、算法:

  1、根据预应力筋布置图,应用ObjectArx2002结合VC++6.0程序,读取图层上所有AcDbLine的功能,然后设定支座线Split图层,求取两个直线数组的交点集合,以确定预应力筋的支座。

  2、编程过程中,因为读取的线段是随机的,所以某个split点不是按顺序进行排列,C++标准程序库STL中虽然有泛型Sort算法,但是不能对Point进行排列

  • 分类:程序技术
  • 作者:
  • 来源:
  • 发布时间:2017-12-06 15:47
  • 访问量:
详情

  一、算法:

  1、根据预应力筋布置图,应用ObjectArx2002结合VC++6.0程序,读取图层上所有AcDbLine的功能,然后设定支座线Split图层,求取两个直线数组的交点集合,以确定预应力筋的支座。

  2、编程过程中,因为读取的线段是随机的,所以某个split点不是按顺序进行排列,C++标准程序库STL中虽然有泛型Sort算法,但是不能对Point进行排列。仔细研究STL的Sort函数后,确定是ObjectArx的AcGePoint3d类没有"<"运算符,所以导致无法正确地调用Sort函数。因此,本程序进行了改进,重新设计了一个继承自AcGePoint3d的CKLAcGePoint3d类,并且重载了几个运算符,使得本程序可以对点坐标进行正确地排列。

  3、类的定义如下:

  class CKLAcGePoint3d :public AcGePoint3d

  {

  public:

  CKLAcGePoint3d& operator=(const CKLAcGePoint3d&pt);

  bool operator<(const CKLAcGePoint3d&pt);

  bool operator==(const CKLAcGePoint3d&pt);

  CKLAcGePoint3d();

  CKLAcGePoint3d(const AcGePoint3d&pt);

  virtual ~CKLAcGePoint3d();

  };

  4、运算符"<"重载如下:

  bool CKLAcGePoint3d::operator<(const CKLAcGePoint3d&pt)

  {

  if (*this==pt)

  {

  return false;

  }

  if (fabs(this->x)<0.001f&&fabs(pt.x)<0.001f)

  {

  if (this->y<pt.y)

  {

  return true;

  }

  else

  {

  return false;

  }

  }

  else

  {

  if ((this->x-pt.x)<0.001f)

  {

  return true;

  }

  else

  {

  return false;

  }

  }

  }

  二、程序界面:

  1、在ObjectArx中调用mfc的对话框如图所示:

  2、预应力筋平面布置图:

  其中,红线表示预应力筋,蓝线表示支座。

  3、Cad命令流:

  其中yyltxt为ObjectArx生成的命令。

  4、生成的数据文件:

  5、生成的Safe预应力计算模型及曲线:

  三、Safe前处理程序具备的基本功能:

  1、程序根据图形,自动划分板带,生成板带数据文件,然后在safe里布置板带。

  2、自动读取预应力平面布置图,根据预应力平面布置图,确定预应力筋的基本数据信息,然后写入预应力筋数据文件。

  3、自动合并预应力筋、板带数据生成的重复点,自动计算点编号,并生成最终的计算文件,供Safe软件导入。

扫二维码用手机看