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

📄 zhoucheng2.cpp

📁 基于UG平台
💻 CPP
字号:
// ZhouCheng2.cpp : implementation file
//

#include "stdafx.h"
#include "Code.h"
#include "ZhouCheng2.h"
#include "atlconv.h"
#include"main.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// ZhouCheng2 dialog


ZhouCheng2::ZhouCheng2(CWnd* pParent /*=NULL*/)
	: CDialog(ZhouCheng2::IDD, pParent)
{
	//{{AFX_DATA_INIT(ZhouCheng2)
	m_D = 0.0;
	m_B = 0.0;
	m_d2 = 0.0;
	m_D2 = 0.0;
	m_r = 0.0;
	m_Dw = 0.0;
	m_Z = 0.0;
	m_d = 0.0;
	m_TXCT = FALSE;
	//}}AFX_DATA_INIT
}


void ZhouCheng2::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(ZhouCheng2)
	DDX_Control(pDX, IDC_LIST5, m_listctrl2);
	DDX_Control(pDX, IDC_LIST3, m_listctrl1);
	DDX_Text(pDX, IDC_EDIT1, m_D);
	DDX_Text(pDX, IDC_EDIT2, m_B);
	DDX_Text(pDX, IDC_EDIT3, m_d2);
	DDX_Text(pDX, IDC_EDIT4, m_D2);
	DDX_Text(pDX, IDC_EDIT5, m_r);
	DDX_Text(pDX, IDC_EDIT6, m_Dw);
	DDX_Text(pDX, IDC_EDIT7, m_Z);
	DDX_Text(pDX, IDC_EDIT8, m_d);
	DDX_Check(pDX, IDC_CHECK1, m_TXCT);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(ZhouCheng2, CDialog)
	//{{AFX_MSG_MAP(ZhouCheng2)
	ON_NOTIFY(NM_CLICK, IDC_LIST3, OnClickList1)
	ON_NOTIFY(NM_CLICK, IDC_LIST5, OnClickList2)
	ON_BN_CLICKED(IDC_BUTTON1, OnHuitu)
	ON_BN_CLICKED(IDC_BUTTON2, OnHelpBtn)
	ON_BN_CLICKED(IDC_BUTTON4, OnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// ZhouCheng2 message handlers

BOOL ZhouCheng2::OnInitDialog() 
{
	CDialog::OnInitDialog();
 
   try{	
		m_ADODatabase.SetConnectionString(_T("Provider=SQLOLEDB.1;Password=00;User ID=david;Initial Catalog=chuandong;Data Source=acer"));
		m_ADODatabase.Open();
		BOOL b = m_ADODatabase.IsOpen(); 
	    this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from ZGB_d where [Z_60000] like 'Z_60000'"));

		CString d1;
	    int i=0;
		m_listctrl1.InsertColumn(0,_T("d"),LVCFMT_LEFT,50);
		m_listctrl2.InsertColumn(0,_T("型号"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(1,_T("D"),LVCFMT_LEFT,50);
        m_listctrl2.InsertColumn(2,_T("B"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(3,_T("d2"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(4,_T("D2"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(5,_T("r"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(6,_T("da"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(7,_T("Da"),LVCFMT_LEFT,50);
        m_listctrl2.InsertColumn(8,_T("ra"),LVCFMT_LEFT,50);
        m_listctrl2.InsertColumn(9,_T("Cr"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(10,_T("Cor"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(11,_T("Dw"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(12,_T("Z"),LVCFMT_LEFT,50);
		while(!this->m_ADORecordset.IsEof())
		{
			this->m_ADORecordset.GetFieldValue("d", d1);	
       		m_listctrl1.InsertItem(i,d1);
			this->m_ADORecordset.MoveNext();
			i=i+1;
		}
   }
	catch (_com_error e)
		{
		AfxMessageBox(CString(e.ErrorMessage()));
		}
   		UpdateData(false);	
    	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
 
}  
        


	double ZhouCheng2::strtodouble(CString pp1)
	{
		double xpp;
		char   *pszTemp=pp1.GetBuffer(0);
		int   nLength   =   strlen(pszTemp);  
		char   *xp   =   new   char[nLength   +   1]; 
		strcpy(xp,   pszTemp);  
		xp[nLength]   =   '\0';
		xpp=atof(xp);
		return xpp;
	}



void ZhouCheng2::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CString D,daihao,dd1,D1,B1,dd21,D21,r1,dda1,Da1,ra1,Cr1,C0r1,Dw1,Z1;
    int j=0,k;
	int  nItemCount=m_listctrl2.GetItemCount();
	for(k=nItemCount-1;k>=0;k--)
	{
        m_listctrl2.DeleteItem(k);  
	}

	for(int i=0;i<m_listctrl1.GetItemCount();i++)
	{
		if(m_listctrl1.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
		{
            D=m_listctrl1.GetItemText(i,0);	
			m_d=strtodouble(D);
		    this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Z_60000 where dd like '"+D+"'"));
            while(!this->m_ADORecordset.IsEof())
			{
               	this->m_ADORecordset.GetFieldValue("ID_60000", daihao);	
				this->m_ADORecordset.GetFieldValue("dd", dd1);	
				this->m_ADORecordset.GetFieldValue("D", D1);	
				this->m_ADORecordset.GetFieldValue("B", B1);	
				this->m_ADORecordset.GetFieldValue("dd2", dd21);	
				this->m_ADORecordset.GetFieldValue("D2", D21);	
				this->m_ADORecordset.GetFieldValue("r", r1);	
				this->m_ADORecordset.GetFieldValue("dda", dda1);	
				this->m_ADORecordset.GetFieldValue("Da", Da1);	
		    	this->m_ADORecordset.GetFieldValue("ra", ra1);	
				this->m_ADORecordset.GetFieldValue("Cr", Cr1);	
				this->m_ADORecordset.GetFieldValue("C0r", C0r1);	
				this->m_ADORecordset.GetFieldValue("Dw", Dw1);	
		    	this->m_ADORecordset.GetFieldValue("Z", Z1);
				

               	m_listctrl2.InsertItem(j,daihao);
			    m_listctrl2.SetItemText(j,1,D1);
				m_listctrl2.SetItemText(j,2,B1);
			    m_listctrl2.SetItemText(j,3,dd21);
		     	m_listctrl2.SetItemText(j,4,D21);
		    	m_listctrl2.SetItemText(j,5,r1);
		    	m_listctrl2.SetItemText(j,6,dda1);
		    	m_listctrl2.SetItemText(j,7,Da1);
		    	m_listctrl2.SetItemText(j,8,ra1);
		    	m_listctrl2.SetItemText(j,9,Cr1);
		    	m_listctrl2.SetItemText(j,10,C0r1);
		    	m_listctrl2.SetItemText(j,11,Dw1);
		    	m_listctrl2.SetItemText(j,12,Z1);

		    	this->m_ADORecordset.MoveNext();
				j=j+1;
			}       
		}
	}
    UpdateData(false);	
	 
	*pResult = 0;
}

void ZhouCheng2::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	
  m_listctrl2.SetExtendedStyle(LVS_EX_FULLROWSELECT); 
  for(int m=0;m<m_listctrl2.GetItemCount();m++)
  {
    if(m_listctrl2.GetItemState(m,LVIS_SELECTED)==LVIS_SELECTED)
	{
      m_D=strtodouble(m_listctrl2.GetItemText(m,1));
	  m_B=strtodouble(m_listctrl2.GetItemText(m,2));
      m_d2=strtodouble(m_listctrl2.GetItemText(m,3));
	  m_D2=strtodouble(m_listctrl2.GetItemText(m,4));
	  m_r=strtodouble(m_listctrl2.GetItemText(m,5));
	  m_Dw=strtodouble(m_listctrl2.GetItemText(m,11));
	  m_Z=strtodouble(m_listctrl2.GetItemText(m,12));
	}
  }	
    UpdateData(false);	
	
	*pResult = 0;
}

void ZhouCheng2::OnHuitu() 
{
	double P1[3],P2[3],P3[3],P4[3], P5[3],P6[3],P7[3],P8[3],P9[3];
	        
	        P1[0]=-m_B/2,	      P2[0]=m_B/2,
			P1[1]=m_d/2,          P2[1]=m_d/2,
			P1[2]=0,              P2[2]=0;

			P3[0]=m_B/2,	      P4[0]=-m_B/2,
			P3[1]=m_d2/2,         P4[1]=m_d2/2,
			P3[2]=0,              P4[2]=0;

			P5[0]=-m_B/2,	      P6[0]=m_B/2,
			P5[1]=m_D2/2,         P6[1]=m_D2/2,
			P5[2]=0,              P6[2]=0;

 			
			P7[0]=m_B/2,          P8[0]=-m_B/2,
			P7[1]=m_D/2,          P8[1]=m_D/2,
			P7[2]=0,              P8[2]=0;



            P9[0]=0,  P9[1]= m_d2/4+m_D2/4,  P9[2]=0;
			m_Dw=(m_D-m_d)/4;


		int errorCode = UF_initialize(); 
  
		if ( 0 == errorCode ) 
		{ 
      
	 tag_t line1,line2,line3,line4,line5,line6,line7,line8; 
	 UF_CURVE_line_t sline1,sline2,sline3,sline4,sline5,sline6,sline7,sline8; 
	 sline1.start_point[0]=P1[0];   
	 sline1.start_point[1]=P1[1]; 
	 sline1.start_point[2]=P1[2]; 
	 sline1.end_point[0]=P2[0]; 
	 sline1.end_point[1]=P2[1]; 
	 sline1.end_point[2]=P2[2];                          
        
	UF_CURVE_create_line(&sline1,&line1);
	UF_CURVE_ask_line_data(line1 ,&sline1) ;

      sline2.start_point[0]=sline1.end_point[0];   
      sline2.start_point[1]=sline1.end_point[1]; 
      sline2.start_point[2]=sline1.end_point[2]; 
      sline2.end_point[0]=P3[0] ; 
      sline2.end_point[1]=P3[1]; 
      sline2.end_point[2]=P3[2];  
        
	UF_CURVE_create_line(&sline2,&line2);
	UF_CURVE_ask_line_data(line2 ,&sline2) ;

	  sline3.start_point[0]=sline2.end_point[0];   
      sline3.start_point[1]=sline2.end_point[1]; 
      sline3.start_point[2]=sline2.end_point[2]; 
      sline3.end_point[0]=P4[0] ; 
      sline3.end_point[1]=P4[1]; 
      sline3.end_point[2]=P4[2]; 
	  UF_CURVE_create_line(&sline3,&line3);
      UF_CURVE_ask_line_data(line3 ,&sline3) ;
 

      sline4.start_point[0]=sline3.end_point[0];   
      sline4.start_point[1]=sline3.end_point[1]; 
      sline4.start_point[2]=sline3.end_point[2]; 
      sline4.end_point[0]=sline1.start_point[0]; 
      sline4.end_point[1]=sline1.start_point[1]; 
      sline4.end_point[2]=sline1.start_point[2]; 
	  UF_CURVE_create_line(&sline4,&line4);  

      sline5.start_point[0]= P5[0];  
	  sline5.start_point[1]= P5[1] ;  
	  sline5.start_point[2]= P5[2] ; 
	  sline5.end_point[0]=   P6[0];
	  sline5.end_point[1]=   P6[1]; 
	  sline5.end_point[2]=   P6[2]; 
	  UF_CURVE_create_line(&sline5,&line5);  
	  UF_CURVE_ask_line_data(line5 ,&sline5);

	   sline6.start_point[0]= sline5.end_point[0]; 
	   sline6.start_point[1]= sline5.end_point[1]; 
	   sline6.start_point[2]= sline5.end_point[2];
	   sline6.end_point[0]=P7[0]; 
	   sline6.end_point[1]=P7[1]; 
	   sline6.end_point[2]=P7[2]; 
	   UF_CURVE_create_line(&sline6,&line6); 
	   UF_CURVE_ask_line_data(line6 ,&sline6);

	   sline7.start_point[0]= sline6.end_point[0]; 
	   sline7.start_point[1]= sline6.end_point[1]; 
	   sline7.start_point[2]= sline6.end_point[2]; 
	   sline7.end_point[0]= P8[0]; 
	   sline7.end_point[1]= P8[1]; 
	   sline7.end_point[2]= P8[2];; 
       UF_CURVE_create_line(&sline7,&line7);
	   UF_CURVE_ask_line_data(line7 ,&sline7);

	   sline8.start_point[0]= sline7.end_point[0];
	   sline8.start_point[1]= sline7.end_point[1];
	   sline8.start_point[2]= sline7.end_point[2];
	   sline8.end_point[0]=sline5.start_point[0];
	   sline8.end_point[1]=sline5.start_point[1];
	   sline8.end_point[2]=sline5.start_point[2];
	   UF_CURVE_create_line(&sline8,&line8);


	  int   obj_count;
	  UF_FEATURE_SIGN  mode_sign=UF_NULLSIGN;
	  tag_t  generators[4], *objects,generators1[4];
	  char  *body_limit[2]={"0.0","360.0"};
	  char  *offsets[2]={"0.0","0.0"};
	  double origin[3]={0.0,0.0,0.0};
	  double direction[3]={1.0,0.0,0.0};
	  UF_MODL_SWEEP_TRIM_object_p_t trim_data=NULL;

	    generators[0]=line1;
		generators[1]=line2;
		generators[2]=line3;
		generators[3]=line4;

  	    generators1[0]=line5;
 	    generators1[1]=line6;
 	    generators1[2]=line7;
 	    generators1[3]=line8; 
	 
	 
 	  UF_MODL_create_revolution(generators,4,trim_data,body_limit,
 			offsets,	origin,false,true,origin,direction,
 		mode_sign,&objects,&obj_count); 


 	int create_flag=2;
	double first1_point[3]={m_Dw/2,P9[1],0},second1_point[3]={0,m_Dw/2+P9[1],0},third1_point[3]={-m_Dw/2,P9[1],0};
    tag_t  arc ;
    UF_CURVE_create_arc_thru_3pts(create_flag,first1_point,second1_point,third1_point,&arc );
 
     int   obj_count2;
 	 tag_t  *objects2;
	 UF_FEATURE_SIGN  mode_sign1=UF_NEGATIVE;

 	UF_MODL_create_revolution(&arc,1,trim_data,body_limit,
			offsets,	origin,false,true,origin,direction,
			mode_sign1,&objects2,&obj_count2);  

	   int    obj_count1;
 	   tag_t  *objects1;
	   UF_MODL_create_revolution(generators1,4,trim_data,body_limit,
			offsets,	origin,false,true,origin,direction,
			mode_sign,&objects1,&obj_count1); 


	  	UF_MODL_create_revolution(&arc,1,trim_data,body_limit,
			offsets,	origin,false,true,origin,direction,
			mode_sign1,&objects2,&obj_count2);  


		UF_FEATURE_SIGN   sign=UF_NULLSIGN;
		tag_t sp;
		double i,z,y ;
		char len1[120];
		int sig=15;    
     
        gcvt(m_Dw,sig,len1);	
		  
		  for (i=0;i<=359;i=i+30 )
		{

		    y=P9[1]*sin(i*DEGRA);
			z=P9[1]*cos(i*DEGRA);	    
		    
			double  center[3]={0,y,z};           
			char  *diam= len1;		                                 
			tag_t  sphere_tag;

		UF_MODL_create_sphere (sign,sp,center,diam,&sphere_tag);
		}

              UF_OBJ_set_blank_status(arc,UF_OBJ_BLANKED);
			  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);
			 


 			  errorCode = UF_terminate(); 
  
		} 
		
}

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

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



⌨️ 快捷键说明

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