⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiaoxingunzi.cpp

📁 基于UG平台
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	 dline2.start_point[2]=0.0;
	 dline2.end_point[0]=m_b/2;
	 dline2.end_point[1]=m_d/2;
	 dline2.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dline2,&line3));
	 UF_CALL(UF_MODL_create_revolution(&line3,1,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign1,&sum,&object));

	 UF_CURVE_line_t dlin1,dlin2,dlin3;
	 tag_t tline1,tline2,tline3;
	 double x6,y6,x9,y9,a2,b2,x,y;
	 x6=-sin(a1-dd)*r;
	 y6=cos(a1-dd)*r;
	 x9=sin(a1+dd)*r-m_b/2;
	 y9=l-cos(a1+dd)*r;
	 a2=(y9-y6)/(x9-x6);
	 b2=y6-a2*x6;
	 y=m_d/2+aa/2;
	 x=(y-b2)/a2;
	 dlin1.start_point[0]=x;
	 dlin1.start_point[1]=y;
	 dlin1.start_point[2]=0.0;
	 dlin1.end_point[0]=-x;
	 dlin1.end_point[1]=y;
	 dlin1.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dlin1,&tline1));
	 dlin2.start_point[0]=x;
	 dlin2.start_point[1]=y;
	 dlin2.start_point[2]=0.0;
	 dlin2.end_point[0]=sin(a1+dd)*r-m_b/2;
	 dlin2.end_point[1]=l-cos(a1+dd)*r;
	 dlin2.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dlin2,&tline2));
	 dlin3.start_point[0]=-x;
	 dlin3.start_point[1]=y;
	 dlin3.start_point[2]=0.0;
	 dlin3.end_point[0]=-sin(a1+dd)*r+m_b/2;
	 dlin3.end_point[1]=l-cos(a1+dd)*r;
	 dlin3.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dlin3,&tline3));
      tag_t add1[4];
	  add1[0]=tline1;
	  add1[1]=tline2;
	  add1[2]=line4;
	  add1[3]=tline3;
	 UF_CALL(UF_MODL_create_revolution(add1,4,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign,&sum,&object));
	


	 int i;
	 for(i=1;i<=m_i;i++)
	 {
	 double fx=sin(a1-dd)*r-m_b/2;
	 double fy=-(l-cos(a1-dd)*r);
	 double sx=sin(a1)*r-m_b/2;
	 double sy=-(l-cos(a1)*r);
	 double tx=sin(a1+dd)*r-m_b/2;
	 double ty=-(l-cos(a1+dd)*r);
	 double first2[3]={fx,fy*cos(rd*i),fy*sin(i*rd)};
     double second2[3]={sx,sy*cos(rd*i),sy*sin(i*rd)};
	 double third2[3]={tx,ty*cos(rd*i),ty*sin(i*rd)};
	 double ff[3]={-fx,fy*cos(rd*i),fy*sin(i*rd)};
	 double ss[3]={-sx,sy*cos(rd*i),sy*sin(i*rd)};
	 double tt[3]={-tx,ty*cos(rd*i),ty*sin(i*rd)};
	 tag_t arcc;
     UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,first2,second2,third2,&arc1));
	 UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,ff,ss,tt,&arcc));
	 
	 UF_OBJ_set_blank_status(arcc,UF_OBJ_BLANKED);

	 double a,b,c,d;
	 a=-sin(a1+dd)*r/2+sin(a1-dd)*r/2-m_b/4;
	 b=-(cos(a1+dd)*r/2+l/2-cos(a1-dd)*r/2);
	 c=-sin(a1-dd)*r/2+sin(a1+dd)*r/2-m_b/4;
	 d=-(l/2-cos(a1+dd)*r/2+cos(a1-dd)*r/2);
	 tag_t daxis,daxis1;
	 double p1[3]={a,b*cos(i*rd),b*sin(i*rd)};
	 double p2[3]={c,d*cos(i*rd),d*sin(i*rd)};
	 double p3[3]={-a,b*cos(i*rd),b*sin(i*rd)};
	 double p4[3]={-c,d*cos(i*rd),d*sin(i*rd)};
	 UF_MODL_create_fixed_daxis(p1,p2,&daxis); 
	 
	 UF_OBJ_set_blank_status(daxis,UF_OBJ_BLANKED);

	 UF_MODL_create_fixed_daxis(p3,p4,&daxis1);

	 UF_OBJ_set_blank_status(daxis,UF_OBJ_BLANKED);

	 UF_CALL(UF_MODL_create_revolution_dir(&arc1,1,trim_date,limit,offset,
		p1,false,true,daxis,sign,&sum,&object)); 
	 UF_CALL(UF_MODL_create_revolution_dir(&arcc,1,trim_date,limit,offset,
		p1,false,true,daxis1,sign,&sum,&object)); 
	
	
	 }

	 UF_OBJ_set_blank_status(line1,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(line3,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(line4,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(tline1,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(tline2,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(tline3,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(arc,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(arc1,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(arc2,UF_OBJ_BLANKED);
	 
	}
	
	if(err==0&&nlist==1)
	{

	UF_CURVE_line_t dline1,dline2,dline3;
     tag_t line1,line3,line4;
	 
	
	 dline1.start_point[0]=-m_b/2;
	 dline1.start_point[1]=m_dd/2;
	 dline1.start_point[2]=0.0;
	 dline1.end_point[0]=m_b/2;
	 dline1.end_point[1]=m_dd/2;
	 dline1.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dline1,&line1));
	
	 int object;
	 tag_t *sum,*sum1;
	 UF_MODL_SWEEP_TRIM_object_p_t trim_date=NULL;
	 char *limit[2]={"0.0","360.0"};
	 char *offset[2]={"0.0","0.0"};
	 double region[3]={0.0,0.0,0.0};
	 double axis_point[3]={0.0,0.0,0.0};
	 double direction[3]={1.0,0.0,0.0};
	 UF_FEATURE_SIGN sign=UF_NULLSIGN;
	 UF_CALL(UF_MODL_create_revolution(&line1,1,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign,&sum1,&object));
	
	 int flag=1;
	 double first[3]={-m_b/2,sqrt(r*r-m_b*m_b/4),0.0};
	 double second[3]={0.0,r,0.0};
	 double third[3]={m_b/2,sqrt(r*r-m_b*m_b/4),0.0};
	 tag_t arc, arc1,arc2;
  
	 UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,first,second,third,&arc));
     UF_FEATURE_SIGN sign1=UF_NEGATIVE;
     UF_CALL(UF_MODL_create_revolution(&arc,1,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign1,&sum1,&object));
  
	 double first1[3]={-m_b/2,m_d/2+aa/4,0.0};
	 double second1[3]={sin(a1)*r-m_b/2,l-cos(a1)*r,0.0};
	 double third1[3]={sin(a1+dd)*r-m_b/2,l-cos(a1+dd)*r,0.0};
     UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,first1,second1,third1,&arc1));
	 double first3[3]={m_b/2,m_d/2+aa/4,0.0};
	 double second3[3]={-sin(a1)*r+m_b/2,l-cos(a1)*r,0.0};
	 double third3[3]={-sin(a1+dd)*r+m_b/2,l-cos(a1+dd)*r,0.0};
     UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,first3,second3,third3,&arc2));
	 dline3.start_point[0]=sin(a1+dd)*r-m_b/2;
	 dline3.start_point[1]=l-cos(a1+dd)*r;
	 dline3.start_point[2]=0.0;
	 dline3.end_point[0]=m_b/2-sin(a1+dd)*r;
	 dline3.end_point[1]=l-cos(a1+dd)*r;
	 dline3.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dline3,&line4));
	 tag_t add[3];
	 add[0]=arc1;
	 add[1]=line4;
	 add[2]=arc2;

     UF_CALL(UF_MODL_create_revolution(add,3,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign,&sum,&object));
	 
	 dline2.start_point[0]=-m_b/2;
	 dline2.start_point[1]=m_d/2;
	 dline2.start_point[2]=0.0;
	 dline2.end_point[0]=m_b/2;
	 dline2.end_point[1]=m_d/2+m_b/12;
	 dline2.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dline2,&line3));
	 UF_CALL(UF_MODL_create_revolution(&line3,1,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign1,&sum,&object));
	
	 UF_CURVE_line_t dlin1,dlin2,dlin3;
	 tag_t tline1,tline2,tline3;
	 double x6,y6,x9,y9,a2,b2,x,y;
	 x6=-sin(a1-dd)*r;
	 y6=cos(a1-dd)*r;
	 x9=sin(a1+dd)*r-m_b/2;
	 y9=l-cos(a1+dd)*r;
	 a2=(y9-y6)/(x9-x6);
	 b2=y6-a2*x6;
	 y=m_d/2+aa/2;
	 x=(y-b2)/a2;
	 dlin1.start_point[0]=x;
	 dlin1.start_point[1]=y;
	 dlin1.start_point[2]=0.0;
	 dlin1.end_point[0]=-x;
	 dlin1.end_point[1]=y;
	 dlin1.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dlin1,&tline1));
	 dlin2.start_point[0]=x;
	 dlin2.start_point[1]=y;
	 dlin2.start_point[2]=0.0;
	 dlin2.end_point[0]=sin(a1+dd)*r-m_b/2;
	 dlin2.end_point[1]=l-cos(a1+dd)*r;
	 dlin2.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dlin2,&tline2));
	 dlin3.start_point[0]=-x;
	 dlin3.start_point[1]=y;
	 dlin3.start_point[2]=0.0;
	 dlin3.end_point[0]=-sin(a1+dd)*r+m_b/2;
	 dlin3.end_point[1]=l-cos(a1+dd)*r;
	 dlin3.end_point[2]=0.0;
	 UF_CALL(UF_CURVE_create_line(&dlin3,&tline3));
      tag_t add1[4];
	  add1[0]=tline1;
	  add1[1]=tline2;
	  add1[2]=line4;
	  add1[3]=tline3;
	 UF_CALL(UF_MODL_create_revolution(add1,4,trim_date,limit,offset,
		 region,false,true,axis_point,direction,sign,&sum,&object));

	 
	 int i;
	 for(i=1;i<=m_i;i++)
	 {
	 double fx=sin(a1-dd)*r-m_b/2;
	 double fy=-(l-cos(a1-dd)*r);
	 double sx=sin(a1)*r-m_b/2;
	 double sy=-(l-cos(a1)*r);
	 double tx=sin(a1+dd)*r-m_b/2;
	 double ty=-(l-cos(a1+dd)*r);
	 double first2[3]={fx,fy*cos(rd*i),fy*sin(i*rd)};
     double second2[3]={sx,sy*cos(rd*i),sy*sin(i*rd)};
	 double third2[3]={tx,ty*cos(rd*i),ty*sin(i*rd)};
	 double ff[3]={-fx,fy*cos(rd*i),fy*sin(i*rd)};
	 double ss[3]={-sx,sy*cos(rd*i),sy*sin(i*rd)};
	 double tt[3]={-tx,ty*cos(rd*i),ty*sin(i*rd)};
	 tag_t arcc;
     UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,first2,second2,third2,&arc1));
	 UF_CALL(UF_CURVE_create_arc_thru_3pts(flag,ff,ss,tt,&arcc)); 

	 UF_OBJ_set_blank_status(arcc,UF_OBJ_BLANKED);

	 double a,b,c,d;
	 a=-sin(a1+dd)*r/2+sin(a1-dd)*r/2-m_b/4;
	 b=-(cos(a1+dd)*r/2+l/2-cos(a1-dd)*r/2);
	 c=-sin(a1-dd)*r/2+sin(a1+dd)*r/2-m_b/4;
	 d=-(l/2-cos(a1+dd)*r/2+cos(a1-dd)*r/2);
	 tag_t daxis,daxis1;
	 double p1[3]={a,b*cos(i*rd),b*sin(i*rd)};
	 double p2[3]={c,d*cos(i*rd),d*sin(i*rd)};
	 double p3[3]={-a,b*cos(i*rd),b*sin(i*rd)};
	 double p4[3]={-c,d*cos(i*rd),d*sin(i*rd)};
     UF_MODL_create_fixed_daxis(p1,p2,&daxis); 

	 UF_OBJ_set_blank_status(daxis,UF_OBJ_BLANKED);

	 UF_MODL_create_fixed_daxis(p3,p4,&daxis1);

	 UF_OBJ_set_blank_status(daxis,UF_OBJ_BLANKED);

	 UF_CALL(UF_MODL_create_revolution_dir(&arc1,1,trim_date,limit,offset,
		p1,false,true,daxis,sign,&sum,&object)); 
	 UF_CALL(UF_MODL_create_revolution_dir(&arcc,1,trim_date,limit,offset,
		p1,false,true,daxis1,sign,&sum,&object)); 

	
	
	 }

	 UF_OBJ_set_blank_status(line1,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(line3,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(line4,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(tline1,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(tline2,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(tline3,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(arc,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(arc1,UF_OBJ_BLANKED);
	 UF_OBJ_set_blank_status(arc2,UF_OBJ_BLANKED);
} 

	
	
}

void Ctiaoxingunzi::OnHelpBtn() 
{
	AfxMessageBox(_T("请与合肥数字化设计中心联系!"));
	
}

void Ctiaoxingunzi::OnCancel() 
{
	
	CDialog::OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -