tzbm123456 发表于 2015-12-29 14:38:44

基础功能函数

本帖最后由 tzbm123456 于 2016-1-3 08:42 编辑


module BaseModuleVer2
module Module_Text
#1已知插入点、面法线向量、字方向向量、字内容、字体、高度、厚度、颜色、宽高比
def self.create3dText(entities,point,normal,vtStr,str,font,height,thickness,color,ratio)

module Module_A
#################################################################################################
###园弧精度控制变量
$delter_Arc=2.mm;
################################################################################################
###精度控制要求下园绘制段数计算函数
def self.num_circle(radius_Arc)

################################################################################################
###数组中最小值查找函数
def self.min(numArr)

################################################################################################
###数组中最大值查找函数
def self.max(numArr)

################################################################################################
###0已知向量vt1,求其转到向量vt2的旋转矩阵   
def self.transform(vt1,vt2,point)

################################################################################################
###1已知p1至p2的向量,求其与X轴的夹角单位:弧度
def self.vectorXY_angleX(p1p2)   #已调试通过

################################################################################################
###2已知两个向量的角度angle1至angle2,求向量1到向量2的逆时针夹角dalter_XY_Counterclockwise

################################################################################################
###3已知两个向量的角度angle1至angle2,求向量1到向量2的顺时针夹角dalter_XY_Clockwise
def self.dalter_XY_Clockwise(angle1,angle2)   #已调试通过

################################################################################################
###3-1已知两直线上的四点p1、p2,pt1、pt2,求 直线1与 直线2的交点数组 [](无交点)、,
#num=0时:交点pp在p1p2和pt1pt2直线段上;
#num=1时:交点pp仅在第一条直线段上,第二条的延伸线上;
#num=2时:交点pp仅在直线段第二条,第一条的延伸线上;上;
#num=3时:交点pp在第一条和第二条的延伸线上;
def self.intersect_Line_Line(p1,p2,pt1,pt2) #已调试通过

################################################################################################
###4已知直线上的两点p1、p2,圆弧三点arcP1、arcP2、arcP3,求 直线与园的交点数组 [](无交点)、(切点)、
###(两交点);
def self.intersect_Line_Arc(p1,p2,arcP1,arcP2,arcP3)   #已调试通过

################################################################################################
###4-1已知直线上的两点p1、p2,圆弧三点arcP1、arcP2、arcP3,求 直线与园的交点数组 [](无交点)、(切点)、
###(两交点);
def self.intersect_LineArr_Arc(line,centerPt,radius)   #已调试通过

####################################################################################################
###5已知圆弧三点arcP1、arcP2、arcP3,直线上的两点p1、p2,求 直线与园的交点数组 [](无交点)、(切点)、
###(两交点);
def self.intersect_Arc_Line(arcP1,arcP2,arcP3,p1,p2)#已调试通过

####################################################################################################
###6已知两个圆弧的三点pArc1、pArc2、pArc3;ptArc1、ptArc2、ptArc3;
def self.intersect_Arc_Arc(pArc1,pArc2,pArc3,ptArc1,ptArc2,ptArc3)   #已调试通过

####################################################################################################
###7-1已知圆弧经过的三点pt1、pt2、pt3,返回圆弧的圆心
def self.arc_point3_Center(pt1_Center,pt2_Center,pt3_Center)   #已调试通过

####################################################################################################
###7-2已知圆弧经过的三点pt1、pt2、pt3,返回圆弧的半径
def self.arc_point3_Radius(pt1_Radius,pt2_Radius,pt3_Radius)   #已调试通过

####################################################################################################
###7-3空间三点求圆弧角度,pt1、pt2、pt3为圆弧经过的三点
def self.arc_point3_Angle(pt1_Angle,pt2_Angle,pt3_Angle)   #已调试通过

####################################################################################################
###7-4空间三点求圆弧长度,pt1、pt2、pt3为圆弧经过的三点
def self.arc_point3_Length(pt1_Length,pt2_Length,pt3_Length) #已调试通过

####################################################################################################
###7-5空间三点求圆弧长度,pt1、pt2、pt3为圆弧经过的三点
def self.arc_point3_Normal(pt1_Normal,pt2_Normal,pt3_Normal)   #已调试通过

####################################################################################################
###7_7空间三点绘园弧,ents为Sketchup::Entities实体,pt1、pt2、pt3为圆弧经过的三点
def self.arc_point3(ents,pt1_Ent,pt2_Ent,pt3_Ent)   #已调试通过

####################################################################################################
####8XY二维平面三点绘园弧,ents为Sketchup::Entities实体,pt1、pt2、pt3为圆弧经过的三点

