📄 tiaoxingunzi.cpp
字号:
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 + -