01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 3968|回复: 1

几何模板函数

[复制链接]

155

主题

643

帖子

2531

积分

金牌会员

Rank: 6Rank: 6

积分
2531
发表于 2015-6-9 20:31:38 | 显示全部楼层 |阅读模式
本帖最后由 tzbm123456 于 2015-6-10 00:10 编辑

一、几何实体类型
        1、点;2、线;3面;4、体
二、几何实体表达方式
        1、点:
           point=Geom:oint3d.new(x,y,z);
        2、线:
           line=[point1,point2];   实际
           line=[point,vector];    抽象
        3、面:
           plane=[point,vector];   抽象
            plane=[point1,point2,point3,...];  实际
           plane=[line1,line2];
        4、体
            圆柱体:volume=[line,diam]; line=[point1,point2]   diam=直径
            方柱体:volume=[line,plane]; line=[point1,point2] plane=[point1,point2,point3,...]
            任意形体:volume=[plane1,plane2,plane3,...];   plane=[point1,point2,point3,...]
三、几何实体关系(既有考虑实际几何实体,又要考虑抽象几何实体)
    1、点与点   
    2、点与线(点与实际线7种关系,与抽象线有2种关系)
    3、点与面(点与实际面6种关系,与抽象面有2种关系)
    4、点与体(点与实际圆柱体8种关系,               
                点与实际方柱体12种关系,              
                点与实际任意形体5种关系)
   
    5、线与线
    6、线与面
    7、线与体   
    8、面与面
    9、面与体   
10、体与体
四、点与点的关系
1、点实体表达式:tzbm_Point=[Geom:oint3d,Radius]
2、函数名称:Module_Point::point_And_Point(tzbm_Point1, tzbm_Point2)
3、返回值
1)tzbm_Point1与tzbm_Point2相交,返回值为0;
2)tzbm_Point1包含tzbm_Point2,返回值为1;
3)tzbm_Point1包含于tzbm_Point2,返回值为2;
4)tzbm_Point1与tzbm_Point2分离,返回值为3;
五、点与线的关系
1、点实体表达式:point=Geom:oint3d
线实体表达式:tzbm_Line=[Geom:oint3d,GeomPoint3d]
2、函数名称:Module_Point::point_And_Line(point, tzbm_Line)
3、返回值
1)point在tzbm_Line实体上,返回值为0;
2)point为tzbm_Line左端点,返回值为1;
3)point为tzbm_Line右端点,返回值为2;
4)point与tzbm_Line分离,且在线段的延伸线上,返回值为3;
5)point与tzbm_Line分离,且不在线段的延伸线上,返回值为4;
六、点与面的关系
1、点实体表达式:point=Geom:oint3d
面实体表达式:tzbm_Face=[Geom:oint3d,GeomPoint3d,…]
2、函数名称:Module_Point::point_And_Face(point,tzbm_Face)
3、返回值
1)point在tzbm_Face实体内,返回值为1;
2)point为tzbm_Face实体角点上,返回值为2;
3)point为tzbm_Face实体边上,返回值为4;
4)point为tzbm_Face实体外且在平面上,返回值为8;
5)point为tzbm_Face实体外且在不在平面上,返回值为16;
七、点与圆柱体的关系
1、点实体表达式:point=Geom:oint3d
圆柱体表达式:tzbm_CircleColumn=[Geom:oint3d,Radius,[point1,point2]]
2、函数名称:Module_Point::point_And_CircleColumn(point,tzbm_Face)
3、返回值
1)point在tzbm_CircleColumn实体内,返回值为0;
2)point在tzbm_CircleColumn实体表面上,返回值为1;
3)point在tzbm_CircleColumn实体外,返回值为16;



回复

使用道具 举报

155

主题

643

帖子

2531

积分

金牌会员

Rank: 6Rank: 6

积分
2531
 楼主| 发表于 2015-6-9 20:31:58 | 显示全部楼层
本帖最后由 tzbm123456 于 2015-6-9 20:33 编辑

1Module_Point::points4_interSect?(pt1,pt2,point1,point2)
    已知两直线段的4点,判断两直线段是否相交(已调试)
2Module_Point::points4_onPlane?(point1,point2,point3,point4)
    已知4点,判断4点是否共面true/false(已调试)
3Module_Point::points4_radius2_interSect?(pt1Start,pt1End,pt2Start,pt2End,radius_line1,radius_line2)
    已知两直线段的端点,以及对应的半径,判断两段管状实体是否相交(未调试)
4Module_PointLine::line_point_online?( entline,point,dist_point_line)
    已知直线段、点何直线对应的半径,判断点是否在直线对应的管状实体内true/false(已调试)
5Module_Line::line_line_interSect?(entline1,entline2)
    已知两直线段,判断两段直线是否相交(已调试)
6Module_Line::line_line_onPlane? (entline1,entline2)
    已知两直线段,判断是否共面 (已调试)
7Module_Line::line2_radius2_interSect?(entline1,entline2,radius1,radius2)
    已知两直线段和对应的半径,判断两段管状实体是否相交(已调试)
8Module_LineFace::face_line_interSect?(entface,entline,dist_line_face)
9Module_Geom::point3_Area(point1,point2,point3)
    已知三点求面积>
10Module_Geom::point3_Volume(point1,point2,point3)
    求三点中计算至最低水平面的体积,返回[体积,底面积,底平面]>
11、Module_Geom::point_onEdge?(point,point1,point2)
    判断point是否在point1到point2的edge内
12Module_Geom::point_onFace?(point,entface)
    判断point是否在face内>
13Module_Geom::point_InPipe?(point,pipeStartPoint,pipeEndPoint,pipeRadius)
    判断point是否在管状edge内
14Module_Geom::point_InFace?(point,entface,faceDepth)
    判断point是否在柱状face内
15Module_Geom::edge2_Intersect?(edge1,edge2)
    判断edge与edge是否相交
16Module_Geom::createSphere(center,radius)
  已知球心坐标,和半径,绘制球体
#<8功能:判断edgeface是否相交>
#<9功能:判断edge与管状edge是否相交>
#<10功能:判断edge与柱状face是否相交>
#<11功能:判断faceface是否相交>
#<12功能:判断face与管状edge是否相交>
#<13功能:判断face与柱状face是否相交>
#<14功能:判断管状edge与管状edge是否相交>
#<14功能:判断管状edge与柱状face是否相交>
#<15功能:判断柱状face与柱状face是否相交>

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2024-4-20 02:35 , Processed in 0.055131 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表