特色技术
专业从事预应力结构体系的设计、施工一体化解决方案
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软件导入。
扫二维码用手机看