tzbm123456 发表于 2016-1-2 11:56:15

本帖最后由 tzbm123456 于 2016-1-3 08:31 编辑

####################################################################################################
####8XY二维平面三点绘园弧,ents为Sketchup::Entities实体,pt1、pt2、pt3为圆弧经过的三点
def self.arc_point3_XY(ents,pt1,pt2,pt3)   

####################################################################################################
####9已知pt1、pt2、pt3圆弧经过的三点pt1为第一点,pt2为第二点,pt3为最后一点,
#   返回值为正直,圆弧为逆时针转;返回值为负直,圆弧为顺时针转;
def self.arc_angle_XY(pointFirst,pointSecond,pointThree)   #已调试通过

####################################################################################################
####10已知pt1、pt2、pt3圆弧经过的空间三点pt1为第一点,pt2为第二点,pt3为最后一点,
#    返回值为圆弧的半径值;
def self.arc_Radius_XY(pointFirst,pointSecond,pointThree)#已调试通过

####################################################################################################
####11已知pt1、pt2、pt3圆弧经过的三点pt1为第一点,pt2为第二点,pt3为最后一点,
#    返回值为圆弧的圆心;
def self.arc_Center_XY(pointFirst,pointSecond,pointThree)   #已调试通过

####################################################################################################
####12已知两条直线,求其交点return pt;
def self.insect_line1_line2(edge1,edge2)   #已调试通过

####################################################################################################
####13已知直线墙中线的转点坐标数组,求其两侧转点数组
def self.wall_Zuo_You(wallptArray,you_width,zuo_width) #已调试通过

####################################################################################################
####14已知ptArray数组,求数组成员的交点,并用交点替换最近点
def self.array_insect(pt_array) #已调试

####################################################################################################
####15 判断文件中是否有给定名称的图层,有返回true,无返回false,层名称不符合规则返回nil
def self.layername?(layer_name)

####################################################################################################
####<16已知直线段ent1、选择点pt1,直线段ent2、选择点pt2,圆角半径radius,以及实体入entities>
#<绘制新直线段1,圆弧,直线段2>
def self.fillet3D(ent1,ent2,pt1,pt2,radius,entities)
####################################################################################################
####<17>
#判断给定点是否在三点确定的圆弧段内返回0——园弧段外且园弧上;1——园弧段上;2——园弧开始点;3——园弧结束

点;4——园弧段外且不在园弧上;   已调试!
    def self.point_OnArc?(point,arcPts)
            
####################################################################################################
####<18>
#判断给定点是否在两点确定的直线段内返回0——直线段外且直线上;1——直线段上;2——直线开始点;3——直线结束

点;4——直线段外且不在直线上
      def self.point_OnLine?(point,linePts)
               
#三、
module Module_Project
####################################################################################################
####返回单体建筑的墙体厚
def self.wallThickness()

####################################################################################################
####返回单体建筑的总高度
def self.upznElv()

####################################################################################################
####0 返回单体建筑的正负零标高
def self.pnElv()

####################################################################################################
####1 返回单体建筑的层数数组   num[地上层数,地下层数]
def self.lay_num()

####################################################################################################
####2判断所给定数id_layer是否超过建筑的设计层数,超过返回false,未超过返回true;
def self.lay_include?(id_layer)

####################################################################################################
####3返回给定层数id_layer的层高,超过涉及层数将返回nil
def self.lay_CG(id_layer)

####################################################################################################
####4返回给定层数id_layer的层标高,超过将返回nil;
def self.lay_BG(id_layer)

####################################################################################################
####5   给定层数numbers,生成对应的层
def self.add_Layers(numbers,onkey)

####################################################################################################
####6   选择给定层名的Sketchup::Group实体
def self.select(layer_name)   

####################################################################################################
####7   拷贝layername1实体到layername2,同时移动、选择 trans
def self.copy(layname1,layname2,tr)


tzbm123456 发表于 2016-1-2 11:56:51

本帖最后由 tzbm123456 于 2016-1-3 09:52 编辑

#四、
module Module_Wall
####################################################################################################
####1已知墙的group实体、切面的高度,求切面以下的体积
#要求:切面的高度〉实体楼层标高
def self.wallVolume(ent,planeHeight)

####################################################################################################
####2已知层数laynum和类别type,求出实体体积
def self.entSelection(height,layStr)

end
####################################################################################################
####3已知墙体面,求其面向正面的左下角点坐标返回[左前下角,右前下角]
def self.wallLRBpoint(entFace)


