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

📄 tuilishuang.cpp

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

#include "stdafx.h"
#include "Code.h"
#include "tuilishuang.h"
#include"main.h"

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

/////////////////////////////////////////////////////////////////////////////
// Ctuilishuang dialog


Ctuilishuang::Ctuilishuang(CWnd* pParent /*=NULL*/)
	: CDialog(Ctuilishuang::IDD, pParent)
{
	//{{AFX_DATA_INIT(Ctuilishuang)
	m_D = 0.0;
	m_d = 0.0;
	m_T = 0.0;
	m_d1 = 0.0;
	m_D1 = 0.0;
	m_b = 0.0;
	//}}AFX_DATA_INIT
}


void Ctuilishuang::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Ctuilishuang)
	DDX_Control(pDX, IDC_LIST2, m_listctrl2);
	DDX_Control(pDX, IDC_LIST1, m_listctrl1);
	DDX_Text(pDX, IDC_EDIT1, m_D);
	DDX_Text(pDX, IDC_EDIT2, m_d);
	DDX_Text(pDX, IDC_EDIT3, m_T);
	DDX_Text(pDX, IDC_EDIT4, m_d1);
	DDX_Text(pDX, IDC_EDIT5, m_D1);
	DDX_Text(pDX, IDC_EDIT6, m_b);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Ctuilishuang, CDialog)
	//{{AFX_MSG_MAP(Ctuilishuang)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	ON_BN_CLICKED(IDOK2, OnHelpBtn)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Ctuilishuang message handlers

BOOL Ctuilishuang::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_52000] like 'Z_52000'"));

		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("dd"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(2,_T("D"),LVCFMT_LEFT,50);       	
        m_listctrl2.InsertColumn(3,_T("T"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(4,_T("d1"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(5,_T("D1"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(6,_T("r"),LVCFMT_LEFT,50);
	    m_listctrl2.InsertColumn(7,_T("B"),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 Ctuilishuang::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 Ctuilishuang::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CString D,daihao,dd1,D1,B1,dd21,D21,r1,dda1,Da1,ra1,Cr1,C0r1,Dw1,Z1,d,T1,dd11,D11,b;
    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);	
	         
		    this->m_ADORecordset.Open(this->m_ADODatabase.GetActiveConnection(), _T("select * from Z_52000 where dd like '"+D+"'"));
            while(!this->m_ADORecordset.IsEof()) 
			{
               	this->m_ADORecordset.GetFieldValue("ID_52000", daihao);	
				
				this->m_ADORecordset.GetFieldValue("dd", dd1);	
				this->m_ADORecordset.GetFieldValue("D", D1);	
				this->m_ADORecordset.GetFieldValue("T1", T1);	
				this->m_ADORecordset.GetFieldValue("d1", dd11);	
				this->m_ADORecordset.GetFieldValue("D2", D11);	
				this->m_ADORecordset.GetFieldValue("r", r1);
				this->m_ADORecordset.GetFieldValue("B", b);	
	
				
				
             	m_listctrl2.InsertItem(j,daihao);
			    m_listctrl2.SetItemText(j,2,D1);
				m_listctrl2.SetItemText(j,3,T1);
			    m_listctrl2.SetItemText(j,4,dd11);	
				m_listctrl2.SetItemText(j,5,D11);
		    	m_listctrl2.SetItemText(j,6,r1);
				m_listctrl2.SetItemText(j,7,b);

		        m_listctrl2.SetItemText(j,1,dd1);

		    	this->m_ADORecordset.MoveNext();
				j=j+1;
			} 

		}
	}

  	 UpdateData(false);
		 

	
	*pResult = 0;
}

void Ctuilishuang::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,2));
	  m_d=strtodouble(m_listctrl2.GetItemText(m,1));
	  m_T=strtodouble(m_listctrl2.GetItemText(m,3));
	  m_d1=strtodouble(m_listctrl2.GetItemText(m,4));
	  m_D1=strtodouble(m_listctrl2.GetItemText(m,5));
	  m_b=strtodouble(m_listctrl2.GetItemText(m,7));
	 
	}
  }	
    UpdateData(false);	
	

	
	*pResult = 0;
}

