// (C) Copyright 1996 by Autodesk, Inc. #include "stdafx.h" #include #include #include #include #include #include #include #include #include #include #include "actrans.h" // 主要问题: // 1. 墙层有多个, 层名不固定 // 2. 轴线层名称不固定 static BOOL g_nProcessMore=FALSE; void tch0(double nVal); static void diatzh(void); static void diatzha(void); static void xuwall(void); static void tzha(void); static void strlin(void); static void ul112l(ads_real x01,ads_real y01,ads_real x02,ads_real y02,ads_real b0); static void ssdelenpp0(void); static void qmmm(int itdo); static void tchmtxt(TCHAR txtins[40]); static void ulin0(void); static void ulmend2(void); static void ulin2(ads_real xmen2,ads_real ymen2); static void ulin3(void); static void ulin3a(ads_real x0,ads_real y0); static void ulin3dl(void); static void ulin4(void); static void ulin4a(void); static void ulin4b(void); static void ulin4ab(void); static void ulin5(void); static void ulin5a(int i0); static void ulin0dd(int i0); static void ulin0dda(void); static void uldote(ads_real xp1,ads_real yp1,ads_real xp2,ads_real yp2); static void wlinTDOTE(ads_point p1,ads_point p2); static void tzhb(void); static void qmmma(void); static void ulendd(void); static void uldda(int it0); static void ulddb(int it0,ads_real xp1,ads_real yp1,ads_real xp2,ads_real yp2); static void ulddc(int it0,ads_real xp1,ads_real yp1,ads_real xp2,ads_real yp2); static void ulwa00(void); static void ularc(void); static void strarcd(void); static void strarcda(void); static void qyxpoint(void); static void ularc3(void); static void ularc3a(ads_real x0,ads_real y0); static void ularc4(int i0); static void ularcdote(void); static void warc(ads_point p1,ads_real q1,ads_real q2,ads_real rr); static void qlajd(void); static void ulddarc(int it0); static void ulddarcc(int it0); static void ulenddzf(void); static void ulinzf(void); static void ularczf(void); static void timekey2(void); static void rucs(void); static void gworld(void); static void ulmcdg(void); static void addentd(void); static void tzhatd(void); static void tzhatdc(void); static void wlinTDWA(ads_real x1,ads_real y1,ads_real x2,ads_real y2); static void warcTDWA(ads_real x1,ads_real y1,ads_real q1,ads_real q2,ads_real rr); static void ulin6dd(void); static void xwbmin(int i); static void ulin01(void); static void yyyq(void); static void yyyqa(void); static void yyyqb(void); static void ulyyyqb(void); static void ulrrxxyy(ads_real x01,ads_real y01,ads_real x02,ads_real y02,ads_real tchyy,ads_real dm); static ads_real whou=500.0,wwjul=0.0; static ads_real pi314=3.141592653589793; static ads_real ds111=1.0,dswa500=500.0; static ads_real jsjdu=0.001; static ads_real whouz,whouy; static ads_real xdot,ydot; static ads_real qucs=0.0,dsdote=0.0; static ads_real xx0,yy0,mmrr; static int itch=0; static int iul112l=0; static int itwall=0; static int icdp3=0,inntm=0,icolo=1,itmen=0; static int iarry=1; static int ientd=0,itdote=0; static ads_real xka1,yka1,xka2,yka2,karr,kaq1,kaq2; static ads_real xwb1,ywb1,xwb2,ywb2; static ads_real xdo1,ydo1,xdo2,ydo2,xdz1,ydz1,xdz2,ydz2; static ads_real dm,xmen0,ymen0,xmen1,ymen1,xmen2,ymen2; static ads_real mank,manam,qhcjcou; static ads_real qhcjc; static ads_real timekey1=0.0,timekey0; static ads_point porg; static ads_real arry[302][8]; static ads_real ddar[4][8]; static ads_real arrysa[18][8]; static ads_name ensspp; static ads_name ensspp0; static ads_name endd0; static ads_name entdwa; static ads_name entch; //static char htbuf[256]=_T(""); //static char zflay[80]=_T(""); //static char zfsy[80]=_T(""); // 计算直线的角度(以角度衡量) void qjadu(ads_real xx1,ads_real yy1,ads_real xx2,ads_real yy2) { ads_point p1,p2; p1[0]=xx1; p1[1]=yy1; p1[2]=0; p2[0]=xx2; p2[1]=yy2; p2[2]=0; qhcjc=0; qhcjc=ads_angle(p1,p2); qhcjc=qhcjc*180/pi314; } void hlin(ads_real x1,ads_real y1,ads_real x2,ads_real y2,int i) { ads_point p01,p02; p01[0]=x1; p01[1]=y1; p01[2]=0; p02[0]=x2; p02[1]=y2; p02[2]=0; ads_grdraw(p01,p02,i,0); } // 屏幕缩放 void ul112l(ads_real x01,ads_real y01,ads_real x02,ads_real y02,ads_real b0) { return; } class LineDupEntry: public XLine{ public: Entity m_ent; char m_bDel; public: LineDupEntry(Entity &e): XLine(e), m_ent(e), m_bDel(0){} int IsDeleted() { return m_bDel; } int operator !() { return (GetLength()<_DIST_SNAP); } }; static void ProcessLineDup() { /* module 1.1.3 */ PickSet ssAll(SS_FREE); if (ssAll.Get(_T("X"), NULL, NULL, RBList(RTDXF0, _T("LINE"), 8, _T("TDOTE"), NULL))!=RTNORM) return; int len = (int)ssAll.Length(); DList lstLines; for(int i=0; iWHOU 直线和圆弧线 tzha(); // 再转换flushGraphics(); //ads_getstring(0,_T("\nPause"), XString()); ulendd(); // 消除重复 TDOTE 线 //ulenddzf(); // 已转换的墙线放到TDWALL 层上 tzhatdc(); ads_ssfree(entdwa); ads_ssfree(endd0); ads_ssfree(ensspp); } // ensspp0 -- 一段墙的选择集 void addentd(void) { Adesk::Int32 len,i; ads_name en; // TCHAR zf[40]; if (ads_sslength(ensspp0,&len)==RTNORM) goto cc0; return; cc0:if (len==0) return; i=0; bbb:ads_ssname(ensspp0,i,en); ads_ssadd(en,entdwa,entdwa); i=i+1; if (i300) return; // p1[0]=xka1; p1[1]=yka1; // p2[0]=xka2; p2[1]=yka2; qjadu(xka1,yka1,xka2,yka2); q=(qhcjc-180)*pi314/180; p1[0]=xka1+cos(q); p1[1]=yka1+sin(q); q=qhcjc*pi314/180; p2[0]=xka2+cos(q); p2[1]=yka2+sin(q); itdo=0; p01[0]=xka1-10*ds111; p01[1]=yka1-10*ds111; p01[2]=0; p02[0]=xka1+10*ds111; p02[1]=yka1+10*ds111; p02[2]=0; ul112l(p01[0],p01[1],p02[0],p02[1],ds111); //modified by whl on 060323 //RBList mask(RTDXF0, _T("LINE"), 8, _T("WALL*"), NULL); XString sLayer; sLayer<<_T("WALL*,")<rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //判断图层 //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) // goto bbwa; /// goto mbb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; // lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d110*ds111)&&(dm10*ds111)&&(dm<=whou)) { xdo1=x1; ydo1=y1; xdo2=x2; ydo2=y2; itdo=1; ads_name_set(en,entch); goto mbb1; } if ((d1>10*ds111)&&(d210*ds111)&&(d210*ds111)&&(dm>dswa500)||(d110*ds111)&&(dm>whou)) { xdo1=x1; ydo1=y1; xdo2=x2; ydo2=y2; itdo=2; ads_name_set(en,entch); goto mbb1; } if ((d1>10*ds111)&&(d2dswa500)||(d1>10*ds111)&&(d2whou)) { xdo1=x2; ydo1=y2; xdo2=x1; ydo2=y1; itdo=2; ads_name_set(en,entch); goto mbb1; } mbb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==2) _tcscpy(txtins,rb->resval.rstring); if (typi==41) r41=rb->resval.rreal; if (typi==42) r42=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; if (it==3) gs3=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); //if (_tcsicmp(txtnam8, LAY_WINDOW)==0) goto bbwa; // goto mbb1; //bbwa: if (_tcsicmp(txtdxf0, _T("INSERT"))==0) goto bbin; // goto mbb1; //bbin: mank=0; inntm=0; manam=0; // ads_printf(_T("\ngs1=%f,gs2=%f,gs3=%f"),gs1,gs2,gs3); if (gs1<=0) gs1=400; if (mank==0) tchmtxt(txtins); bs=r41; if (bs<0) bs=-bs; mank=bs*mank; if (mank>10*ds111) { p3[0]=x1; p3[1]=y1; p3[2]=0; qhcjc=q1*180/pi314; if (r41<0) qhcjc=qhcjc+180; q=(qhcjc+180)*pi314/180; dx=ds111+mank/2; p3[0]=x1+dx*cos(q); p3[1]=y1+dx*sin(q); p3[2]=0; q=qhcjc*pi314/180; p4[0]=x1+dx*cos(q); p4[1]=y1+dx*sin(q); p4[2]=0; xdz1=p3[0]; ydz1=p3[1]; xdz2=p4[0]; ydz2=p4[1]; dx=mank/2; x2=x1+dx*cos(q); y2=y1+dx*sin(q); q=(qhcjc+180)*pi314/180; x1=x1+dx*cos(q); y1=y1+dx*sin(q); p1[0]=xdo1; p1[1]=ydo1; p1[2]=0; p2[0]=xdo2; p2[1]=ydo2; p2[2]=0; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto qjdmm; goto mbb1; qjdmm:dx=xdo1-xdo2; dy=ydo1-ydo2; d1=sqrt(dx*dx+dy*dy); dhh=d1; if ((dhh>400)&&(dhh>whou)) dhh=whou; dx=pp[0]-xka1; dy=pp[1]-yka1; d1=sqrt(dx*dx+dy*dy); if (d1>dhh) goto mbb1; p1[0]=xka1; p1[1]=yka1; p2[0]=xka2; p2[1]=yka2; d1=800; d2=1600; qjadu(p1[0],p1[1],p2[0],p2[1]); q=(qhcjc+90)*pi314/180; p4[0]=x1+800*cos(q); p4[1]=y1+800*sin(q); q=(qhcjc-90)*pi314/180; p3[0]=x1+800*cos(q); p3[1]=y1+800*sin(q); if (ads_inters(p1,p2,p3,p4,0,pp)==RTNORM) { dx=pp[0]-x1; dy=pp[1]-y1; d1=sqrt(dx*dx+dy*dy); xjc1=pp[0]; yjc1=pp[1]; } q=(qhcjc+90)*pi314/180; p4[0]=x2+800*cos(q); p4[1]=y2+800*sin(q); q=(qhcjc-90)*pi314/180; p3[0]=x2+800*cos(q); p3[1]=y2+800*sin(q); if (ads_inters(p1,p2,p3,p4,0,pp)==RTNORM) { dx=pp[0]-x2; dy=pp[1]-y2; d2=sqrt(dx*dx+dy*dy); xjc2=pp[0]; yjc2=pp[1]; } if ((d1ds111) goto mbb1; dx=xka1-x1; dy=yka1-y1; d1=sqrt(dx*dx+dy*dy); dx=xka1-x2; dy=yka1-y2; d2=sqrt(dx*dx+dy*dy); // ads_printf(_T("\nxjc1=%f,yjc1=%f,xjc2=%f,yjc2=%f"),xjc1,yjc1,xjc2,yjc2); if (d2>d1) { xjc1=xjc2; yjc1=yjc2; } q=(qhcjc-180)*pi314/180; x1=xka1+80*cos(q); y1=yka1+80*sin(q); q=qhcjc*pi314/180; x2=xka1+80*cos(q); y2=yka1+80*sin(q); dx=x1-xjc1; dy=y1-yjc1; d1=sqrt(dx*dx+dy*dy); dx=x2-xjc1; dy=y2-yjc1; d2=sqrt(dx*dx+dy*dy); if (d2d2) { dx=xdz2; xdz2=xdz1; xdz1=dx; dx=ydz2; ydz2=ydz1; ydz1=dx; } dx=xdo1-xdo2; dy=ydo1-ydo2; ds0=sqrt(dx*dx+dy*dy); p01[0]=xdz1-10; p01[1]=ydz1-10; p01[2]=0; p02[0]=xdz1+10; p02[1]=ydz1+10; p02[2]=0; ul112l(p01[0],p01[1],p02[0],p02[1],ds111); //modified by whl on 060323 //RBList mask(RTDXF0, _T("LINE"), 8, _T("WALL*"), NULL); XString sLayer; sLayer<<_T("WALL*,")<rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); // 墙层 // if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto mbb1; //bbwa: //if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; //lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d10.5*ds0) goto mbb1; dm=dx; p1[0]=xdz1; p1[1]=ydz1; p2[0]=xdz2; p2[1]=ydz2; p3[0]=x1; p3[1]=y1; p4[0]=x2; p4[1]=y2; qjadu(p1[0],p1[1],p2[0],p2[1]); q1=qhcjc; qjadu(p3[0],p3[1],p4[0],p4[1]); dq=q1-qhcjc; if (dq<0) dq=-dq; qq1:if (dq>269) { dq=dq-180; goto qq1; } if ((dq<85)||(dq>95)) goto mbb1; if (ads_inters(p1,p2,p3,p4,0,pp)==RTNORM) { // hlin(x1,y1,x2,y2,7); // hlin(xdo1,ydo1,xdo2,ydo2,5); if (dmd2) { dx=x2; x2=x1; x1=dx; dx=y2; y2=y1; y1=dx; } if (itmen==0) { xmen1=x1; ymen1=x2; xmen2=x2; ymen2=y2; xmen0=xdo2; ymen0=ydo2; itmen=1; } img=1; } // ads_ssadd(en,ensspp0,ensspp0); goto enss0; } mbb1:i=i+1; if (i10) return; qjadu(xka2,yka2,xka1,yka1); q=(qhcjc+90)*pi314/180; dx=dswa500; if (dx<0.8*whou/2) dx=0.8*whou; xm1=xka1+dx*cos(q); ym1=yka1+dx*sin(q); xm2=xka1-dx*cos(q); ym2=yka1-dx*sin(q); q=(qhcjc-180)*pi314/180; dx=40; xd1=xka1+dx*cos(q); yd1=yka1+dx*sin(q); q=qhcjc*pi314/180; dx=40000.0; xd2=xka1+dx*cos(q); yd2=yka1+dx*sin(q); x1=xka1; y1=yka1; dx=180*ds111; p01[0]=x1-dx; p01[1]=y1-dx; p01[2]=0; p02[0]=x1+dx; p02[1]=y1+dx; p02[2]=0; ul112l(p01[0],p01[1],p02[0],p02[1],0); //modified by whl on 060323 //RBList mask(RTDXF0, _T("INSERT"), 8, LAY_WIN, NULL); XString sLayer; sLayer<<_T("WINDOW,")<rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==2) _tcscpy(txtins,rb->resval.rstring); if (typi==41) r41=rb->resval.rreal; if (typi==42) r42=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; if (it==3) gs3=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('I'))&&(txtnam8[2]==_T('N'))&&(txtnam8[3]==_T('D'))&&(txtnam8[4]==_T('O'))&&(txtnam8[5]==_T('W'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('I'))&&(txtdxf0[1]==_T('N'))&&(txtdxf0[2]==_T('S'))&&(txtdxf0[3]==_T('E'))&&(txtdxf0[4]==_T('R'))&&(txtdxf0[5]==_T('T'))) goto bbin; // goto mbb1; //bbin: mank=0; inntm=0; manam=0; // ads_printf(_T("\ngs1=%f,gs2=%f,gs3=%f"),gs1,gs2,gs3); if (gs1<=0) gs1=400; if (mank==0) tchmtxt(txtins); bs=r41; if (bs<0) bs=-bs; mank=bs*mank; if (mank>10*ds111) { p3[0]=x1; p3[1]=y1; p3[2]=0; qhcjc=q1*180/pi314; if (r41<0) qhcjc=qhcjc+180; q=(qhcjc+180)*pi314/180; dx=20*ds111+mank/2; p3[0]=x1+dx*cos(q); p3[1]=y1+dx*sin(q); p3[2]=0; q=qhcjc*pi314/180; p4[0]=x1+dx*cos(q); p4[1]=y1+dx*sin(q); p4[2]=0; // xdz1=p3[0]; ydz1=p3[1]; // xdz2=p4[0]; ydz2=p4[1]; dx=mank/2; x2=x1+dx*cos(q); y2=y1+dx*sin(q); q=(qhcjc+180)*pi314/180; x1=x1+dx*cos(q); y1=y1+dx*sin(q); p1[0]=xm1; p1[1]=ym1; p1[2]=0; p2[0]=xm2; p2[1]=ym2; p2[2]=0; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto qjdmm; goto mbb1; qjdmm:p1[0]=xd1; p1[1]=yd1; p2[0]=xd2; p2[1]=yd2; d1=800; d2=1600; qjadu(p1[0],p1[1],p2[0],p2[1]); q=(qhcjc+90)*pi314/180; p4[0]=x1+800*cos(q); p4[1]=y1+800*sin(q); q=(qhcjc-90)*pi314/180; p3[0]=x1+800*cos(q); p3[1]=y1+800*sin(q); if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=pp[0]-x1; dy=pp[1]-y1; d1=sqrt(dx*dx+dy*dy); xjc1=pp[0]; yjc1=pp[1]; goto mm2; } goto mbb1; mm2: q=(qhcjc+90)*pi314/180; p4[0]=x2+800*cos(q); p4[1]=y2+800*sin(q); q=(qhcjc-90)*pi314/180; p3[0]=x2+800*cos(q); p3[1]=y2+800*sin(q); if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=pp[0]-x2; dy=pp[1]-y2; d2=sqrt(dx*dx+dy*dy); xjc2=pp[0]; yjc2=pp[1]; goto mm3; } goto mbb1; mm3:dhh=dswa500; if (dhh<0.8*whou) dhh=0.8*whou; if ((d1ds111) goto mbb1; dx=xka1-x1; dy=yka1-y1; d1=sqrt(dx*dx+dy*dy); dx=xka1-x2; dy=yka1-y2; d2=sqrt(dx*dx+dy*dy); // ads_printf(_T("\nxjc1=%f,yjc1=%f,xjc2=%f,yjc2=%f"),xjc1,yjc1,xjc2,yjc2); if (d2>d1) { xjc1=xjc2; yjc1=yjc2; } xka1=xjc1; yka1=yjc1; icdp3=1; // hlin(xd1,yd1,xd2,yd2,7); // hlin(xka1,yka1,xka2,yka2,2); // ads_getstring(5,NULL,txtdxf0); ads_ssfree(ss1); goto nn0; } } mbb1:i=i+1; if (i=4)&&(txtins[0]==_T('_'))&&(txtins[1]==_T('D'))&&(txtins[2]==_T('B'))&&(txtins[3]==_T('L'))&&(txtins[4]==_T('K'))) { mk[1][1]=1; mk[2][1]=1; ii=3; manam=1; } if ((j>=4)&&(txtins[0]==_T('_'))&&(txtins[1]==_T('W'))&&(txtins[2]==_T('B'))&&(txtins[3]==_T('L'))&&(txtins[4]==_T('K'))) { mk[1][1]=1; mk[2][1]=1; ii=3; manam=1; } if ((j>=4)&&(txtins[0]==_T('_'))&&(txtins[1]==_T('G'))&&(txtins[2]==_T('C'))&&(txtins[3]==_T('B'))&&(txtins[4]==_T('L'))&&(txtins[5]==_T('K'))) { mk[1][1]=1; mk[2][1]=1; ii=3; manam=1; } if ((j>=3)&&(txtins[0]==_T('M'))&&(txtins[1]==_T('_'))) { mk[1][1]=1; mk[2][1]=1; ii=3; manam=1; } */ end:mank=mk[2][1]; } void ulin2(ads_real xmen2,ads_real ymen2) { struct resbuf *ebup,*rb; ads_point p01,p02; ads_name ss1,en; int typi; Adesk::Int32 i,len; ads_real x1,y1,x2,y2,dx,dy,d1,q1,dq; TCHAR txtdxf0[40]=_T(""),txtnam8[40]=_T(""); p01[0]=xmen2-10; p01[1]=ymen2-10; p01[2]=0; p02[0]=xmen2+10; p02[1]=ymen2+10; p02[2]=0; ul112l(p01[0],p01[1],p02[0],p02[1],ds111); //modified by whl on 060323 //RBList mask(RTDXF0, _T("LINE"), 8, _T("WALL*"), NULL); XString sLayer; sLayer<<_T("WALL*,")<rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); // if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto mbb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; //lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1179) { dq=dq-180; goto qq1; } if (dq<1) { itmen=2; xka1=x1; yka1=y1; xka2=x2; yka2=y2; ads_ssadd(en,ensspp0,ensspp0); goto enss0; } mbb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto bb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto bb1; //lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1179) { dq=dq-180; goto qq1; } if (dq>1) goto bb1; p3[0]=x1; p3[1]=y1; p4[0]=x2; p4[1]=y2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto lin2; goto bb1; lin2:dx=pp[0]-x0; dy=pp[1]-y0; d1=sqrt(dx*dx+dy*dy); if (d11.0E-6) { ds2=ds1; x21=x11; y21=y11; x22=x12; y22=y12; } ds1=d1; x11=x1; y11=y1; x12=x2; y12=y2; ads_name_set(en,en1); goto bb1; } if (d1rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); // if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto ccwa; // goto cc1; //ccwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto cclin; // goto cc1; //cclin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1179) { dq=dq-180; goto ccqq1; } if (dq>1) goto cc1; p3[0]=x1; p3[1]=y1; p4[0]=x2; p4[1]=y2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto cclin2; goto cc1; cclin2:dx=pp[0]-x0; dy=pp[1]-y0; d1=sqrt(dx*dx+dy*dy); if (d11.0E-6) { ds4=ds3; x41=x31; y41=y31; x42=x32; y42=y32; } ds3=d1; x31=x1; y31=y1; x32=x2; y32=y2; ads_name_set(en,en3); goto cc1; } if (d1d2) { ds=xka2; xka2=xka1; xka1=ds; ds=yka2; yka2=yka1; yka1=ds; } arry[1][1]=x1; arry[1][2]=y1; arry[1][3]=x2; arry[1][4]=y2; arry[1][5]=0; arry[1][6]=0; arry[2][1]=xka1; arry[2][2]=yka1; arry[2][3]=xka2; arry[2][4]=yka2; arry[2][5]=0; arry[2][6]=0; iarry=3; //ads_printf(_T("\narry[1][1]=%f,arry[1][2]=%f,arry[1][3]=%f,arry[1][4]=%f"),arry[1][1],arry[1][2],arry[1][3],arry[1][4]); //ads_printf(_T("\narry[2][1]=%f,arry[2][2]=%f,arry[2][3]=%f,arry[2][4]=%f"),arry[2][1],arry[2][2],arry[2][3],arry[2][4]); ulin4(); icolo=icolo+1; // if (ientd==1) { // for (i=1;i1) hlin(arry[i][1],arry[i][2],arry[i][3],arry[i][4],7); // ads_printf(_T("\ni=%d,arry[i][1]=%f,%f,%f,%f"),i,arry[i][1],arry[i][2],arry[i][3],arry[i][4]); // ads_getstring(5,NULL,zf); } // } // 绘 TDOTE 线 ulin5(); // 将以转换的墙端点选上 ensspp0 ulin6dd(); if (ientd==0) addentd(); ssd:ssdelenpp0(); ads_ssfree(ensspp0); } void ulin0dda(void) { // int i; ads_real ds,x1,y1,x2,y2,dx,dy,d1,d2,x0,y0,q; // TCHAR zf[40]; ads_ssadd(NULL,NULL,ensspp0); // ads_ssadd(entch,ensspp0,ensspp0); // itmen=0; // strlin(); // ds=xka2; xka2=xka1; xka1=ds; // ds=yka2; yka2=yka1; yka1=ds; // strlin(); x1=xka1; y1=yka1; x2=xka2; y2=yka2; // if (ientd==1) ads_printf(_T("\n itmen=%d"),itmen); itmen=0; ulin3dl(); //ads_printf(_T("\nulin3 itmen=%d"),itmen); if (itmen==3) { strlin(); ds=xka2; xka2=xka1; xka1=ds; ds=yka2; yka2=yka1; yka1=ds; strlin(); // hlin(x1,y1,x2,y2,2); // hlin(xka1,yka1,xka2,yka2,2); // ads_getstring(5,NULL,zf); goto ssd0; } goto ssd; ssd0:qjadu(x1,y1,x2,y2); dx=800000000.0; q=(qhcjc-180)*pi314/180; x0=x1+dx*cos(q); y0=y1+dx*sin(q); dx=x0-xka1; dy=y0-yka1; d1=sqrt(dx*dx+dy*dy); dx=x0-xka2; dy=y0-yka2; d2=sqrt(dx*dx+dy*dy); if (d1>d2) { ds=xka2; xka2=xka1; xka1=ds; ds=yka2; yka2=yka1; yka1=ds; } arry[1][1]=x1; arry[1][2]=y1; arry[1][3]=x2; arry[1][4]=y2; arry[1][5]=0; arry[1][6]=0; arry[2][1]=xka1; arry[2][2]=yka1; arry[2][3]=xka2; arry[2][4]=yka2; arry[2][5]=0; arry[2][6]=0; iarry=3; //ads_printf(_T("\narry[1][1]=%f,arry[1][2]=%f,arry[1][3]=%f,arry[1][4]=%f"),arry[1][1],arry[1][2],arry[1][3],arry[1][4]); //ads_printf(_T("\narry[2][1]=%f,arry[2][2]=%f,arry[2][3]=%f,arry[2][4]=%f"),arry[2][1],arry[2][2],arry[2][3],arry[2][4]); // ulin4(); icolo=icolo+1; // if (ientd==1) { // for (i=1;i1) hlin(arry[i][1],arry[i][2],arry[i][3],arry[i][4],7); // ads_printf(_T("\ni=%d,arry[i][1]=%f,%f,%f,%f"),i,arry[i][1],arry[i][2],arry[i][3],arry[i][4]); // ads_getstring(5,NULL,zf); } // } // 绘 TDOTE 线 ulin5(); // 将以转换的墙端点选上 ensspp0 ulin6dd(); if (ientd==0) addentd(); ssd:ssdelenpp0(); ads_ssfree(ensspp0); } void ulin4(void) { ulin4a(); ulin4ab(); } void ulin4a(void) { int i; ads_real q,dx,dy,d1; ads_point p1,p2,p3,p4,pp; p1[2]=0; p2[2]=0; p3[2]=0; p4[2]=0; aa0:p1[0]=arry[1][1]; p1[1]=arry[1][2]; p2[0]=arry[1][3]; p2[1]=arry[1][4]; i=iarry-1; qjadu(p1[0],p1[1],p2[0],p2[1]); q=(qhcjc+90)*pi314/180; dx=8000.0; p3[0]=arry[i][3]+dx*cos(q); p3[1]=arry[i][4]+dx*sin(q); p4[0]=arry[i][3]-dx*cos(q); p4[1]=arry[i][4]-dx*sin(q); if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto dd1; return; dd1:dx=pp[0]-arry[1][3]; dy=pp[1]-arry[1][4]; d1=sqrt(dx*dx+dy*dy); // if (d1<10*ds111) return; if (d1rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); // if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; goto mbb1; // //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; // lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d110)&&(d110)&&(d12) goto ccc; i=2; // arry[i][1]=xka2; arry[i][2]=yka2; // arry[i][3]=xka1; arry[i][4]=yka1; // arry[i][5]=0; arry[i][6]=0; arry[i][1]=xka1; arry[i][2]=yka1; arry[i][3]=xka2; arry[i][4]=yka2; arry[i][5]=0; arry[i][6]=0; if (iarry<300) { iarry=iarry+1; goto aa0; } } } void ulin5(void) { int i; i=2; aaa:xka1=arry[1][1]; yka1=arry[1][2]; xka2=arry[1][3]; yka2=arry[1][4]; xwb1=arry[i][1]; ywb1=arry[i][2]; xwb2=arry[i][3]; ywb2=arry[i][4]; ulin5a(i); i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('D'))&&(txtnam8[1]==_T('O'))&&(txtnam8[2]==_T('T'))&&(txtnam8[3]==_T('E'))) goto bbwa; // goto mbb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; // lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1179) { dq=dq-180; goto qq1; } if (dq>1) goto mbb1; qjadu(xp1,yp1,xp2,yp2); q=(qhcjc-180)*pi314/180; p1[0]=xp1+ds111*cos(q); p1[1]=yp1+ds111*sin(q); q=qhcjc*pi314/180; p2[0]=xp2+ds111*cos(q); p2[1]=yp2+ds111*sin(q); p3[0]=x1; p3[1]=y1; p4[0]=x2; p4[1]=y2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=pp[0]-x0; dy=pp[1]-y0; d1=sqrt(dx*dx+dy*dy); if (d1rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('D'))&&(txtnam8[1]==_T('O'))&&(txtnam8[2]==_T('T'))&&(txtnam8[3]==_T('E'))) goto bbwa; // goto mbb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; // lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1179) { dq=dq-180; goto qq1; } if (dq>1) goto mbb1; p1[0]=p01[0]; p1[1]=p01[1]; p2[0]=p02[0]; p2[1]=p02[1]; p3[0]=x1; p3[1]=y1; p4[0]=x2; p4[1]=y2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=pp[0]-x0; dy=pp[1]-y0; d1=sqrt(dx*dx+dy*dy); if (d15000) return; if (ads_sslength(ensspp,&len)==RTNORM) goto bbb; return; bbb:if (len==0) return; ads_ssname(ensspp,i,en); ebup=ads_entget(en); if (ebup==NULL) goto bb1; q1=0; q2=2*pi314; for (rbp=ebup;rbp!=NULL;rbp=rbp->rbnext) { typi=rbp->restype; if (typi==0) _tcscpy(zf,rbp->resval.rstring); if (typi==40) rr=rbp->resval.rreal; if (typi==50) q1=rbp->resval.rreal; if (typi==51) q2=rbp->resval.rreal; if (typi==10) { x1=rbp->resval.rpoint[0]; y1=rbp->resval.rpoint[1]; } if (typi==11) { x2=rbp->resval.rpoint[0]; y2=rbp->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rbp); if ((zf[0]==_T('L'))&&(zf[1]==_T('I'))&&(zf[2]==_T('N'))&&(zf[3]==_T('E'))) goto lin; if ((zf[0]==_T('A'))&&(zf[1]==_T('R'))&&(zf[2]==_T('C'))) goto cir; if ((zf[0]==_T('C'))&&(zf[1]==_T('I'))&&(zf[2]==_T('R'))&&(zf[3]==_T('C'))&&(zf[4]==_T('L'))&&(zf[5]==_T('E'))) goto cir; goto bb1; cir:if (rrrbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==2) _tcscpy(txtins,rb->resval.rstring); if (typi==41) r41=rb->resval.rreal; if (typi==42) r42=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; if (it==3) gs3=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('I'))&&(txtnam8[2]==_T('N'))&&(txtnam8[3]==_T('D'))&&(txtnam8[4]==_T('O'))&&(txtnam8[5]==_T('W'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('I'))&&(txtdxf0[1]==_T('N'))&&(txtdxf0[2]==_T('S'))&&(txtdxf0[3]==_T('E'))&&(txtdxf0[4]==_T('R'))&&(txtdxf0[5]==_T('T'))) goto bbin; // goto mbb1; //bbin: mank=0; inntm=0; manam=0; // ads_printf(_T("\ngs1=%f,gs2=%f,gs3=%f"),gs1,gs2,gs3); if (gs1<=0) gs1=400; if (mank==0) tchmtxt(txtins); bs=r41; if (bs<0) bs=-bs; mank=bs*mank; if (mank>10*ds111) { p3[0]=x1; p3[1]=y1; p3[2]=0; qhcjc=q1*180/pi314; if (r41<0) qhcjc=qhcjc+180; q=(qhcjc+180)*pi314/180; dx=(mank+ds111)/2; p3[0]=x1+dx*cos(q); p3[1]=y1+dx*sin(q); p3[2]=0; q=qhcjc*pi314/180; p4[0]=x1+dx*cos(q); p4[1]=y1+dx*sin(q); p4[2]=0; xdz1=p3[0]; ydz1=p3[1]; xdz2=p4[0]; ydz2=p4[1]; dx=ds111+mank/2; x2=x1+dx*cos(q); y2=y1+dx*sin(q); q=(qhcjc+180)*pi314/180; x1=x1+dx*cos(q); y1=y1+dx*sin(q); p1[0]=xdo1; p1[1]=ydo1; p2[0]=xdo2; p2[1]=ydo2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto qjdmm; goto mbb1; qjdmm:itmen=1; } mbb1:i=i+1; if (i800.0)&&(ddar[1][5]==200)) { ddar[1][1]=xwb1; ddar[1][2]=ywb1; ddar[1][3]=x21; ddar[1][4]=y21; ddar[1][5]=0; ddar[1][6]=0; } } } q=(qhcjc+90)*pi314/180; p3[0]=xka2+8000*cos(q); p3[1]=yka2+8000*sin(q); q=(qhcjc-90)*pi314/180; p4[0]=xka2+8000*cos(q); p4[1]=yka2+8000*sin(q); it22=0; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { x22=pp[0]; y22=pp[1]; it22=1; if (i0==iarry-1) { dx=x22-xwb2; dy=y22-ywb2; d1=sqrt(dx*dx+dy*dy); if ((d1>800.0)&&(ddar[2][5]==200)) { ddar[2][1]=x22; ddar[2][2]=y22; ddar[2][3]=xwb2; ddar[2][4]=ywb2; ddar[2][5]=0; ddar[2][6]=0; } } } xdz1=(x11+x21)/2; ydz1=(y11+y21)/2; xdz2=(x12+x22)/2; ydz2=(y12+y22)/2; // hlin(xdz1,ydz1,xdz2,ydz2,3); xp1=(x11+x12)/2; yp1=(y11+y12)/2; xp2=(x21+x22)/2; yp2=(y21+y22)/2; // hlin(xp1,yp1,xp2,yp2,7); itdote=0; uldote(xp1,yp1,xp2,yp2); if ((itdote==0)&&(wwjul>0)) { xdot=(xdz1+xdz2)/2; ydot=(ydz1+ydz2)/2; x0=xdot; y0=ydot; dsdote=2000.0; uldote23(2,x11,y11,x12,y12); uldote23(3,x21,y21,x22,y22); if (itdote==0) goto aaa; dx=xdot-x0; dy=ydot-y0; xdz1=xdz1+dx; ydz1=ydz1+dy; xdz2=xdz2+dx; ydz2=ydz2+dy; whouz=0; whouy=0; qjadu(xdz1,ydz1,xdz2,ydz2); p3[0]=(xdz1+xdz2)/2; p3[1]=(ydz1+ydz2)/2; q=(qhcjc-90)*pi314/180; p4[0]=p3[0]+8000*cos(q); p4[1]=p3[1]+8000*sin(q); p1[0]=xka1; p1[1]=yka1; p2[0]=xka2; p2[1]=yka2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=p3[0]-pp[0]; dy=p3[1]-pp[1]; d1=sqrt(dx*dx+dy*dy); if (d1>0.0001) whouy=d1; } p1[0]=xwb1; p1[1]=ywb1; p2[0]=xwb2; p2[1]=ywb2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=p3[0]-pp[0]; dy=p3[1]-pp[1]; d1=sqrt(dx*dx+dy*dy); if (d1>0.0001) whouz=d1; } //ads_printf(_T("\nAAA whouz=%f,whouy=%f"),whouz,whouy); if ((whouz>0)&&(whouy>0)) { if (whouy0.0001) whouz=d1; } p1[0]=xwb1; p1[1]=ywb1; p2[0]=xwb2; p2[1]=ywb2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=p3[0]-pp[0]; dy=p3[1]-pp[1]; d1=sqrt(dx*dx+dy*dy); if (d1>0.0001) whouy=d1; } //ads_printf(_T("\nBBB whouz=%f,whouy=%f"),whouz,whouy); if ((whouz>0)&&(whouy>0)) { if (whouz0.0001) whouy=d1; } p1[0]=xwb1; p1[1]=ywb1; p2[0]=xwb2; p2[1]=ywb2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=p3[0]-pp[0]; dy=p3[1]-pp[1]; d1=sqrt(dx*dx+dy*dy); if (d1>0.0001) whouy=d1; } p3[0]=(xdz1+xdz2)/2; p3[1]=(ydz1+ydz2)/2; q=(qhcjc+90)*pi314/180; p4[0]=p3[0]+8000*cos(q); p4[1]=p3[1]+8000*sin(q); p1[0]=xka1; p1[1]=yka1; p2[0]=xka2; p2[1]=yka2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=p3[0]-pp[0]; dy=p3[1]-pp[1]; d1=sqrt(dx*dx+dy*dy); if (d1>0.0001) whouz=d1; } p1[0]=xwb1; p1[1]=ywb1; p2[0]=xwb2; p2[1]=ywb2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=p3[0]-pp[0]; dy=p3[1]-pp[1]; d1=sqrt(dx*dx+dy*dy); if (d1>0.0001) whouz=d1; } edd:p1[0]=xdz1; p1[1]=ydz1; p1[2]=0; p2[0]=xdz2; p2[1]=ydz2; p2[2]=0; // hlin(xdz1,ydz1,xdz2,ydz2,3); wlinTDOTE(p1,p2); } void ulwa00(void) { struct resbuf *ebup,*rb; ads_name ss1,en; int typi; Adesk::Int32 i,len; ads_real x1,y1,x2,y2,dx,dy,d1,d01,d02; ads_real q1,dq; ads_real x11,y11,x12,y12,x21,y21,x22,y22; ads_point p01,p02; TCHAR txtdxf0[40]=_T(""),txtnam8[40]=_T(""); x1=xdo1; x2=xdo2; if (x2rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto bbin; // goto mbb1; //bbin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1269) { dq=dq-180; goto qq1; } // ads_printf(_T("dq %f"),dq); if ((dq<70)||(dq>101)) goto mbb1; dx=xdo1-x1; dy=ydo1-y1; d1=sqrt(dx*dx+dy*dy); if (d1359) dq=dq-360; if (dq<20) itmen=1; } } void tzha(void) { struct resbuf *ebup,*rbp; ads_name en; int typi,itn; Adesk::Int32 len,i; ads_real x1,y1,x2,y2,dx,dy,d1,rr,dq,q1,q2; TCHAR zf[40]=_T(""); itn=0; aa0:i=0; itn=itn+1; if (itn>5000) return; if (ads_sslength(ensspp,&len)==RTNORM) goto bbb; return; bbb:if (len==0) return; ads_ssname(ensspp,i,en); ebup=ads_entget(en); if (ebup==NULL) goto bb1; q1=0; q2=2*pi314; for (rbp=ebup;rbp!=NULL;rbp=rbp->rbnext) { typi=rbp->restype; if (typi==0) _tcscpy(zf,rbp->resval.rstring); if (typi==40) rr=rbp->resval.rreal; if (typi==50) q1=rbp->resval.rreal; if (typi==51) q2=rbp->resval.rreal; if (typi==10) { x1=rbp->resval.rpoint[0]; y1=rbp->resval.rpoint[1]; } if (typi==11) { x2=rbp->resval.rpoint[0]; y2=rbp->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rbp); if ((zf[0]==_T('L'))&&(zf[1]==_T('I'))&&(zf[2]==_T('N'))&&(zf[3]==_T('E'))) goto lin; if ((zf[0]==_T('A'))&&(zf[1]==_T('R'))&&(zf[2]==_T('C'))) goto cir; if ((zf[0]==_T('C'))&&(zf[1]==_T('I'))&&(zf[2]==_T('R'))&&(zf[3]==_T('C'))&&(zf[4]==_T('L'))&&(zf[5]==_T('E'))) goto cir; goto bb1; cir:if (rrdx)||(ddrbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto bb1; //bbwa: if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; if ((txtdxf0[0]==_T('C'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('R'))&&(txtdxf0[3]==_T('C'))&&(txtdxf0[4]==_T('L'))&&(txtdxf0[5]==_T('E'))) goto arc; goto bb1; arc:dx=x1-xka1; dy=y1-yka1; d1=sqrt(dx*dx+dy*dy); if (d1>10*ds111) goto bb1; d1=fabs(karr-rr); if ((d1ds111)) { d0=d1; q1=q1*180/pi314; q2=q2*180/pi314; if (q2359) { arry[2][4]=arry[1][4]; arry[2][6]=arry[1][6]; } } bb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto bb1; //bbwa: if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; goto bb1; lin:qjadu(x0,y0,x1,y1); q=qhcjc; if ((q>q01)&&(qq01-360)&&(qq01+360)&&(qq01)&&(qq01-360)&&(qq01+360)&&(q2*ds111)&&(d2>2*ds111)) goto bb1; dx=x2-x0; dy=y2-y0; rr=sqrt(dx*dx+dy*dy); d1=fabs(arry[1][3]-rr); d2=fabs(arry[2][3]-rr); if ((d1>2*ds111)&&(d2>2*ds111)) goto bb1; ads_ssadd(en,ensspp0,ensspp0); goto bb1; arc:dx=x1-x0; dy=y1-y0; d1=sqrt(dx*dx+dy*dy); if (d1>10*ds111) goto bb1; d1=fabs(rr0-rr); if (d1>ds111) goto bb1; q=q1*180/pi314; if ((q>q01)&&(qq01-360)&&(qq01+360)&&(qq01)&&(qq01-360)&&(qq01+360)&&(qarry[2][3]) rr1=arry[2][3]; rr2=arry[1][3]; if (rr2355) { q1=arry[2][4]; q2=arry[2][6]; goto aaa; } dq=(arry[2][6]-arry[2][4]); if (dq>355) { q1=arry[1][4]; q2=arry[1][6]; goto aaa; } q1=arry[1][4]; if (q1arry[2][6]) q2=arry[2][6]; // ads_printf(_T("\n q1=%f,q2=%f"),q1,q2); if (q2q1+360) q2=q2-360; aaa: arry[1][4]=q1; arry[1][6]=q2; arry[2][4]=q1; arry[2][6]=q2; dq=q2-q1; if (dq<0.001) return; q0=(q1+q2)/2; dx=arry[1][3]; if (dxrbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('D'))&&(txtnam8[1]==_T('O'))&&(txtnam8[2]==_T('T'))&&(txtnam8[3]==_T('E'))) goto bbwa; // goto bb1; //bbwa: if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; if ((txtdxf0[0]==_T('C'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('R'))&&(txtdxf0[3]==_T('C'))&&(txtdxf0[4]==_T('L'))&&(txtdxf0[5]==_T('E'))) goto arc; goto bb1; arc:dx=x1-x0; dy=y1-y0; d1=sqrt(dx*dx+dy*dy); if (d1>10*ds111) goto bb1; q1=q1*180/pi314; q2=q2*180/pi314; if (q2q1)&&(qq1-360)&&(qq1+360)&&(qrr2+0.001)) goto bb1; rr0=rr; whouy=rr2-rr; if (whouy<0) whouy=0; whouz=rr-rr1; if (whouz<0) whouz=0; bb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); // ads_printf(_T("\ngs1=%f,gs2=%f"),gs1,gs2); if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) { q1=q1*180/pi314; q2=q2*180/pi314; if (q2rbnext) { typi=rb->restype; if (typi==50) rb->resval.rreal=q1; if (typi==51) rb->resval.rreal=q2; } ads_entmod(ebup); ads_relrb(ebup); ads_relrb(rb); goto bb1; } // ads_printf(_T("\nx1=%f,y1=%f,x2=%f,y2=%f"),x1,y1,x2,y2); // ads_printf(_T("\ngs1=%f,gs2=%f"),gs1,gs2); xdz1=x1; ydz1=y1; xdz2=x2; ydz2=y2; uldda(1); uldda(2); apps.restype=RTSTR; _tcscpy(buf,_T("TDOTE")); apps.resval.rstring=buf; apps.rbnext=NULL; ebup=ads_entgetx(en,&apps); if (ebup==NULL) goto bb1; it=0; for (rb=ebup;rb!=NULL;rb=rb->rbnext) { typi=rb->restype; if (typi==10) { rb->resval.rpoint[0]=xdz1; rb->resval.rpoint[1]=ydz1; } if (typi==11) { rb->resval.rpoint[0]=xdz2; rb->resval.rpoint[1]=ydz2; } } ads_entmod(ebup); ads_relrb(ebup); ads_relrb(rb); bb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); itwa=0; //modified by whl on 060323 //if (_tcsicmp(txtnam8, LAY_AXIS)==0) goto bbwa; if (_tcsicmp(txtnam8, _T("DOTE"))==0||_tcsicmp(txtnam8, LAY_AXIS)==0) goto bbwa; //modified by whl on 060323 //if (ads_wcmatch(txtnam8, _T("WALL*"))==RTNORM) { if (ads_wcmatch(txtnam8, _T("WALL*"))==RTNORM||ads_wcmatch(txtnam8, LAY_WALL)==RTNORM) { itwa=1; goto bbwa; } goto mbb1; bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; if ((txtdxf0[0]==_T('C'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('R'))&&(txtdxf0[3]==_T('C'))&&(txtdxf0[4]==_T('L'))&&(txtdxf0[5]==_T('E'))) goto arc; goto mbb1; arc:if (itwa==1) goto mbb1; if (rr269) { dq=dq-180; goto qq1; } if ((dq<30)||(dq>150)) goto mbb1; if (itwa==1) { if ((dq<89)||(dq>91)) goto mbb1; } qjadu(xp1,yp1,xp2,yp2); q=(qhcjc-180)*pi314/180; p1[0]=xp1+ds111*cos(q); p1[1]=yp1+ds111*sin(q); q=qhcjc*pi314/180; p2[0]=xp2+ds111*cos(q); p2[1]=yp2+ds111*sin(q); p3[0]=x1; p3[1]=y1; p4[0]=x2; p4[1]=y2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { dx=pp[0]-xp2; dy=pp[1]-yp2; d1=sqrt(dx*dx+dy*dy); if (itwa==0) { if (d110) ulddc(it0,xp1,yp1,xp2,yp2); } if (it0==2) { xp2=xdz2; yp2=ydz2; q=(q0+180)*pi314/180; xdz2=xdz2+d0*cos(q); ydz2=ydz2+d0*sin(q); xp1=xdz2; yp1=ydz2; if (d0>10) ulddc(it0,xp1,yp1,xp2,yp2); } } if (fabs(d0-2000)<1.0E-6) { qjadu(xdz2,ydz2,xdz1,ydz1); q=qhcjc*pi314/180; dx=dswa500; if (dxrbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('T'))&&(txtnam8[1]==_T('D'))&&(txtnam8[2]==_T('O'))&&(txtnam8[3]==_T('T'))&&(txtnam8[4]==_T('E'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; if ((txtdxf0[0]==_T('C'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('R'))&&(txtdxf0[3]==_T('C'))&&(txtdxf0[4]==_T('L'))&&(txtdxf0[5]==_T('E'))) goto arc; goto mbb1; arc: if (rr269) { dq=dq-180; goto qq1; } if ((dq<30)||(dq>150)) goto mbb1; dx=dswa500; if (dxrbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('T'))&&(txtnam8[1]==_T('D'))&&(txtnam8[2]==_T('O'))&&(txtnam8[3]==_T('T'))&&(txtnam8[4]==_T('E'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; goto mbb1; arc:if (rr269) { dq=dq-180; goto qq1; } if ((dq<30)||(dq>150)) goto mbb1; dx=dswa500; if (dxq02) q01=q01-360; q01=q01-0.01; q02=q02+0.01; qjadu(pa[0],pa[1],pb[0],pb[1]); q=(qhcjc+90)*pi314/180; x1=arrysa[2][1]; y1=arrysa[2][2]; rr=arrysa[2][3]; pdd[0]=x1; pdd[1]=y1; pee[0]=x1+rr*cos(q); pee[1]=y1+rr*sin(q); if (ads_inters(pa,pb,pdd,pee,0,ppjd)==RTNORM) { dx=x1-ppjd[0]; dy=y1-ppjd[1]; d=sqrt(dx*dx+dy*dy); if (d>rr) return; dx=rr*rr-d*d; if (dx<0) dx=0; dx=sqrt(dx); q=qhcjc*pi314/180; xj1=ppjd[0]+dx*cos(q); yj1=ppjd[1]+dx*sin(q); q=(qhcjc+180)*pi314/180; xj2=ppjd[0]+dx*cos(q); yj2=ppjd[1]+dx*sin(q); qjadu(x1,y1,xj1,yj1); if ((qhcjc>q01)&&(qhcjcq01-360)&&(qhcjcq01+360)&&(qhcjcxb1+jsjdu)&&(xj1>xb2+jsjdu)) goto arc0b; if ((yj1yb1+jsjdu)&&(yj1>yb2+jsjdu)) goto arc0b; arrysa[3][1]=xj1; arrysa[3][2]=yj1; arrysa[3][5]=0; arc0b:qjadu(x1,y1,xj2,yj2); if ((qhcjc>q01)&&(qhcjcq01-360)&&(qhcjcq01+360)&&(qhcjcxb1+jsjdu)&&(xj2>xb2+jsjdu)) return; if ((yj2yb1+jsjdu)&&(yj2>yb2+jsjdu)) return; arrysa[3][1]=xj2; arrysa[3][2]=yj2; arrysa[3][5]=0; } } void ulddarc(int it0) { struct resbuf *ebup,*rb; ads_name ss1,en; int typi,itwa; Adesk::Int32 i,len; ads_real dx,dy,d1,d0,x1,y1,x2,y2,xp1,yp1,xp2,yp2; ads_real q,q1,q2,dq,xp0,yp0,rr,ds; ads_real q01,q02; TCHAR txtdxf0[40]=_T(""),txtnam8[40]=_T(""); ads_point p01,p02; d0=2000; dx=dswa500; if (dxx2) { x1=xp2; x2=xp1; } y1=yp1; y2=yp2; if (y1>y2) { y1=yp2; y2=yp1; } dx=dswa500; if (dxrbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); itwa=0; //modified by whl on 060323 //if (_tcsicmp(txtnam8, LAY_AXIS)==0) goto bbwa; if (_tcsicmp(txtnam8, _T("DOTE"))==0||_tcsicmp(txtnam8, LAY_AXIS)==0) goto bbwa; if ((txtnam8[0]==_T('T'))&&(txtnam8[1]==_T('D'))&&(txtnam8[2]==_T('O'))&&(txtnam8[3]==_T('T'))&&(txtnam8[4]==_T('E'))) { itwa=1; goto bbwa; } // if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) { // itwa=1; // goto bbwa; } goto mbb1; bbwa: //if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; //goto mbb1; //lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1kaq2) kaq1=kaq1-360; if (kaq1kaq2) kaq2=kaq2+360; if (kaq1rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); itwa=0; //if ((txtnam8[0]==_T('T'))&&(txtnam8[1]==_T('D'))&&(txtnam8[2]==_T('O'))&&(txtnam8[3]==_T('T'))&&(txtnam8[4]==_T('E'))) goto bbwa; // goto mbb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; //lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1kaq2) kaq1=kaq1-360; if (kaq1kaq2) kaq2=kaq2+360; if (kaq1rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); // ads_printf(_T("\ngs1=%f,gs2=%f"),gs1,gs2); if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) { xka1=x1; yka1=y1; karr=rr; kaq1=q1; kaq2=q2; ularczf(); goto bb1; } if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) { xdz1=x1; ydz1=y1; xdz2=x2; ydz2=y2; dx=xdz1-xdz2; dy=ydz1-ydz2; d1=sqrt(dx*dx+dy*dy); if (d1rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('T'))&&(txtnam8[1]==_T('D'))&&(txtnam8[2]==_T('O'))&&(txtnam8[3]==_T('T'))&&(txtnam8[4]==_T('E'))) goto bbwa; // goto bb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto bb1; //lin: if ((fabs(xdz1-x1)<1.0E-6) &&(fabs(ydz1-y1)<1.0E-6) &&(fabs(xdz2-x2)<1.0E-6) &&(fabs(ydz2-y2)<1.0E-6)) { igw=igw+1; if (igw>=2) ads_entdel(en); goto bb1; } qjadu(xdz1,ydz1,xdz2,ydz2); q=(qhcjc+90)*pi314/180; p1[0]=x1+ds111*cos(q); p1[1]=y1+ds111*sin(q); q=(qhcjc-90)*pi314/180; p2[0]=x1+ds111*cos(q); p2[1]=y1+ds111*sin(q); p3[0]=xdz1; p3[1]=ydz1; p4[0]=xdz2; p4[1]=ydz2; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto d11; goto bb1; d11:q=(qhcjc+90)*pi314/180; p1[0]=x2+ds111*cos(q); p1[1]=y2+ds111*sin(q); q=(qhcjc-90)*pi314/180; p2[0]=x2+ds111*cos(q); p2[1]=y2+ds111*sin(q); if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) ads_entdel(en); bb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('T'))&&(txtnam8[1]==_T('D'))&&(txtnam8[2]==_T('O'))&&(txtnam8[3]==_T('T'))&&(txtnam8[4]==_T('E'))) goto bbwa; // goto bb1; //bbwa:if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arc; // goto bb1; //arc: if ((fabs(xka1-x1)<1.0E-6) &&(fabs(yka1-y1)<1.0E-6) &&(fabs(karr-rr)<1.0E-6) &&(fabs(kaq1-q1)<1.0E-6) &&(fabs(kaq2-q2)<1.0E-6)) { igw=igw+1; if (igw>=2) ads_entdel(en); goto bb1; } if (fabs(xka1-x1)>1.0E-6 || fabs(yka1-y1)>1.0E-6 || fabs(karr-rr)>1.0E-6) goto bb1; q01=kaq1*180/pi314; q02=kaq2*180/pi314; if (q02q02)) goto bb1; ads_entdel(en); bb1:i=i+1; if (id2) { ds=xka2; xka2=xka1; xka1=ds; ds=yka2; yka2=yka1; yka1=ds; } arry[1][1]=x1; arry[1][2]=y1; arry[1][3]=x2; arry[1][4]=y2; arry[1][5]=0; arry[1][6]=0; arry[2][1]=xka1; arry[2][2]=yka1; arry[2][3]=xka2; arry[2][4]=yka2; arry[2][5]=0; arry[2][6]=0; iarry=3; //ads_printf(_T("\narry[1][1]=%f,arry[1][2]=%f,arry[1][3]=%f,arry[1][4]=%f"),arry[1][1],arry[1][2],arry[1][3],arry[1][4]); //ads_printf(_T("\narry[2][1]=%f,arry[2][2]=%f,arry[2][3]=%f,arry[2][4]=%f"),arry[2][1],arry[2][2],arry[2][3],arry[2][4]); ulin4(); // icolo=icolo+1; // if (ientd==1) { // for (i=1;i1) hlin(arry[i][1],arry[i][2],arry[i][3],arry[i][4],7); // ads_printf(_T("\ni=%d,arry[i][1]=%f,%f,%f,%f"),i,arry[i][1],arry[i][2],arry[i][3],arry[i][4]); // ads_getstring(5,NULL,zf); } // } ulin5(); // 将以转换的墙端点选上 ensspp0 ulin6dd(); ssd:ssdelenpp0(); ads_ssfree(ensspp0); } void tzhatdc(void) { struct resbuf *ebup,*rbp; ads_name en; int typi; Adesk::Int32 len,i; ads_real x1,y1,x2,y2,q1,q2,rr; TCHAR zf[40]=_T(""); i=0; if (ads_sslength(entdwa,&len)==RTNORM) goto bbb; return; bbb:if (len==0) return; ads_ssname(entdwa,i,en); ebup=ads_entget(en); if (ebup==NULL) goto bb1; q1=0; q2=2*pi314; for (rbp=ebup;rbp!=NULL;rbp=rbp->rbnext) { typi=rbp->restype; if (typi==0) _tcscpy(zf,rbp->resval.rstring); if (typi==40) rr=rbp->resval.rreal; if (typi==50) q1=rbp->resval.rreal; if (typi==51) q2=rbp->resval.rreal; if (typi==10) { x1=rbp->resval.rpoint[0]; y1=rbp->resval.rpoint[1]; } if (typi==11) { x2=rbp->resval.rpoint[0]; y2=rbp->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rbp); if ((zf[0]==_T('L'))&&(zf[1]==_T('I'))&&(zf[2]==_T('N'))&&(zf[3]==_T('E'))) goto lin; if ((zf[0]==_T('A'))&&(zf[1]==_T('R'))&&(zf[2]==_T('C'))) goto arc; goto bb1; arc:warcTDWA(x1,y1,q1,q2,rr); ads_entdel(en); goto bb1; lin:wlinTDWA(x1,y1,x2,y2); ads_entdel(en); bb1:i=i+1; if (irbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto mbb1; //bbwa:if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; // goto mbb1; //lin: dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d1179) { dq=dq-180; goto qq1; } if (dq<2) goto mbb1; q=(qhcjc+180)*pi314/180; p1[0]=x1+cos(q); p1[1]=y1+sin(q); q=qhcjc*pi314/180; p2[0]=x2+cos(q); p2[1]=y2+sin(q); p3[0]=arry[1][1]; p3[1]=arry[1][2]; p4[0]=arry[1][3]; p4[1]=arry[1][4]; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) goto lin2; goto mbb1; lin2:dx=x1-pp[0]; dy=y1-pp[1]; d1=sqrt(dx*dx+dy*dy); dx=x2-pp[0]; dy=y2-pp[1]; d2=sqrt(dx*dx+dy*dy); if ((d1>ds111)&&(d2>ds111)) goto mbb1; j=2; jjj: p3[0]=arry[j][1]; p3[1]=arry[j][2]; p4[0]=arry[j][3]; p4[1]=arry[j][4]; if (ads_inters(p1,p2,p3,p4,1,pp)==RTNORM) { // dx=arry[j][1]-pp[0]; dy=arry[j][2]-pp[1]; // d1=sqrt(dx*dx+dy*dy); // dx=arry[j][3]-pp[0]; dy=arry[j][4]-pp[1]; // d2=sqrt(dx*dx+dy*dy); dx=x1-pp[0]; dy=y1-pp[1]; d1=sqrt(dx*dx+dy*dy); dx=x2-pp[0]; dy=y2-pp[1]; d2=sqrt(dx*dx+dy*dy); if ((d1arry[i][1]) xwb1=arry[i][1]; if (ywb1>arry[i][2]) ywb1=arry[i][2]; if (xwb1>arry[i][3]) xwb1=arry[i][3]; if (ywb1>arry[i][4]) ywb1=arry[i][4]; if (xwb2300) return; // ads_printf(_T("\n itn=%d"),itn); if (kaq2>kaq1+359.99) return; itm=0; rr0=karr; q=kaq2*pi314/180; xd1=xka1+rr0*cos(q); yd1=yka1+rr0*sin(q); q01=kaq1-0.001; q02=kaq2+0.001; p01[2]=0; p02[2]=0; rr=10*ds111; p01[0]=xd1-rr; p01[1]=yd1-rr; p02[0]=xd1+rr; p02[1]=yd1+rr; ul112l(p01[0],p01[1],p02[0],p02[1],0); //modified by whl on 060323 //RBList mask(RTDXF0, _T("LINE,ARC"), 8, _T("WALL*"),NULL); XString sLayer; sLayer<<_T("WALL*,")<rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arcjd; goto mbb1; arcjd:dx=xka1-x1; dy=yka1-y1; d1=sqrt(dx*dx+dy*dy); if (d1>ds111) goto mbb1; dx=fabs(karr-rr); if (dx>ds111) goto mbb1; q1=q1*180/pi314; q2=q2*180/pi314; if (q2q01)&&(q1q01-360)&&(q1q01+360)&&(q1q01)&&(q2q01-360)&&(q2q01+360)&&(q2q01)&&(q12q01-360)&&(q12q01+360)&&(q12kaq1+360) q2=q2-360; kaq2=q2; ads_ssfree(ss1); goto sta0; lin:dx=x1-x2; dy=y1-y2; d1=sqrt(dx*dx+dy*dy); if (d110*ds111)&&(d2>10*ds111)) goto mbb1; xdo1=x1; ydo1=y1; xdo2=x2; ydo2=y2; itm=1; if (d2q01)&&(q2q01-360)&&(q2q01+360)&&(q2180) return; // ads_printf(_T("END kaq2=%f"),kaq2); kaq2=q2; if (kaq2300) return; //ads_printf(_T("\n itn=%d"),itn); if (kaq2>kaq1+359.99) return; itm=0; rr0=karr; q=kaq1*pi314/180; xd1=xka1+rr0*cos(q); yd1=yka1+rr0*sin(q); q01=kaq1-0.001; q02=kaq2+0.001; p01[2]=0; p02[2]=0; rr=10*ds111; p01[0]=xd1-rr; p01[1]=yd1-rr; p02[0]=xd1+rr; p02[1]=yd1+rr; ul112l(p01[0],p01[1],p02[0],p02[1],0); //modified by whl on 060323 //RBList mask(RTDXF0, _T("LINE,ARC"), 8, _T("WALL*"),NULL); XString sLayer; sLayer<<_T("WALL*,")<rbnext) { typi=rb->restype; if (typi==0) _tcscpy(txtdxf0,rb->resval.rstring); if (typi==8) _tcscpy(txtnam8,rb->resval.rstring); if (typi==40) rr=rb->resval.rreal; if (typi==50) q1=rb->resval.rreal; if (typi==51) q2=rb->resval.rreal; if (typi==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (typi==11) { x2=rb->resval.rpoint[0]; y2=rb->resval.rpoint[1]; } } ads_relrb(ebup); ads_relrb(rb); //if ((txtnam8[0]==_T('W'))&&(txtnam8[1]==_T('A'))&&(txtnam8[2]==_T('L'))&&(txtnam8[3]==_T('L'))) goto bbwa; // goto mbb1; //bbwa: if ((txtdxf0[0]==_T('L'))&&(txtdxf0[1]==_T('I'))&&(txtdxf0[2]==_T('N'))&&(txtdxf0[3]==_T('E'))) goto lin; if ((txtdxf0[0]==_T('A'))&&(txtdxf0[1]==_T('R'))&&(txtdxf0[2]==_T('C'))) goto arcjd; goto mbb1; arcjd:dx=xka1-x1; dy=yka1-y1; d1=sqrt(dx*dx+dy*dy); if (d1>ds111) goto mbb1; dx=fabs(karr-rr); if (dx>ds111) goto mbb1; q1=q1*180/pi314; q2=q2*180/pi314; if (q2q01)&&(q2q01-360)&&(q2q01+360)&&(q2q01)&&(q1q01-360)&&(q1q01+360)&&(q1q01)&&(q12q01-360)&&(q12q01+360)&&(q12kaq2) q1=q1-360; if (q110*ds111)&&(d2>10*ds111)) goto mbb1; itm=1; xdo1=x1; ydo1=y1; xdo2=x2; ydo2=y2; if (d2q01)&&(q1q01-360)&&(q1q01+360)&&(q1kaq1) q1=q1-360; if ((kaq1-q1)>180) return; kaq1=q1; // ads_printf(_T("\n END kaq1=%f"),kaq1); if (kaq2rbnext) { ires=rb->restype; if (ires==0) _tcscpy(dxfnam,rb->resval.rstring); if (ires==8) _tcscpy(laynam,rb->resval.rstring); if (ires==2) _tcscpy(txtins,rb->resval.rstring); if (ires==41) r41=rb->resval.rreal; if (ires==42) r42=rb->resval.rreal; if (ires==50) q1=rb->resval.rreal; if (ires==10) { x1=rb->resval.rpoint[0]; y1=rb->resval.rpoint[1]; } if (ires==1040) { it=it+1; if (it==1) gs1=rb->resval.rreal; if (it==2) gs2=rb->resval.rreal; if (it==3) gs3=rb->resval.rreal; } } ads_relrb(rbps); ads_relrb(rb); itp=0; it=0; tchyy=0; p1010[0]=0; p1010[1]=0; p1010[2]=0; p1011[0]=0; p1011[1]=0; p1011[2]=0; apps.restype=RTSTR; _tcscpy(buf,_T("WPLINE")); apps.resval.rstring=buf; apps.rbnext=NULL; rbps=ads_entgetx(en,&apps); if (rbps==NULL) goto starb1; for (rb=rbps;rb!=NULL;rb=rb->rbnext) { ires=rb->restype; if (ires==1040) { it=it+1; if (it==1) tchyy=rb->resval.rreal; } if (ires==1010) { if (itp<100) itp=itp+1; if (itp==1) { p1010[0]=rb->resval.rpoint[0]; p1010[1]=rb->resval.rpoint[1]; p1010[2]=rb->resval.rpoint[2]; } if (itp==2) { p1011[0]=rb->resval.rpoint[0]; p1011[1]=rb->resval.rpoint[1]; p1011[2]=rb->resval.rpoint[2]; } } } ads_relrb(rbps); ads_relrb(rb); //if ((laynam[0]==_T('W'))&&(laynam[1]==_T('I'))&&(laynam[2]==_T('N'))&&(laynam[3]==_T('D'))&&(laynam[4]==_T('O'))&&(laynam[5]==_T('W'))) goto strabw; // goto starb1; //strabw:if ((dxfnam[0]==_T('I'))&&(dxfnam[1]==_T('N'))&&(dxfnam[2]==_T('S'))&&(dxfnam[3]==_T('E'))&&(dxfnam[4]==_T('R'))&&(dxfnam[5]==_T('T'))) goto bbin; // goto starb1; //bbin: doork=0; bs=_tstof(txtins); // ads_printf(_T("\ngs1=%f,gs2=%f"),gs1,gs2); if (itp>2) { goto starb1; } // ads_printf(_T("\np1010[0]=%f,tchyy=%f"),p1010[0],tchyy); if (fabs(p1010[0])<1.0E-6) goto starb1; if ((bs>90000.0)&&(fabs(p1010[0])>1.0E-6)) { bs=r41; if (bs<0) bs=-bs; dx=bs*p1010[0]; x01=x1+dx*cos(q1); y01=y1+dx*sin(q1); dx=bs*p1011[0]; x02=x1+dx*cos(q1); y02=y1+dx*sin(q1); // if (tchyy<0) { // dx=xdz1; xdz1=xdz2; xdz2=dx; // dx=ydz1; ydz1=ydz2; ydz2=dx; // tchyy=-tchyy; } dm=bs*p1010[0]; // ulrrxxyy(x01,y01,x02,y02,tchyy,dm); goto dmm; } if (fabs(p1010[0])>1.0E-6) { bs=r41; if (bs<0) bs=-bs; doork=bs/2; dm=p1010[0]; if (dm>0) { x01=x1+doork*cos(q1); y01=y1+doork*sin(q1); x02=x1+doork*cos(q1+pi314); y02=y1+doork*sin(q1+pi314); } else { x02=x1+doork*cos(q1); y02=y1+doork*sin(q1); x01=x1+doork*cos(q1+pi314); y01=y1+doork*sin(q1+pi314); } //ulrrxxyy(x01,y01,x02,y02,tchyy,dm); goto dmm; } goto starb1; dmm:dx=x01-xdo1; dy=y01-ydo1; d1=sqrt(dx*dx+dy*dy); dx=x02-xdo1; dy=y02-ydo1; d2=sqrt(dx*dx+dy*dy); if ((d1>gs1)&&(d2>gs1)) goto starb1; ulrrxxyy(x01,y01,x02,y02,tchyy,dm); starb1:i=i+1; if (i