You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
4.9 KiB
C

//
// Copyright (c) Advantech Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Advantech end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
#if !defined(ADVDXFREADER__INCLUDED_)
#define ADVDXFREADER__INCLUDED_
#ifdef __cplusplus
extern "C"
{
#endif
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
#define ADVDXFREADERAPI __stdcall
#endif
/////////////////////////////////////////////////////////////////////////////
#define CLOSE 1
#define NOT_CLOSE 0
#ifndef SUCCESS
#define SUCCESS 0
#endif
//#define PI 3.1415926535897931
// DXF <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define AtEmptyPathErr 0x01 //·<><C2B7>Ϊ<EFBFBD>մ<EFBFBD><D5B4><EFBFBD>
#define AtFileTypeErr 0x02 //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
#define AtEmptyFileErr 0x03 //<2F>ļ<EFBFBD>Ϊ<EFBFBD>մ<EFBFBD><D5B4><EFBFBD>
//#define AtSerialNumErr 0x04 //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>кų<D0BA><C5B3><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD>
#define AtSampleTypeErr 0x05 //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
#define AtDataLoseErr 0x06 //<2F><><EFBFBD>ݶ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>
#define AtCreatSpaceErr 0x07 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿռ<DDBF>ʧ<EFBFBD>ܣ<EFBFBD>mallocʧ<63>ܣ<EFBFBD>
#define AtInputLocusNumErr 0x08 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECBCA3>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
#define AtLocusPtrErr 0x09 //<2F><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define AtInputSampleNumErr 0x0a //<2F><><EFBFBD><EFBFBD>ͼԪ<CDBC><D4AA>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
#define AtSamplePtrErr 0x0b //ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define AtInputPataErr 0x0c //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>OpenDxf<78><66><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD>
#define CW 0
#define CCW 1
LRESULT ADVDXFREADERAPI AtOpenDXF(char *dxfFilePath, //<2F>ļ<EFBFBD>·<EFBFBD><C2B7>
double Proportion, //CAD<41><44>ʵ<EFBFBD><CAB5>ͼ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>е<EFBFBD>ͼ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
DWORD Ellipse_Cut_Min_Angel, //<2F>ָ<EFBFBD><D6B8><EFBFBD><E9B2B9>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>С<EFBFBD>Ƕ<EFBFBD>
DWORD Spline_Cut_Step //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ֱ<EFBFBD>߶<EFBFBD>
); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
LRESULT ADVDXFREADERAPI AtGetType(DWORD * Type,
DWORD Direction,
DWORD Locus_Num,
DWORD Sample_Num);
LRESULT ADVDXFREADERAPI AtGetArc(double * Center_x, //Բ<><D4B2>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double * Center_y, //Բ<><D4B2>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double * Center_z, //Բ<><D4B2>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double * r, //Բ<><D4B2><EFBFBD>İ뾶
double * Start_X, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
double * Start_Y, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>
double * Start_Z, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>
double * End_X, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
double * End_Y, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
double * End_Z, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
DWORD * MoveDirection, //<2F>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
double * Start_Angle, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>Ƕ<EFBFBD>
double * End_Angle, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>Ƕ<EFBFBD>
DWORD * Plane, //Բ<><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>
DWORD Direction, //<2F><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
DWORD Locus_Num, //<2F><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
DWORD Sample_Num); //ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
LRESULT ADVDXFREADERAPI AtGetLine(double *Start_x, //ֱ<><D6B1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *Start_y, //ֱ<><D6B1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *Start_z, //ֱ<><D6B1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *End_x, //ֱ<><D6B1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *End_y, //ֱ<><D6B1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *End_z, //ֱ<><D6B1><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *k, //ֱ<>ߵ<EFBFBD>б<EFBFBD><D0B1>
DWORD Direction, //<2F><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
DWORD Locus_Num, //<2F><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
DWORD Sample_Num);//ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
LRESULT ADVDXFREADERAPI AtGetPoint(double *Point_x,//Point's x value
double *Point_y,//Point's y value
double *Point_z,//Point's z value
DWORD Direction, //<2F><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
DWORD Locus_Num, //<2F><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
DWORD Sample_Num);//ͼԪ<CDBC><D4AA><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
LRESULT ADVDXFREADERAPI AtGetMostValue( double * Min_x, //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
double * Min_y, //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>
double * Min_z, //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD>
double * Max_x, //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
double * Max_y, //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>
double * Max_z //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD>
);
LRESULT ADVDXFREADERAPI AtGetLocusCount( DWORD * Count); //<2F><>ȡ<EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD>Ŀ
LRESULT ADVDXFREADERAPI AtGetSampleCount(DWORD * Count, //<2F><>Locus_Num<75><6D><EFBFBD><EFBFBD><ECBCA3>ͼԪ<CDBC>ĸ<EFBFBD><C4B8><EFBFBD>
DWORD Locus_Num); //<2F>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD>
LRESULT ADVDXFREADERAPI AtCloseDXF();
#ifdef __cplusplus
}
#endif
#endif