ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:57.06KB ,
资源ID:7764588      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7764588.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(边坡分析ARX CAD二次开发程序源代码.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

边坡分析ARX CAD二次开发程序源代码.docx

1、边坡分析ARX CAD二次开发程序源代码9.专题部分土坡稳定分析程序9.1 程序理论依据目前,我国的一些地区和行业规范都建议采用瑞典圆弧滑动面条分法验算土坡整体稳定性。本程序以该方法作为理论基础。9.1.1 最危险滑动面圆心的确定图9.1 最危险滑动圆弧的确定 fig9.1 risk slip face最危险滑动面圆心位置的确定一般采取试算法。如图9.1。1 内摩擦角的高塑性粘土。认为土坡的最危险圆弧滑动面通过坡脚。首先根据坡脚由表9.1查出坡底角和坡顶角。再在图9.1中的坡底和坡顶分别画出破底角和坡顶角,两线交点为O,O即为最危险滑动圆弧的圆心。表9.1 坡脚与坡底角和坡顶角的关系 tab9

2、.1坡脚(度)9075604533.783026.57150.32坡底角(度)333229282626252425坡顶角(度)4040403835363537372 内摩擦角的土:a. 按上述步骤求出O点;b. 由A点垂直向下量取一高度,该高度等于边坡高度H,得C点位置,由C点水平右量4.5倍H得D点,连接DO。c. 在DO延长线上找若干点、。作为滑动圆心,画出坡脚,计算边坡稳定性安全系数K,找出K值较小的点;d. 过点画DO延长线的垂线,再在垂线上找出若干点作为滑动圆心,试算K值,直至找出K值最小的点,则此点即为最危险滑动弧圆心。9.1.2 最危险滑动面条分法计算方法按条分法计算时,先找出滑

3、动圆心O,画出滑动圆弧,然后将滑动圆弧分成若干条,每条的b本程序取0.01R,R为滑动半径。任一分条的自重为其可分解为切向力和法向力。同时,在滑动面圆弧上还存在土的粘聚力C。通过推导可得:(以上叙述摘自基坑工程,中国地质大学出版社) 9.2 程序说明 本程序名位helloarx.arx,(另附软盘),在Visual C+环境中用ObjectARX 2000软件包开发而成。本程序可计算的最大土层数为100层。9.3操作说明1)在AUTOCAD 2000或AUTOCAD 2002中,将格式菜单栏中的标注样式箭头大小设为0.5,文字高度设为0.5。关闭捕捉、正交、对象捕捉、对象追踪功能。2)在工具菜

4、单栏中,选择加载应用程序,将本程序加载。3)在CAD命令行打入hello命令,依据提示输入参数即可。程序最终在命令行显示土坡安全系数,在CAD图形窗口中绘出土坡最危险滑动面,并标注出滑动面的几何参数(单位为米)。9.4程序原代码9.4.1 头文件hello.h#include #include#include stdio.h#include math.h#includeadslib.h#includerxdefs.h#includemath.hvoid ArxTest(void);9.4.2 ARX 框架程序arxmain.cpp#include hello.hvoid initApp() a

5、cedRegCmds-addCommand(ASDK_SAMPLE_COMMANDS,HELLO,HELLO,ACRX_CMD_MODAL,ArxTest); return;void unloadApp() acedRegCmds-removeGroup(ASDK_SAMPLE_COMMANDS); return;extern C AcRx:AppRetCode acrxEntryPoint( AcRx:AppMsgCode msg, void* appId)switch( msg ) case AcRx:kInitAppMsg: acrxDynamicLinker-unlockApplica

6、tion(appId);acrxRegisterAppMDIAware(appId);initApp(); break;case AcRx:kUnloadAppMsg: unloadApp(); break;case AcRx:kLoadDwgMsg: break;return AcRx:kRetOK;9.4.3 土坡稳定分析主程序hello.cpp#include hello.hads_real alf,H=0;/坡角及基坑高度ads_real jd9=90,75,60,45,33.783,30,26.567,15,11.317, b92=33,40,32,40,29,40,28,38,26

7、,35,26,26,25,35,24,37,25,37;/各种坡角及其对应的坡底坡顶角ads_real ch100;/各层厚度(由上至下)ads_real c100,fai100,w100,gam100;/各层土对应的c,内摩擦角,含水量,容重ads_point R,pa,pb,pd;/土坡控制点ads_point pe10,po10; /试算控制点ads_point pj100;/各层底与AB交点 ads_point abz;/AB中点坐标ads_point pcj100100;/各层底与滑动面交点int n100;/各层土条数ads_real d1002;/各层土条宽,d0存放前n-1条宽

