?? compublic.h
字號(hào):
/**********************************************************************************
*
* 文件: <ComPublic.h>
*
* 環(huán)境: AutoCAD20000
* 功用: 通用程序接口
* 版本: 1.0 (2002)
* 編寫(xiě): 孔繁星 2002-07-08( 09:59:59 )
* 版權(quán): 南京李方軟件開(kāi)發(fā)有限公司(保留版權(quán)所有)
*
* E-mail:kfx2002@163.com
*
***********************************************************************************/
#if !defined(HDPROJECT_KFX_19800927_NANJINGLIFANGSOFT)
#define HDPROJECT_KFX_19800927_NANJINGLIFANGSOFT
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afx.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include "adesk.h"
#include "aced.h"
#include "adslib.h"
#include "acdb.h"
#include "dbsymtb.h"
#include "dbents.h"
#include "dbgroup.h"
#include "dbhatch.h"
#include "dbpl.h" // for AcDbPolyline LWPOLYLINE
#include "dbxrecrd.h"
#include "dbelipse.h"
#include "geassign.h"
#include "gepnt2d.h"
#include "gepnt3d.h"
#include "gept2dar.h" // for AcGePoint2dArray
#include "gevec2d.h"
#include "gevec3d.h"
#include "geplin2d.h"
#include "gemat3d.h"
#include "gevptar.h"
#include "rxdefs.h"
#include "rxregsvc.h" // unlock application
#include "rxobject.h"
#include "rxregsvc.h"
#define CMD_off {struct resbuf rBc;\
ads_getvar("CMDECHO", &rBc);\
rBc.resval.rint = (int) false;\
ads_setvar("CMDECHO", &rBc);}
#define CMD_on {struct resbuf rBcc;\
ads_getvar("CMDECHO", &rBcc);\
rBcc.resval.rint = (int) true;\
ads_setvar("CMDECHO", &rBcc);}
#define PI 3.14159265358979323846
#define FG618 0.618033988749894848204586834365
#define FG382 0.381966011250105151795413165635
#define INFINITY 1.0e8
#define PARTICLE 1.0e-8
#define PER PI / 2.0
#define PER2 PI
#define PER3 PI / 2.0 * 3.0
#define DIM_DIST 5
//==============================小型函數(shù)類==========================================
#define Spoint(pt, x, y, z) pt[0] = (x); pt[1] = (y); pt[2] = (z)//付值點(diǎn)
#define Cpoint(d, s) d[0] = s[0]; d[1] = s[1]; d[2] = s[2] //點(diǎn)復(fù)制
#define ELEMENTS(array) (sizeof(array)/sizeof((array)[0])) //申請(qǐng)空間
#define D_TO_R(x) ((x) / 180.0 * PI) //角度弧變
#define R_TO_D(x) ((x) / PI * 180)
#define EQ_2DPOINT(pt1, pt2) (pt1[X] = pt2[X], pt1[Y] = pt2[Y]) //2D點(diǎn)的復(fù)制
#define EQ_POINT(pt1, pt2) (pt1[X] = pt2[X], pt1[Y] = pt2[Y], pt1[Z] = pt2[Z]) //點(diǎn)的復(fù)制
#define XYZ_POINT(pt, x, y, z) (pt[X] = x, pt[Y] = y, pt[Z] = z)//付值點(diǎn)
#define XY_POINT(pt, x, y) (pt[X] = x, pt[Y] = y, pt[Z] = 0)//二點(diǎn)復(fù)制
#define XY_GEPOINT(pt, x, y) (pt[X] = x, pt[Y] = y)//二點(diǎn)復(fù)制
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
#define BOUND(no,lit1,lit2) (no > lit1 - PARTICLE && no < lit2 +\
PARTICLE || no > lit2 - PARTICLE && no < lit1 + PARTICLE)
#define XUAN(a,b) sqrt((a) * (a) + (b) * (b))
#define REDRAW CMD_off;ads_command(RTSTR,"REDRAW",NULL);CMD_on
typedef struct {
char str[10];
} myhandle;
/*##############################################
# #
# 擴(kuò)展數(shù)據(jù)函數(shù) Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern struct resbuf *rbSeek(struct resbuf *rb, int id);
extern BOOL GetAppXdata(ads_name ent, char *apps, struct resbuf **entdata, struct resbuf **xdata);
extern void CpAdsName(ads_name Sname, ads_name &Rname);
extern char* GetNameHandle(ads_name ent);
extern char* GetIdHandle(AcDbObjectId entId);
extern BOOL GetEntType(ads_name name,int *type);
extern BOOL GetLineEP(ads_name entName,ads_point poStart,ads_point poEnd);
extern double GetScreenH();
extern BOOL AddXdata(AcDbObjectId ObjId, struct resbuf *rb1);
extern BOOL MakeGroup(AcDbObjectIdArray& objIds, char* pGroupName);
extern BOOL SetXRecord(CString strDictName, CString SXRecordName, struct resbuf *eb);
extern BOOL GetXRecord(CString strDictName, CString SXRecordName, struct resbuf **eb);
extern BOOL DelXRecord(CString strDictName, CString SXRecordName);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# 幾何計(jì)算函數(shù) Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern BOOL GetLineJd(ads_point pt1,ads_point pt2,ads_point pt3,ads_point pt4,
ads_point &jd,int bz);
extern int GetPerPoint(ads_point pt1,ads_point pt2,ads_point pt,ads_point &per,int bz);
extern int GetAngPoint(ads_point pt1,ads_point pt2,ads_point pt,ads_point &per,double angle,int bz);
extern BOOL GetAngLine(ads_point pt1,ads_point pt2,double dist,
int bz, double PerAngle,double PerLong,ads_point &rePoint,ads_point &Origin);
extern BOOL CoorSwitch(ads_point OriginBefor,ads_point OriginBehind,double angle,
ads_point pt,ads_point &rpt);
extern BOOL EllipsEquation(ads_point ptOrigin,ads_point ptXFix,double EllA,double EllB,
int iTurnBz,int iAmount,ads_point pt[]);
extern BOOL GetLineEquation(ads_point pt1, ads_point pt2, double &k, double &b);
extern BOOL LineJdEllipse(double k,double a,double b,int iTurnBz,ads_point &pt);
extern double GetAngle(ads_point pTop,ads_point pt1,ads_point pt2,int bz);
extern double ConvertFWJ(double a);
extern double ConvertPolar(double a);
extern double TidyFWJ(double a);
extern double ConvertPolar(double a);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# 圖層操作函數(shù) Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern BOOL MakeNewLayer(CString LayerName,int clor,char *cLineFile,char* cLineType);
extern BOOL SetLayer(char* layername,int bLock,int bFrozen,BOOL bCur);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# 繪圖操作函數(shù) Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern BOOL InsertDwgBlock(ads_point insertpt, double scale, double angle,CString m_formname);
extern AcDbObjectId insblock(char name[5],AcGePoint3d center,
int xy,double bl);
extern AcDbObjectId MakePoint(ads_point Pt1,char* layname);
extern AcDbObjectId MakeLine(ads_point Pt1,ads_point Pt2,int col,CString layname,struct resbuf *xData,BOOL draw);
extern AcDbObjectId MakeLineEx(ads_point pt1,ads_point pt2,double width,
int col,char* layname,struct resbuf *xData,BOOL draw);
extern AcDbObjectId MakePline(AcGePoint3dArray ptArr,char* lay,double wid,
int col,struct resbuf *xData,BOOL draw);
extern AcDbObjectId MakePlineEx(int n,char* lay,ads_point pt[],double wid,
int col,struct resbuf *xData,BOOL draw);
extern AcDbObjectId MakeCircle(ads_point pt,double r,int col,char* layname,struct resbuf *xData,BOOL draw);
extern AcDbObjectId MakeArc(ads_point pt,double r,double startAngle,double endAngle,
int col,char* layname,struct resbuf *xData,BOOL draw);
extern AcDbObjectId MakeEllipse(ads_point ptCenter,ads_point ptNormal,ads_point ptMajor,
double rRatio,double rStartParam,double rEndParam,int col,
char* layname,struct resbuf *xData,BOOL draw);
extern AcDbObjectId FillInRegion(AcGePoint3dArray pt,int color,double Scale,char *lpszPatternName,
char *strLayerName,struct resbuf *xData);
extern AcDbObjectId FillInRegionEx(int No, ads_point pt[],int color,double Scale,char *lpszPatternName,
char *strLayerName,struct resbuf *xData);
extern AcDbObjectId FillInAnnulus(ads_point pt,double r1,double r2,int color,double Scale,
char *lpszPatternName,char *strLayerName,struct resbuf *xData);
extern AcDbObjectId FillInDefine1(int No, ads_point pt[],ads_point ptC,double r1,int color,double Scale,
char *lpszPatternName,char *strLayerName,struct resbuf *xData);
extern BOOL SetTextSys(char *strFileName,char *strSysFile,char *strFont,
char *strBigFont,double rTextSize,double rXscale);
extern AcDbObjectId MakeText(ads_point pt,AcDb::TextHorzMode hm, AcDb::TextVertMode vm,char* Testr,char* Style,
char* laname,double th,double Scale,int color,double angle,struct resbuf *xData,BOOL draw);
extern AcDbObjectId SetDimBz(char *strDimTexSys,char *strTexFileName,
char *strTexFont,double rTexXScale,double rTextSize,
char *strDimSys,int iDimColor,int iTextColor,
double rDimexo ,double rDimexe,double rDimdli,
double rDimgap ,double rDimasz,int iDimtad,
int iDimtoh,int iDimtih ,char *strDimblk);
extern AcDbObjectId DimBzLine(ads_point pt1,ads_point pt2,int iTurnBz,double Dist,char *dimText,
struct resbuf *xData,BOOL draw);
extern AcDbObjectId DimBzAngle(ads_point ptCenter,ads_point ptXLine1,ads_point ptXLine2,
double DimDist,char *dimText,struct resbuf *xData,BOOL draw);
extern AcDbObjectId DimBzGrade(ads_point pt1,ads_point pt2,int type,int iTurn,double linLong,
struct resbuf *xData,BOOL draw);
extern AcDbObjectId DimBzLeader(ads_point pt1,ads_point pt2,char *strText,
struct resbuf *xData);
extern BOOL SetEntColor(ads_name ent,int newColor);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# 變換函數(shù) Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern void PoTo3d(ads_point from, AcGePoint3d& to);
extern char *RtoS (double rNumber,int iUnit,int iPrec);
extern double StoR (char *strNumber,int iUnit);
extern char *ItoS (int s);
extern char *AtoS (double rAngle,int iUnit,int iPrec);
extern double StoA (char *strAngle);
extern CString CoverAngle(double a, INT iBz);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# 輔助函數(shù) Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern BOOL SelWindow(ads_point &pt1,ads_point &pt2);
extern BOOL temFix(ads_point pt1,ads_point pt2,double LineLong,int color,int high);
extern void ShowFix(ads_point pt, double rFix);
extern BOOL OpenFileDlg(char* title,char* def,char* ext,char* file,int flag);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# SDK擴(kuò)展 Modify 2002.4.10 by KFX #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern void acutPolarEx(AcGePoint3d pt1, double angle, double len, AcGePoint3d& pt2);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*##############################################
# #
# DEBUG #
# #
/*##############################################*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern int dxfCodeToDataType(int resType);
extern void dxfToStr(resbuf* rb, CString& dxfCodeStr, CString& valueStr);
extern void xdatalist(CString appname);
extern void PrintDXF(struct resbuf *eb);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
extern int CStrToNum(CString strSource, double rData[]);
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_TESTDIALOG_H__1DB7E44C_8D95_11D2_B732_0080C72A6EDF__INCLUDED_)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -