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