8、,d1存放后一条宽ads_real th10100;/各层土滑动面试算宽度ads_point xtz100100,stz100100;/各层土条中点对应的下、上坐标ads_point xlt100100,xrt100100;/各层土条在滑动面上的左右边缘坐标ads_real al100100;/每曾土条上的小圆弧长度ads_real fpj100100;ads_real q;/均布荷载集度ads_real dq,lq;/均布荷载宽度及距坡沿距离ads_point pal,pbr,pjr100;ads_real tg100100;/各土条高ads_real bid2;ads_real gh,ct

9、z;/按层递增的土条高度,土条重度ads_real k10;/试算的K值ads_real r10;/试算半径int i,j,p,m,a,cs;/ 循环控制变量ads_real zk=0,mk=0;ads_point ko, ke;ads_real KR;ads_real K;ads_real pp;ads_real zk1,zk2,zk3,zk4,zk11,zk22,zk33,zk44;ads_real mk1,mk2,mk3,mk11,mk22,mk33;ads_real fz1,fm1,fz2,fm2;void ArxTest(void)ads_getreal(请输入坡角(度) ,&alf

10、);ads_getreal(请输入均布荷载集度(千帕) ,&q);ads_getreal(请输入均布荷载宽度(米),&dq);ads_getreal(请输入均布荷载边缘距坡沿距离(米) ,&lq);ads_getint(请输入土层数 ,&cs);acedGetPoint(NULL,请输入坡脚点 ,pa);for(i=0;ics;i+) acutPrintf(n对于第%d层土(由上而下)n,i+1); acedGetReal(请输入该层土厚(米) ,&chi); acedGetReal(请输入该层土粘结力(千帕) , &ci); acedGetReal(请输入该层土内摩擦角(度) ,&faii)

11、; acedGetReal(请输入该层土容重(千牛每立方米) ,&gami);H=0;for(j=0;j1) for(i=1;ics;i+) pjiX=pji-1X-chi/tan(alf*3.14159/180); pjiY=pji-1Y-chi; pjiZ=0; /绘图palX=paX-5;palY=paY;palZ=0;pbrX=pbX+100;pbrY=pbY;pbrZ=0;acedCommand(RTSTR,PLINE,RT3DPOINT,pal,RT3DPOINT,pa,RT3DPOINT,pb,RT3DPOINT,pbr,RTSTR,RTNONE);for(i=0;ics;i+)

12、 pjriX=pjiX+100; pjriY=pjiY; pjriZ=0; acedCommand(RTSTR,PLINE,RT3DPOINT,pji,RT3DPOINT,pjri,RTSTR,RTNONE);/求O点坐标pdX=paX+4.5*H;pdY=paY-H;pdZ=0; for(i=0;i=jdi) a=i; break; bid0=ba0+(ba-10-ba0)*(alf-jda)/(jda-1-jda);bid1=ba1+(ba-11-ba1)*(alf-jda)/(jda-1-jda);for(i=0;i10;i+)poiX=0; poiY=0; poiZ=0;fz1=0;f

13、z2=0;fm1=0;fm2=0;fz1=tan(alf+bid0)*3.14159/180)*paX+tan(bid1*3.14159/180)*pbX-paY+pbY;fm1=tan(alf+bid0)*3.14159/180)+tan(bid1*3.14159/180);fz2=tan(bid1*3.14159/180)*paY+tan(alf+bid0)*3.14159/180)*pbY-tan(alf+bid0)*3.14159/180)*tan(bid1*3.14159/180)*(paX-pbX);fm2=tan(alf+bid0)*3.14159/180)+tan(bid1*3

14、.14159/180);po0X=fz1/fm1;po0Y=fz2/fm2;po0Z=0;for(i=0;i10;i+) ri=0;r0=ads_distance(po0,pa);for(i=1;i10;i+) poiX=poi-1X-0.008*H; poiY=(po0Y-pdY)/(po0X-pdX)*(poiX-pdX)+pdY; poiZ=0; ri=ads_distance(poi,pa); acutPrintf(banjing i %f ,ri); for(i=0;i10;i+) peiY=pbY; peiX=poiX+sqrt(ri*ri-(pbY-poiY)*(pbY-poiY

15、); peiZ=0;/求E点坐标 /acedCommand(RTSTR,PLINE,RT3DPOINT,pa,RT3DPOINT,pei,RTSTR,RTNONE); /滑动面与各层底交点 for(j=0;jcs;j+) pcjijY=pjjY; pcjijX=poiX+sqrt(ri*ri-(pcjijY-poiY)*(pcjijY-poiY); pcjijZ=0; /初始化th,n,d for(j=0;j1) for(j=1;jcs;j+) thij=pcjij-1X-pcjijX; /为各层分条,以0.01R为一条/ for(j=0;jcs;j+) if(thij=0.01*ri) nj

16、=1; dj0=0; dj1=thij; else nj=thij/(0.01*ri)+1;/求土条数 dj0=0.01*ri; dj1=(thij-(nj-1)*dj0); /初使化xtz for(j=0;jcs;j+) for(p=0;p100;p+) xtzjpX=0; xtzjpY=0; xtzjpZ=0; /各土条底端中点与滑动面的交点 for(j=0;jcs;j+) if(thij=0.01*ri) xtzj0X=pcjijX+dj1/2; xtzj0Y=poiY-sqrt(ri*ri-(xtzj0X-poiX)*(xtzj0X-poiX); xtzj0Z=0; else for(

17、p=0;pnj-1;p+) xtzjpX=pcjijX+p*dj0+dj0/2; xtzjpY=poiY-sqrt(ri*ri-(xtzjpX-poiX)*(xtzjpX-poiX); xtzjpZ=0; xtzjpX=pcjijX+p*dj0+dj1/2; xtzjpY=poiY-sqrt(ri*ri-(xtzjpX-poiX)*(xtzjpX-poiX); xtzjpZ=0; /初始化stz200200与tg200200 for(j=0;j100;j+) for(p=0;p100;p+) stzjpX=0; stzjpY=0; stzjpZ=0; tgjp=0; /求土条高度 for(j=

18、0;jcs;j+) for(p=0;pnj;p+) stzjpX=xtzjpX; if(stzjpX=pbX) stzjpY=(pbY-paY)/(pbX-paX)*(stzjpX-paX)+paY; else stzjpY=pbY; stzjpZ=0; tgjp=stzjpY-xtzjpY; /初始化zk,mk,ctz,gh,xlt,xrt,al for(j=0;j100;j+) for(p=0;p100;p+) xltjpX=0; xltjpY=0; xltjpZ=0; xrtjpX=0; xrtjpY=0; xrtjpZ=0; aljp=0; zk=0; mk=0; gh=0; ctz=

19、0; zk1=0; zk2=0; zk3=0; zk4=0; mk1=0; mk2=0; mk3=0; zk11=0; zk22=0; zk33=0; zk44=0; mk11=0; mk22=0; mk33=0; /11111/#/求安全系数/#/ for(j=0;jcs;j+) / acutPrintf( dj0 %f dj1 %f,dj0,dj1); if(nj=1) xltj0X=xtzj0X-dj1/2; xltj0Y=poiY-sqrt(ri*ri-(xltj0X-poiX)*(xltj0X-poiX); xltj0Z=0; xrtj0X=xtzj0X+dj1/2; xrtj0Y=

20、poiY-sqrt(ri*ri-(xrtj0X-poiX)*(xrtj0X-poiX); xrtj0Y=0; else for(p=0;pnj-1;p+) xltjpX=xtzjpX-dj0/2; xltjpY=poiY-sqrt(ri*ri-(xltjpX-poiX)*(xltjpX-poiX); xltjpZ=0; xrtjpX=xtzjpX+dj0/2; xrtjpY=poiY-sqrt(ri*ri-(xrtjpX-poiX)*(xrtjpX-poiX); xrtjpZ=0; xltjpX=xtzjpX-dj1/2; xltjpY=poiY-sqrt(ri*ri-(xltjpX-poiX

21、)*(xltjpX-poiX); xltjpZ=0; xrtjpX=xtzjpX+dj1/2; xrtjpY=poiY-sqrt(ri*ri-(xrtjpX-poiX)*(xrtjpX-poiX); xrtjpZ=0; / /圆弧端点 for(p=0;p1) for(p=0;p=(pbX+lq)&xrtjpX=(pbX+lq+dq) zk=zk+zk1+(zk2+zk3)*zk4; mk=mk+(mk1+mk2)*mk3; else zk=zk+zk1+zk3*zk4; mk=mk+mk2*mk3; acutPrintf( zk= %f,mk=%f,zk,mk); zk11=cj*aljp; zk22=q*dj1; zk33=gamj*dj1*(tgjp-gh)+dj1*ctz; zk44=(poiY-xtzjpY)/ri*tan(faij*3.14159/180); mk11=q*dj1; mk22=gamj*dj1*(tgjp-gh)+dj1*ctz; m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1