void Ctuilishuang::OnOK() 
{
	double m_dd=m_D,m_t=m_T,m_dd1=m_D1;
    int m_i=12;
	UpdateData();
  
	UF_FEATURE_SIGN sign=UF_NULLSIGN,sign1=UF_NEGATIVE;
    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 direction[3]={0.0,1.0,0.0};
	   double aa=(m_t-m_b)/4;
	   double a2=(m_dd-m_d1)/2;
	   UF_CURVE_line_t dline1,dline2,dline3,dline4,dline5,dline6;
	   tag_t line1,line2,line3,line4,line5,line6;
	
	   dline1.start_point[0]=m_dd/2;
       dline1.start_point[1]=0.0;
       dline1.start_point[2]=0.0;
	   dline1.end_point[0]=m_dd/2;
	   dline1.end_point[1]=7*aa/6;
	   dline1.end_point[2]=0.0;
	   UF_CALL(UF_CURVE_create_line(&dline1,&line1));

	   dline2.start_point[0]=m_d1/2;
       dline2.start_point[1]=0.0;
       dline2.start_point[2]=0.0;
	   dline2.end_point[0]=m_d1/2;
	   dline2.end_point[1]=7*aa/6;
	   dline2.end_point[2]=0.0;
	   UF_CALL(UF_CURVE_create_line(&dline2,&line2));

	   dline3.start_point[0]=m_dd1/2;
       dline3.start_point[1]=2*aa;
       dline3.start_point[2]=0.0;
	   dline3.end_point[0]=m_dd1/2;
	   dline3.end_point[1]=2*aa+m_b;
	   dline3.end_point[2]=0.0;
	   UF_CALL(UF_CURVE_create_line(&dline3,&line3));

	   dline4.start_point[0]=m_d/2;
       dline4.start_point[1]=2*aa;
       dline4.start_point[2]=0.0;
	   dline4.end_point[0]=m_d/2;
	   dline4.end_point[1]=2*aa+m_b;
	   dline4.end_point[2]=0.0;
	   UF_CALL(UF_CURVE_create_line(&dline4,&line4));

	   dline5.start_point[0]=m_dd/2;
       dline5.start_point[1]=m_t;
       dline5.start_point[2]=0.0;
	   dline5.end_point[0]=m_dd/2;
	   dline5.end_point[1]=m_t-7*aa/6;
	   dline5.end_point[2]=0.0;
	   UF_CALL(UF_CURVE_create_line(&dline5,&line5));

	   dline6.start_point[0]=m_d1/2;
       dline6.start_point[1]=m_t;
       dline6.start_point[2]=0.0;
	   dline6.end_point[0]=m_d1/2;
	   dline6.end_point[1]=m_t-7*aa/6;
	   dline6.end_point[2]=0.0;
       UF_CALL(UF_CURVE_create_line(&dline6,&line6));
	   tag_t *quan1,*quan2,*quan3;
	   int num1,num2,num3;
	   double first[3]={m_d1/2+a2/2,7*aa/6,0.0};
	   double second[3]={m_d1/2+a2/2+aa/2,5*aa/3,0.0};
	   double third[3]={m_d1/2+a2/2,13*aa/6,0.0};
	   double first1[3]={m_d1/2+a2/2,m_t-7*aa/6,0.0};
	   double second1[3]={m_d1/2+a2/2+aa/2,m_t-5*aa/3,0.0};
	   double third1[3]={m_d1/2+a2/2,m_t-13*aa/6,0.0};
	   tag_t arc1,arc2;
	   UF_CALL(UF_CURVE_create_arc_thru_3pts(2,first,third,second,&arc1));
	   UF_CALL(UF_CURVE_create_arc_thru_3pts(2,first1,third1,second1,&arc2));
       UF_OBJ_set_blank_status(arc1,UF_OBJ_BLANKED); 
	   UF_OBJ_set_blank_status(arc2,UF_OBJ_BLANKED);


    UF_CALL(UF_MODL_create_revolution(&line1,1,trim_date,limit,offset,region,
		false,true,region,direction,sign,&quan1,&num1));
	UF_CALL(UF_MODL_create_revolution(&line2,1,trim_date,limit,offset,region,
		false,true,region,direction,sign1,&quan1,&num1));
	UF_CALL(UF_MODL_create_revolution(&line3,1,trim_date,limit,offset,region,
		false,true,region,direction,sign,&quan2,&num2));
	UF_CALL(UF_MODL_create_revolution(&line4,1,trim_date,limit,offset,region,
		false,true,region,direction,sign1,&quan2,&num2));
		UF_CALL(UF_MODL_create_revolution(&arc1,1,trim_date,limit,offset,region,
		false,true,region,direction,sign1,&quan2,&num2));
			UF_CALL(UF_MODL_create_revolution(&arc2,1,trim_date,limit,offset,region,
		false,true,region,direction,sign1,&quan2,&num2));
	UF_CALL(UF_MODL_create_revolution(&line5,1,trim_date,limit,offset,region,
		false,true,region,direction,sign,&quan3,&num3));
	UF_CALL(UF_MODL_create_revolution(&line6,1,trim_date,limit,offset,region,
		false,true,region,direction,sign1,&quan3,&num3));


	 char buffer[40];
	 double source=aa;
     _gcvt(source,40,buffer);
	int i;
	double angle=2*3.1415926/m_i;
	double r=m_d1/2+a2/2;
	tag_t sphere,sphere1;
	for(i=1;i<=m_i;i++)
	{   
		double center[3]={cos(i*angle)*r,3*aa/2+aa/6,sin(i*angle)*r};
		double center1[3]={cos(i*angle)*r,m_t-3*aa/2-aa/6,sin(i*angle)*r};
		UF_MODL_create_sphere1(sign,center,buffer,&sphere);
		UF_MODL_create_sphere1(sign,center1,buffer,&sphere1);

   }	
	 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);
	 
	
	CDialog::OnOK();
}

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

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

⌨️ 快捷键说明

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