#六、
#<尺寸标注基本参数读取、修改模板>
module Module_DimAttribute
####################################################################################################
####<读取尺寸标注的所有属性>
def self.readAllDimAttribute()

####################################################################################################
####<修改尺寸标注的单项属性>
def self.modifyDimAttribute(keyStr,value)
    model=Sketchup.active_model;
    model.set_attribute("DimDictionary",keyStr,value);
end
#</修改尺寸标注的单项属性>
####################################################################################################
####<读取尺寸标注的单项属性>
def self.readDimAttribute(keyStr,defaultvalue)

#七、圆角模板 Module_fillet
module Module_fillet
####################################################################################################
####0<已知两实体入口指针和3点,绘制圆弧>   
def self.arc_point3(ents,pt1,pt2,pt3)

####################################################################################################
####00<已知两实体,求交点>   
def self.insect_first_second(en1,en2)

####################################################################################################
####1<已知两直线实体和圆角半径,求>   
def self.fillet_first_second_ents(ent1,ent2,r)

####################################################################################################
####2<已知两直线的端点和圆角半径,求>
def self.fillet_first_second_pts(pp1,pp2,pt1,pt2,r)



####################################################################################################
####<3已知直线段ent1、选择点pt1,直线段ent2、选择点pt2,圆角半径radius,以及实体入entities>
#<绘制新直线段1,圆弧,直线段2>
def self.fillet3D(ent1,ent2,pt1,pt2,radius,entities)

module ModuleRegen
####################################################################################################
####
=begin
**Number 1
函数名称:
          modifyNumberAndBianHao(archStr)
参数:
       archStr:建筑构件的类型,变量为字符型,例如:"墙"、"柱"等;
功能:
       根据参数archStr,更新建筑构件类型对应的model实体project字典中的总序数("XXNumber")
       和实体"XXAttribute"字典中对应的编号("编号");
调用函数:
      ModuleSelect::entsDiscription(archStr);
调用函数位置:
   本文件-ModuleSelect模板-ModuleSelect.rb;
=end
def self.modifyNumberAndBianHao(archStr)

module ModuleSelect
####################################################################################################
####
def self.selctDiscription(str)

####################################################################################################
####
=begin
***Number 2
函数名称:
   entDiscriptionBianHao(strAttr,numInt)
参数:
   strAttr:实体类型名称,变量类型为字符型,如"墙"、"柱"等;
   numInt:编号序数,变量类型为整数型;
功能:
   根据给定的实体类型名称strAttr和编号序数numInt,获得对应的实体。
=end
def self.entDiscriptionBianHao(strAttr,numInt)

####################################################################################################
####
=begin
***Number 3
函数名称:
   entsDiscriptionBianHao(strAttr,numInt1,numInt2)
参数:
   strAttr:实体类型名称,变量类型为字符型,如"墙"、"柱"等;
   numInt1:编号序数,变量类型为整数型;
   numInt2:编号序数,变量类型为整数型;
功能:
   根据给定的实体类型名称strAttr和编号序数numInt1,编号序数numInt2,
   获得numInt1-numInt2之间对应的实体数组。
调用函数:
   entDiscriptionBianHao(strAttr,numInt1);
调用函数位置:
   本文件-本模板ModuleSelect-ModuleSelect.rb
=end
def self.entsDiscriptionBianHao(strAttr,numInt1,numInt2)

####################################################################################################
####
=begin
***Number 4
函数名称:
   entsDiscription(strAttr)
参数:
   strAttr:实体类型名称,变量类型为字符型,如"墙"、"柱"等;
功能:
   根据给定的实体类型名称strAttr,获得n所有的strAttr实体数组。
=end
def self.entsDiscription(strAttr)

####################################################################################################
####
module EntityGraghMath
def self.facePerimeter(entity)

暗度陈仓 发表于 2016-2-29 11:58:27

支持你加分











static/image/common/sigline.gif
让己也篱自开遍东了菊让烈
都呜停它的止意会得
说会叶道说俩你内是谦萨业瓦
钱南为值荻已了小叶式
着丝栀么这然在谦急菲
而情阴节的费光
亲是也母
简天队甫跟擎孙小佣么皇后
筒起拿话
确感的你惊会震到否是
那我牵抹让肠
破赶好然让槌德后幸空我冰
豫头握犹紧不拳定像
过手不道杀少我绚贴不东的之都知
教来等着室待给出
是搏时之物飞天睥蓝万对睨翔
需要我海片越但飞
重国的逢深最世恋眷中去天
跟轻时说东声泽此
苏杯闪台闪颁朗格奖珊上朗
页: [1]
查看完整版本: 基础功能函数