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

📄 ellipsoid_ump.h

📁 曲面加工程序源码,用C++编写的加工曲线曲面的程序
💻 H
字号:
#if !defined(__ellipsoid_ump_h)
#define __ellipsoid_ump_h


#include "vector.h"
#include "face.h"

class ellipsoid_ump:public face {
 private:
	//-------------Difinition of ellipsoid_ump-------------
	//
	//--basic quation of ellipsoid_ump is
   //(xo/cx)^2+(yo/cy)^2+(zo/cz)^2==1

   //--machine coordinate
   //(x,y,z)

   //--rotation
   //t(theta) = 13*degree
   //         = rx_setup + rx_design
   //|xo|   | cos(t) 0    sin(t)| |x|   |dx|
   //|yo| = | 0      1      0   | |y| + | 0|
   //|zo|   | 0   -sin(t) cos(t)| |z|   |dz|
   //
   //--constants    for UMP 2000.02.07
   // cy=cz=134.6465624
   // cx=1009.024131
   // dx= 925.0
   // dz= 53.7931
   //
   // h_plane=??11.6-1.64+2.

   //

	//-------------------------------------------------
	double cx; //[mm]
	double cy; //[mm]
	double cz; //[mm]

   double dx; //[mm]
   double dy; //[mm]
   double dz; //[mm]

   double rx_design; //rotation around x-axis(form)  [deg]
   double rx_setup;//rotation araound x-axis(setup)  [deg]

   double h_plane;//plane height [mm]

   double z_top;//z_top[mm]

 public:
	// Constractor and destractor
	ellipsoid_ump();
	virtual ~ellipsoid_ump();

   //equations for calcuration
   bool InMirrorArea(double x,double y);
   bool InMirrorBody(double x,double y,double z);

   int AreaJudgement(double x,double y, double &z);
   
   double PlaneZ(double x,double y);

   double MirrorZ(double x,double y);
   double MirrorgradX(double x,double y);
   double MirrorgradY(double x,double y);
   double MirrorgradXX(double x,double y);
   double MirrorgradYY(double x,double y);

        //form equations
	double GetZ( double x, double y);
	vector GetPosition( double x, double y);

	double gradX(double x, double y);
	double gradY(double x, double y);
	double gradXX(double x, double y);
	double gradYY(double x, double y);

	// This is the normal vector of surface on the point(x,y).
	// This is toward the inside of troidal.
	// This.length is 1.
	vector NormalVector ( double x, double y);
	vector NormalVector ( vector position);

	////GradientVector////////////////////////////////////////////
	// This is one of tangential vactors on the tangential plane.
	// This is toward direction which has the largest gradient.
	// This length is 1.
	vector GradientVector(double x, double y);
	vector GradientVector( vector position);

	////NoGradientVector///////////////////////////////////////////
	// This is one of tangential vactors on the tangential plane.
	// This is toward direction which has no gradient.
	//// This length will be 1,
	//// and this Z-coordinate will be Zero.
	vector NoGradientVector(double x,double y);
	vector NoGradientVector(vector position);

	int WriteFaceName(ofstream&);
	int WriteParameters(ofstream&);

        //980519
        void SetParameter(TStringList *str);
        void GetParameter(TStringList *str);

};	//end of ellipsoid_ump class
#endif




⌨️ 快捷键说明

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