📄 yuanzhuigunzi.cpp
字号:
dline9.end_point[1]=aa/2/cos(dd)+m_d/2+3*aa/8-tan(dd)*(m_c-m_t+m_b);
dline9.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline9,&line9));
dlinea.start_point[0]=m_b-m_t/2;
dlinea.start_point[1]=aa/2/cos(dd)+m_d/2+3*aa/8-tan(dd)*(m_c-m_t+m_b);
dlinea.start_point[2]=0.0;
dlinea.end_point[0]=m_t/2-m_c+sin(dd)*aa/2;
dlinea.end_point[1]=m_d/2+3*aa/8+cos(dd)*aa/2;
dlinea.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dlinea,&linea));
dlineb.start_point[0]=m_t/2-m_c+sin(dd)*aa/2;
dlineb.start_point[1]=m_d/2+3*aa/8+cos(dd)*aa/2;
dlineb.start_point[2]=0.0;
dlineb.end_point[0]=m_t/2-m_c;
dlineb.end_point[1]=m_d/2+aa*3/8;
dlineb.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dlineb,&lineb));
dlinec.start_point[0]=-m_t/2;
dlinec.start_point[1]=m_d/2;
dlinec.start_point[2]=0.0;
dlinec.end_point[0]=m_t/2;
dlinec.end_point[1]=m_d/2;
dlinec.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dlinec,&linec));
tag_t sum1[4];
sum1[0]=line6;
sum1[1]=line9;
sum1[2]=linea;
sum1[3]=lineb;
tag_t *neiq3,sum[5];
int number3;
sum[0]=line3;
sum[1]=line7;
sum[2]=line4;
sum[3]=line8;
sum[4]=line5;
UF_MODL_create_revolution(sum,5,trim_date,limit,
offset,region,false,true,region,direction,sign,&neiq,&number);
UF_MODL_create_revolution(sum1,4,trim_date,limit,
offset,region,false,true,region,direction,sign1,&neiq3,&number3);
UF_MODL_create_revolution(&linec,1,trim_date,limit,
offset,region,false,true,region,direction,sign1,&neiq3,&number3);
int i;
for(i=1;i<=m_i;i++)
{
double a,b,c,d;
a=m_t/2-m_c+sin(dd)*aa/4;
b=m_d/2+3*aa/8+cos(dd)*aa/4;
c=m_b-m_t/2-sin(dd)*aa/4;
d=aa/2/cos(dd)+m_d/2+3*aa/8-tan(dd)*(m_c-m_t+m_b)-cos(dd)*aa/4;
UF_CURVE_line_t dline16;
tag_t line16;
double startx=m_t/2-m_c;
double starty=m_d/2+3*aa/8;
double endx=m_b-m_t/2-sin(dd)*aa/2;
double endy=aa/2/cos(dd)+m_d/2+3*aa/8-tan(dd)*(m_c-m_t+m_b)-cos(dd)*aa/2;
dline16.start_point[0]=startx;
dline16.start_point[1]=starty*cos(i*rd);
dline16.start_point[2]=starty*sin(i*rd);
dline16.end_point[0]=endx;
dline16.end_point[1]=endy*cos(i*rd);
dline16.end_point[2]=endy*sin(i*rd);
UF_CALL(UF_CURVE_create_line(&dline16,&line16));
UF_OBJ_set_blank_status(line16,UF_OBJ_BLANKED);
double p1[3]={a,b*cos(i*rd),b*sin(i*rd)};
double p2[3]={c,d*cos(i*rd),d*sin(i*rd)};
tag_t daxis,*cly;
int obj;
UF_MODL_create_fixed_daxis(p1,p2,&daxis);
UF_OBJ_set_blank_status(daxis,UF_OBJ_BLANKED);
UF_CALL(UF_MODL_create_revolution_dir(&line16,1,trim_date,limit,offset,
p1,false,true,daxis,sign,&cly,&obj));
}
UF_OBJ_set_blank_status(line1,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line2,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(line5,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line6,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line7,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line8,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line9,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(linea,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(lineb,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(linec,UF_OBJ_BLANKED);
}
if(err==0&&nlist==1)
{
double m_dd=m_D,m_bb1=m_B,m_c1=m_C,m_b1=m_T;
double t=(m_bb1-m_b1)/2;
double aa=(m_dd-m_d)/2;
double x1=m_c1/2, y1=m_dd/2;
double x2=m_c1/2, y2=m_d/2+3*aa/8+aa/2/cos(dd);
double x8=m_b1/2+sin(dd)*aa/2, y8=m_d/2+3*aa/8-tan(dd)*t+tan(dd)*(m_bb1-m_c1)/2+sin(dd)*tan(dd)*aa/2;
double x3=m_b1/2, y3=y8+cos(dd)*aa/2;
double x9=m_b1/2, y9=m_d/2+aa/4;
double x7=t+m_b1/2-(m_bb1-m_c1)/2,y7=m_d/2+aa*3/8;
double x6=x7, y6=m_d/2+aa/2;
double x4=m_bb1/2, y4=m_d/2+aa/2;
double x11=m_c1/2-sin(dd)*aa/2, y11=cos(dd)*aa/2+m_d/2+aa*3/8;
UF_CURVE_line_t dline1,dline2,dline3,dline4,dline5,dline6,dline7,dline8,dline9,dline10,dline11,dline12;
tag_t line1,line2,line3,line4,line5,line6,line7,line8,line9,line10,line11,line12;
dline1.start_point[0]=-x1;
dline1.start_point[1]=y1;
dline1.start_point[2]=0.0;
dline1.end_point[0]=x1;
dline1.end_point[1]=y1;
dline1.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline1,&line1));
dline2.start_point[0]=x1;
dline2.start_point[1]=y1;
dline2.start_point[2]=0.0;
dline2.end_point[0]=x2;
dline2.end_point[1]=y2;
dline2.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline2,&line2));
dline3.start_point[0]=x2;
dline3.start_point[1]=y2;
dline3.start_point[2]=0.0;
dline3.end_point[0]=x3;
dline3.end_point[1]=y3;
dline3.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline3,&line3));
dline4.start_point[0]=x3;
dline4.start_point[1]=y3;
dline4.start_point[2]=0.0;
dline4.end_point[0]=-x3;
dline4.end_point[1]=y3;
dline4.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline4,&line4));
dline5.start_point[0]=-x3;
dline5.start_point[1]=y3;
dline5.start_point[2]=0.0;
dline5.end_point[0]=-x2;
dline5.end_point[1]=y2;
dline5.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline5,&line5));
dline6.start_point[0]=-x2;
dline6.start_point[1]=y2;
dline6.start_point[2]=0.0;
dline6.end_point[0]=-x1;
dline6.end_point[1]=y1;
dline6.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline6,&line6));
tag_t add[6];
add[0]=line1;
add[1]=line2;
add[2]=line3;
add[3]=line4;
add[4]=line5;
add[5]=line6;
dline7.start_point[0]=x9;
dline7.start_point[1]=y9;
dline7.start_point[2]=0.0;
dline7.end_point[0]=x8;
dline7.end_point[1]=y9;
dline7.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline7,&line7));
dline8.start_point[0]=x8;
dline8.start_point[1]=y9;
dline8.start_point[2]=0.0;
dline8.end_point[0]=x8;
dline8.end_point[1]=y8;
dline8.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline8,&line8));
dline9.start_point[0]=x8;
dline9.start_point[1]=y8;
dline9.start_point[2]=0.0;
dline9.end_point[0]=x7;
dline9.end_point[1]=y7;
dline9.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline9,&line9));
dline10.start_point[0]=x7;
dline10.start_point[1]=y7;
dline10.start_point[2]=0.0;
dline10.end_point[0]=x6;
dline10.end_point[1]=y6;
dline10.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline10,&line10));
dline11.start_point[0]=x6;
dline11.start_point[1]=y6;
dline11.start_point[2]=0.0;
dline11.end_point[0]=x4;
dline11.end_point[1]=y4;
dline11.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline11,&line11));
dline12.start_point[0]=-m_bb1/2;
dline12.start_point[1]=m_d/2;
dline12.start_point[2]=0.0;
dline12.end_point[0]=m_bb1/2;
dline12.end_point[1]=m_d/2;
dline12.end_point[2]=0.0;
UF_CALL(UF_CURVE_create_line(&dline12,&line12));
tag_t add1[5];
tag_t *neiq,*waiq;
int number,number1;
add1[0]=line7;
add1[1]=line8;
add1[2]=line9;
add1[3]=line10;
add1[4]=line11;
UF_CALL(UF_MODL_create_revolution(add,6,trim_date,limit,
offset,region,false,true,region,direction,sign,&waiq,&number));
UF_CALL(UF_MODL_create_revolution(add1,5,trim_date,limit,
offset,region,false,true,region,direction,sign,&neiq,&number1));
UF_CALL(UF_MODL_create_revolution(&line12,1,trim_date,limit,
offset,region,false,true,region,direction,sign1,&neiq,&number1));
double dplane_point[3]={0.0,0.0,1.0};
double dplane_direction[3]={1.0,0.0,0.0};
tag_t datum_plane,dplane_tag,body_obj;
UF_MODL_create_fixed_dplane(dplane_point,dplane_direction,&datum_plane);
UF_MODL_ask_feat_body(*neiq,&body_obj);
UF_CALL(UF_MODL_create_mirror_body(body_obj,datum_plane,&dplane_tag));
UF_OBJ_set_blank_status(datum_plane,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(dplane_tag,UF_OBJ_BLANKED);
int i;
for(i=1;i<=m_i;i++)
{
UF_CURVE_line_t rline,rline1;
tag_t rlin,rlin1;
rline.start_point[0]=x3;
rline.start_point[1]=cos(i*rd)*y3;
rline.start_point[2]=sin(i*rd)*y3;
rline.end_point[0]=x11;
rline.end_point[1]=cos(rd*i)*y11;
rline.end_point[2]=sin(i*rd)*y11;
UF_CALL(UF_CURVE_create_line(&rline,&rlin));
rline1.start_point[0]=-x3;
rline1.start_point[1]=cos(i*rd)*y3;
rline1.start_point[2]=sin(i*rd)*y3;
rline1.end_point[0]=-x11;
rline1.end_point[1]=cos(rd*i)*y11;
rline1.end_point[2]=sin(i*rd)*y11;
UF_CALL(UF_CURVE_create_line(&rline1,&rlin1));
UF_OBJ_set_blank_status(rlin,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(rlin1,UF_OBJ_BLANKED);
double dr1=(y3+y8)/2;
double dr2=(y11+y7)/2;
tag_t daxis,*gz,*gzb,daxis1;
int num,num1;
double p1[3]={(x3+x8)/2,dr1*cos(i*rd),dr1*sin(i*rd)};
double p2[3]={(x11+x7)/2,dr2*cos(i*rd),dr2*sin(i*rd)};
UF_MODL_create_fixed_daxis(p1,p2,&daxis);
UF_CALL(UF_MODL_create_revolution_dir(&rlin,1,trim_date,limit,offset,
p1,false,true,daxis,sign,&gz,&num));
double p11[3]={-(x3+x8)/2,dr1*cos(i*rd),dr1*sin(i*rd)};
double p22[3]={-(x11+x7)/2,dr2*cos(i*rd),dr2*sin(i*rd)};
UF_MODL_create_fixed_daxis(p11,p22,&daxis1);
UF_OBJ_set_blank_status(daxis,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(daxis1,UF_OBJ_BLANKED);
UF_CALL(UF_MODL_create_revolution_dir(&rlin1,1,trim_date,limit,offset,
p11,false,true,daxis1,sign,&gzb,&num1));
}
UF_OBJ_set_blank_status(line1,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line2,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(line5,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line6,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line7,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line8,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line9,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line10,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line11,UF_OBJ_BLANKED);
UF_OBJ_set_blank_status(line12,UF_OBJ_BLANKED);
}
CDialog::OnOK();
}
void Cyuanzhuigunzi::OnHelpBtn()
{
AfxMessageBox(_T("请与合肥数字化设计中心联系!"));
}
void Cyuanzhuigunzi::OnCancel()
{
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -