Math_01KJ辅助类主要内容
本帖最后由 tzbm123456 于 2017-2-26 12:59 编辑二、类名称:Math_01KJ
三、类变量:
1、VersonString"1.0"
2、DevelopCompanyString"重庆天筑比盟科技公司"
3、DeveloperString"李总"
4、DevelopTimeString"2017.02.01-2017.02.05"
5、DevelopAddressStringDevelopAddress="聚信广场15-1"
四、类函数:
1、getVerson()String返回Verson
2、getDevelopCompany()String返回DevelopCompany
3、getDeveloperString返回Developer
4、getDevelopTime()String返回DevelopTime
5、getDevelopAddress()String返回DevelopAddress
五、实例变量:
1、@m_DelterArc=10.mm;Length弧线精度
2、@mModel=Sketchup.active_model;模型空间
3、@m_Entities=@mModel.entities;实体集
4、@mSelection=@mModel.selection;选择集
5、@mMaterials=@mModel.materials;材质集
6、@mAttrDicts=@mModel.attribute_dictionaries;属性字典集
7、@mVtX=Geom::Vector3d.new(1,0,0);X轴
8、@mVtY=Geom::Vector3d.new(0,1,0);Y轴
9、@mVtZ=Geom::Vector3d.new(0,0,1);Z轴
六、成员函数和方法:
(一)初始化
0、initialize
(二)修改输入实例变量
1、m_DelterArc=(m_DelterArc)
和setDelterArc(m_DelterArc)true/false
2、m_Entities=(m_Entities)
和setEntities(m_Entities)true/false
(三)计算函数
3、numCircle(radius)返回满足@m_DelterArc精度要求的圆弧段数,且大于等于16。
4、minArr(numArr)返回参数numArr数组中的最小值,numArr不为数组返回nil,numArr元素不全为Float或Fixnum返回nil。
5、maxArr(numArr)返回参数numArr数组中的最大值,numArr不为数组返回nil,numArr元素不全为Float或Fixnum返回nil。
6、transform(vt1,vt2,point)返回向量1到向量2,以参考点point为中心的旋转矩阵。若向量 1或向量2不是向量,则返回nil。
7、pt2ConvertLineF(point1,point2)返回两点的直线方程,或nil。
8、lineFConvertPt2(line)返回直线方程的两点组,或nil。
9、pt3ConvertPlaneF(point1,point2,point3)返回三点的平面方程,或nil。
10、planeFConvertPt3(plane)返回平面方程的三点,或nil。
11、pointOnLineF?(point,lineF)判断给定点是否在直线方程确定的直线上,返回nil、false、true。
12、pointOnLineP(point,linePts)判断给定点是否在两点数组确定的直线段内,返回0—直线段外且直线上;1—直线段上;2—直线开始点;3—直线结束点;4—直线段外且不在直线上。
13、pointOnPlaneF?(point,planeF)判断给定点point是否在planeF三点数组确定的平面上,返回nil、false、true
14、pointOnPlaneP?(point,ptArr)判断给定点是否在三点数组确定的平面上,返回nil、false、true
15、pointOnArc?(point,arcPts)判断给定点是否在三点数组确定的圆弧段内,返回0—园弧段外且园弧上;1—园弧段上;2—园弧开始点;3—园弧结束点;4—园弧段外且不在园弧上。
16、intLineLine(p1,p2,pt1,pt2)返回直线1两点与直线2两点的交点数组,返回为[]、。
num=0时:交点pp在p1p2和pt1pt2直线段上;
num=1时:交点pp仅在第一条直线段上,第二条的延伸线上;
num=2时:交点pp仅在直线段第二条,第一条的延伸线上;上;
num=3时:交点pp在第一条和第二条的延伸线上;
17、intLineArc(p1,p2,arcP1,arcP2,arcP3)返回直线1两点与圆2三点的交点数组,返回为[]、、。
18、intLineFArc(line,arcP2,arcP3)返回直线方程式与圆2三点的交点数组,返回为[]、、。pt1为与line较近点。
19、intLineFArcCR(line,centerPt,radius) 返回直线1line与园center和radius的交点数组,返回为[]、、。pt1为与line较近点。
20、intersectArcArc(pArc1,pArc2,pArc3,ptArc1,ptArc2,ptArc3)返回圆1三点与圆2三点的交点数组,返回为[]、、。
21、arcPt3Center(pt1_Center,pt2_Center,pt3_Center) 返回圆三点的圆心点,返回值为nil和Geom::Point3d。
22、arcPt3Radius(pt1_Radius,pt2_Radius,pt3_Radius)返回圆三点的半径,返回值为nil和Length。
23、arcPt3Angle(pt1_Angle,pt2_Angle,pt3_Angle)返回圆三点的弧度,返回值为nil和Float。
24、arcPt3Length(pt1_Length,pt2_Length,pt3_Length)返回圆三点的弧长,返回值为nil和Length。
25、arcPt3Normal(pt1_Normal,pt2_Normal,pt3_Normal)返回圆三点的法线,返回值Geom::Vector3d。
26、xuanPtArrArr(vector3d,pt1,pt2,pt3)已知玄的向量vector3d,组成园的三点pt1、pt2、pt3,返回[,]。
27、fillet(pp1,pp2,pt1,pt2,radius)已知直线1(pp1,pp2)直线2(pt1,pt2)半径radius,返回。
(四)绘制方法
28、DrawArcPt3(point1,point2,point3)三点绘弧,返回绘制的实体。
##############################################################################################
###Fuction 28
###函数名称:arc_Num_Pts(startPoint,middlePoint,endPoint,number)
###已知:圆弧三点,段数
###返回:每段圆弧转点数组
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 29
###函数名称:arc_Num_AveLen(startPoint,middlePoint,endPoint,number)
###已知:圆弧三点,段数
###返回:平均弧长
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 30
###函数名称:spiral_ZSpaNum_Pts(startPoint,middlePoint,endPoint,delterZ,number)
###已知:圆弧三点(startPoint,middlePoint,endPoint),圆弧段数number,Z轴整圈间距delterZ
###返回:螺旋线上每段圆弧转点数组
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 31
###函数名称:spiral_SpaNum_Pts(startPoint,middlePoint,endPoint,number,spacingArc)
###已知:(1)圆弧三点,段数,(2)起点与终点在圆弧法线方向的距离,正直与法线同向,负值与法线反向
###返回:每段圆弧转点数组
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 32
###函数名称:spiral_SloNum_Pts(startPoint,middlePoint,endPoint,k,number)
###已知:圆弧三点,段数,斜率
###返回:每段圆弧转点数组
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 33
###函数名称:arc_Len_Pt(startPoint,middlePoint,endPoint,arcLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),圆弧长度arcLengt
###返回:圆弧点坐标arcPt
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 34
###函数名称:spiral_ZArcLen_Pt(startPoint,middlePoint,endPoint,zDist,arcLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),一整圈弧线在Z轴上的间距zDist,正值向上,负值向下,螺旋线平面投影弧线长度arcLength
###返回:螺旋线上坐标点spiralPt
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 35
###函数名称:spiral_ZSpiLen_Pt(startPoint,middlePoint,endPoint,zDist,spiralLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),一整圈弧线在Z轴上的间距zDist,正值向上,负值向下,螺旋线长度spiralLength
###返回:螺旋线上坐标点spiralPt
###作者:杨东
###时间:2017/11/20
##############################################################################################
###Fuction 36
###函数名称:spiral_SpaArcLen_Pt(startPoint,middlePoint,endPoint,spacDist,arcLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),弧线起终两点在Z轴上的间距spacDist,正值向上,负值向下,螺旋线平面投影弧线长度arcLength
###返回:螺旋线上坐标点spiralPt
###作者:李总
###时间:2017/12/02
##############################################################################################
###Fuction 37
###函数名称:spiral_SpaSpiLen_Pt(startPoint,middlePoint,endPoint,spaDist,spiralLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),弧线起终两点在Z轴上的间距spaDist,正值向上,负值向下,螺旋线长度spiralLength
###返回:螺旋线上坐标点spiralPt
###作者:李总
###时间:2017/12/02
##############################################################################################
###Fuction 38
###函数名称:spiral_SloArcLen_Pt(startPoint,middlePoint,endPoint,slope,arcLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),弧线起终两点在Z轴上的坡度slope,正值向上,负值向下,螺旋线平面投影弧线长度arcLength
###返回:螺旋线上坐标点spiralPt
###作者:李总
###时间:2017/12/02
##############################################################################################
###Fuction 39
###函数名称:spiral_SloSpiLen_Pt(startPoint,middlePoint,endPoint,slope,spiralLength)
###已知:圆弧三点(startPoint,middlePoint,endPoint),弧线起终两点在Z轴上的坡度slope,正值向上,负值向下,螺旋线长度spiralLength
###返回:螺旋线上坐标点spiralPt
###作者:李总
###时间:2017/12/02
本帖最后由 tzbm123456 于 2018-2-18 11:00 编辑
2018年2月18日,归档成果(一)
序号1
函数名称:initialize()
已知:无
返回:无返回值,初始化@mVtX、@mVtY、@mVtZ、@mOriginPt;
作者:李总时间:2018/2/18地点:洪恩寺
序号3
函数名称:numCircle(radius,m_DelterArc)
已知:园半径、精度值;
返回:返回满足精度要求的最小园段数,返回值false或Fixnum(大于等于8);
作者:李总时间:2018/2/18地点:鸿恩寺公园
序号4
函数名称:minArr(numArr)
已知:数组numArr;
返回:返回参数numArr数组中的最小值,返回false或最小数值;
作者:李总时间:2018/2/18地点:鸿恩寺公园
序号5
函数名称:maxArr(numArr)
已知:数组numArr;
返回:返回参数numArr数组中的最大值,返回false或最大数值;
作者:李总时间:2018/2/18地点:鸿恩寺公园
序号6
函数名称:transform(vt1,vt2,point)
已知:向量vt1,向量vt2,参考点point;
返回:返回旋转矩阵,返回值false(参数不合法)或Geom::Transformation;
作者:李总时间:2018/2/18地点:鸿恩寺公园
序号7
函数名称:pt2ConvertLineF(point1,point2)
已知:直线两点pt1,pt2;
返回:返回直线方程式,返回值false(参数不合法)、;
作者:李总时间:2018/2/18地点:鸿恩寺公园
序号8
函数名称:lineFConvertPt2(line)
已知:直线方程line;
返回:返回两点的数组,返回值false(参数不合法)、;
作者:李总时间:2018/2/17地点:鸿恩寺公园
序号10
函数名称:planeFConvertPt3(plane)
已知:平面方程式plane;
返回:平面方程的三点,返回值返回值false(参数不合法)、;
作者:李总时间:2018/2/17地点:鸿恩寺公园
本帖最后由 tzbm123456 于 2018-2-18 11:05 编辑
2018年2月18日,归档成果(二)
序号11
函数名称:pointOnPlaneF?(point,planeF)
已知:点point、直线方程lineF;
返回:点point在直线方程lineF的状态值,返回值返回值false(参数不合法)、nil(不在直线上)、true(在直线上);
作者:李总时间:2018/2/17地点:鸿恩寺公园
序号12
函数名称:pointOnLineP(point,linePts)
已知:点point、两点数组linePts;
返回:点point在两点数组linePts的状态值,返回值false(参数不合法)、0—直线段外且直线上;1—直线段上;2—直线开始点;3—直线结束点;4—直线段外且不在直线上;
作者:李总时间:2018/2/17地点:鸿恩寺公园
序号13
函数名称:pointOnPlaneF?(point,planeF)
已知:点point、平面方程式planeF;
返回:点point在平面方程式planeF的状态值,返回值false(参数不合法)、nil(不在平面上)、true(在平面上);
作者:李总时间:2018/2/17地点:鸿恩寺公园
序号14
函数名称:pointOnPlaneP?(point,ptArr)
已知:点point、三点数组ptArr;
返回:点point在三点数组ptArr平面的状态值,返回值false(参数不合法)、nil(不在平面上)、true(在平面上);
作者:李总时间:2018/2/16地点:鸿恩寺公园
序号15
函数名称:pointOnArc(point,arcPts)
已知:点point、圆弧三点数组
返回:点point在圆弧的状态值,返回false或0—园弧段外且园弧上;1—园弧段上;2—园弧开始点;3—园弧结束点;4—同平面,园弧段外且不在园弧上;5-不同平面。
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号16
函数名称:intLineLine(p1,p2,pt1,pt2)
已知:直线两点p1,p2、圆弧三点arcP1,arcP2,arcP3
返回:直线两点与圆弧三点的圆的交点数组,返回值为false或[]、、
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号17
函数名称:intLineArc(p1,p2,arcP1,arcP2,arcP3)
已知:直线两点p1,p2、圆弧三点arcP1,arcP2,arcP3
返回:直线两点与圆弧三点的圆的交点数组,返回值为false或[]、、
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号18
函数名称:intLineFArc(line,arcPt1,arcPt2,arcPt3)
已知:直线方程line、圆弧三点arcPt1,arcPt2,arcPt3
返回:直线方程line与圆弧的交点数组,返回值为false或[]、、
作者:李总时间:2018/2/15地点:鸿恩寺公园
本帖最后由 tzbm123456 于 2018-2-18 11:10 编辑
2018年2月18日,归档成果(三)
序号19
函数名称:intLineFArcCR(line,centerPt,radius)
已知:直线方程line、圆心点centerPt和半径radius
返回:直线方程line与圆心点centerPt和半径radius的圆的交点数组,返回值为false或[]、、
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号20
函数名称:intersectArcArc(pArc1,pArc2,pArc3,ptArc1,ptArc2,ptArc3)
已知:圆1三点pArc1,pArc2,pArc3;圆2三点ptArc1,ptArc2,ptArc3
返回:圆1三点与圆2三点的交点数组,返回值为false或nil、[]、、
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号21
函数名称:arcPt3Center(pt1_Center,pt2_Center,pt3_Center)
已知:圆弧三点pt1_Center,pt2_Center,pt3_Center
返回:圆弧三点的圆心点,返回值为false或Geom::Point3d
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号22
函数名称:arcPt3Radius(pt1_Radius,pt2_Radius,pt3_Radius)
已知:圆弧三点pt1_Radius,pt2_Radius,pt3_Radius
返回:圆弧三点的半径,返回值为false或Length
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号23
函数名称:arcPt3Angle(pt1_Angle,pt2_Angle,pt3_Angle)
已知:圆弧三点pt1_Angle,pt2_Angle,pt3_Angle
返回:圆弧三点的弧度,返回值为false或Float
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号24
函数名称:arcPt3Length(pt1_Length,pt2_Length,pt3_Length)
已知:圆弧三点pt1_Length,pt2_Length,pt3_Length
返回:圆弧三点的弧长,返回值为false或Length
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号25
函数名称:arcPt3Normal(pt1_Normal,pt2_Normal,pt3_Normal)
已知:圆弧三点pt1_Normal,pt2_Normal,pt3_Normal
返回:已知圆弧三点的法线向量,返回值为false或Geom::Vector3d
作者:李总时间:2018/2/15地点:鸿恩寺公园
序号26
函数名称:xuanPtArrArr(vector3d,pt1,pt2,pt3)
已知:玄的向量和玄长
圆弧三点pt1、pt2、pt3
返回:返回与已知向量方向平行,玄长相等的点组[,]
作者:李总时间:2018/2/14地点:鸿恩寺公园
本帖最后由 tzbm123456 于 2018-2-18 11:14 编辑
2018年2月18日,归档成果(四)
序号27
函数名称:fillet(pp1,pp2,pt1,pt2,radius)
已知:直线1(pp1,pp2)直线2(pt1,pt2)半径radius
返回:
作者:李总时间:2018/2/14地点:鸿恩寺公园
序号28
函数名称:arc_Num_Pts(startPoint,middlePoint,endPoint,number)
已知:圆弧三点(startPoint,middlePoint,endPoint)
圆弧段数number
返回:每段圆弧转点数组
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号29
函数名称:arc_Num_AveLen(startPoint,middlePoint,endPoint,number)
已知:圆弧三点(startPoint,middlePoint,endPoint)
圆弧段数number
返回:圆弧平均弧长
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号30
函数名称:spiral_ZSpaNum_Pts(startPoint,middlePoint,endPoint,delterZ,number)
已知:圆弧三点(startPoint,middlePoint,endPoint)
Z轴间距delterZ
弧线段数number
返回:每段圆弧转点数组
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号31
函数名称:spiral_SpaNum_Pts(startPoint,middlePoint,endPoint,spacingArc,number)
已知:圆弧三点(startPoint,middlePoint,endPoint)
圆弧段数number
返回:起点与终点在圆弧法线方向的距离spacingArc,正直与法线同向,负值与法线反向
每段螺旋曲线转点数组
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号32
函数名称:spiral_SloNum_Pts(startPoint,middlePoint,endPoint,k,number)
已知:圆弧三点(startPoint,middlePoint,endPoint)
圆弧段数number
斜率k
返回:每段圆弧转点数组
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号33
函数名称:arc_Len_Pt(startPoint,middlePoint,endPoint,arcLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
圆弧长度arcLength
返回:圆弧坐标点arcPt
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号34
函数名称:spiral_ZArcLen_Pt(startPoint,middlePoint,endPoint,zDist,arcLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
一整圈Z轴上两点的间距zDist
螺旋线平面投影弧线长度arcLength
返回:螺旋线上坐标点spiralPt
作者:李总时间:20171202地点:洪恩寺公园
本帖最后由 tzbm123456 于 2018-2-18 11:18 编辑
2018年2月18日,归档成果(五)
序号35
函数名称:spiral_ZSpiLen_Pt(startPoint,middlePoint,endPoint,zDist,spiralLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
一整圈Z轴上两点的间距zDist
螺旋线长度spiralLength
返回:螺旋线上坐标点spiralPt
作者:杨东时间:2017/11/20地点:君巢酒店15-1
序号36
函数名称:spiral_SpaArcLen_Pt(startPoint,middlePoint,endPoint,spacDist,arcLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
弧线起终两点在Z轴上的间距spacDist,正值向上,负值向下
螺旋线平面投影弧线长度arcLength
返回:螺旋线上坐标点spiralPt
作者:李总时间:20171202地点:洪恩寺公园
序号37
函数名称:spiral_SpaSpiLen_Pt(startPoint,middlePoint,endPoint,spacDist,spiralLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
弧线起终两点在Z轴上的间距spacDist,正值向上,负值向下
螺旋线弧线长度spiralLength
返回:螺旋线上坐标点spiralPt
作者:李总时间:20171202地点:洪恩寺公园
序号38
函数名称:spiral_SloArcLen_Pt(startPoint,middlePoint,endPoint,slope,arcLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
弧线起终两点在Z轴上的间距spacDist,正值向上,负值向下
螺旋线平面投影弧线长度arcLength
返回:螺旋线上坐标点spiralPt
作者:李总时间:20171202地点:洪恩寺公园
序号39
函数名称:spiral_SloSpiLen_Pt(startPoint,middlePoint,endPoint,slope,spiralLength)
已知:圆弧三点(startPoint,middlePoint,endPoint)
弧线起终两点在Z轴上的间距spacDist,正值向上,负值向下
螺旋线弧线长度spiralLength
返回:螺旋线上坐标点spiralPt
作者:李总时间:20171202地点:洪恩寺公园
序号40
函数名称:
transitionCurve_Len_Pt(canKPoint,canKVector,vtNormal,secondLs,secondRadius,transitionLen)
已知:(1)半径为无穷大处的参考点canKPoint,参考向量canKVector,法线向量vtNormal;
(2)终点长度secondLs,终点半径secondRadius(逆时针为正,顺时针为负);
(3)缓和曲线任意长度(水平投影面上距参考点的距离)transitionLen
返回值:缓和曲线任意长度对应点坐标transitionLenPt(水平投影面上的坐标)
作者:李总时间:20171119地点:洪恩寺公园
序号41
函数名称:transitionCurve_SloLen_Pt(canKPoint,canKVector,vtNormal,secondLs,secondRadius,slope,transitionLen)
已知:(1)半径为无穷大处的参考点canKPoint,参考向量canKVector,法线向量vtNormal;
(2)终点长度secondLs,终点半径secondRadius(逆时针为正,顺时针为负);
(3)缓和曲线坡度slope,正值向上,负值向下;
(4)缓和曲线任意长度(水平投影面上距参考点的距离)transitionLen
返回值:缓和曲线任意长度对应点坐标transitionLenPt(水平投影面上的坐标)
作者:李总时间:20171208地点:洪恩寺公园
本帖最后由 tzbm123456 于 2018-2-18 12:11 编辑
2018年2月18日,归档成果(六)
序号42
函数名称:transitionCurve_LenAga_Pt(canKPoint,canKVector,vtNormal,secondLs,secondRadius,transitionLen)
已知:(1)半径为无穷大处的参考点canKPoint,参考向量canKVector,法线向量vtNormal;
(2)终点长度secondLs,终点半径secondRadius(逆时针为正,顺时针为负);
(3)缓和曲线任意长度(水平投影面上距终点的距离)transitionLen
返回值:缓和曲线任意长度对应点坐标transitionLenPt(水平投影面上的坐标)
作者:李总时间:20171119地点:洪恩寺公园
序号43
函数名称:transitionCurve_SloLenAga_Pt(canKPoint,canKVector,vtNormal,secondLs,secondRadius,slope,transitionLen)
已知:(1)半径为无穷大处的参考点canKPoint,参考向量canKVector,法线向量vtNormal;
(2)终点长度secondLs,终点半径secondRadius(逆时针为正,顺时针为负);
(3)缓和曲线坡度slope,正值向上,负值向下;
(4)缓和曲线任意长度(水平投影面上距终点的距离)transitionLen
返回值:缓和曲线任意长度对应点坐标transitionLenPt(水平投影面上的坐标)
作者:李总时间:20171208地点:洪恩寺公园
页:
[1]