找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 913|回复: 12

[日积月累]:基本绘图函数库

[复制链接]
发表于 2004-3-12 12:38:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
基本绘图函数库
基本绘图程序由PLOT1和PLOT2组成。PLOT1为一级程序,直接调用ACAD的类库。PLOT2为二级程序,调用PLOT1的子程序。

1.1 程序接口
PLOT1的程序接口如下:



extern AcDbObjectId selectObjectId();

程序功能

选择一个实体。

参数说明

无参数。

返 回 值

实体ID。



extern void

addXdataReal(AcDbObjectId pObjId,char appName[],int n,double BHD[]);

程序功能

在一个实体上附加一串实数(Xdata)。

参数说明

pObjId——输入参数,实体ID;

appName——输入参数,数据名;

n——输入参数,数据个数;

BHD——输入参数,要附加的实数数组。

返 回 值

无。



extern int

getXdataReal(AcDbObjectId pObjId,char appName[],double BHD[]);

程序功能

得到附加于一个实体上的一串实数(Xdata)。

参数说明

pObjId——输入参数,实体ID;

appName——输入参数,数据名;

BHD——输出参数,实数数组,附加于实体的实数。

返 回 值

数据个数。



extern void

addXdataInt(AcDbObjectId pObjId,char appName[],int n,long BHD[]);

程序功能

在一个实体上附加一串整数(Xdata)。

参数说明

pObjId——输入参数,实体ID;

appName——输入参数,数据名;

n——输入参数,数据个数;

BHD——输入参数,要附加的整数数组。

返 回 值

无。



extern int

getXdataInt(AcDbObjectId pObjId,char appName[],long BHD[]);

程序功能

得到附加于一个实体上的一串整数(Xdata)。

参数说明

pObjId——输入参数,实体ID;

appName——输入参数,数据名;

BHD——输出参数,整数数组,附加于实体的整数。

返 回 值

数据个数。



extern void

addXdataChar(AcDbObjectId pObjId,char appName[],char BHD[]);

程序功能

在一个实体上附加一字符串(Xdata)。

参数说明

pObjId——输入参数,实体ID;

appName——输入参数,数据名;

BHD——输入参数,要附加字符串。

返 回 值

无。



extern bool

getXdataChar(AcDbObjectId pObjId,char appName[],char BHD[]);

程序功能

得到附加于一个实体上的一字符串(Xdata)。

参数说明

pObjId——输入参数,实体ID;

appName——输入参数,数据名;

BHD——输出参数,附加于实体的字符串。

返 回 值

数据个数。





extern void

addXrecordReal(char dictName[],char dataName[],int n,double r[]);

程序功能

在一个DWG文件上附加一串实数(Xrecord)。

参数说明

dictName——输入参数,字典名;

dataName——输入参数,数据名;

n——输入参数,数据个数;

r——输入参数,要附加的实数数组。

返 回 值

无。



extern void

addXrecordInt(char dictName[],char dataName[],int n,int r[]);

程序功能

在一个DWG文件上附加一串整数(Xrecord)。

参数说明

dictName——输入参数,字典名;

dataName——输入参数,数据名;

n——输入参数,数据个数;

r——输入参数,要附加的整数数组。

返 回 值

无。



extern int

getXrecordReal(char dictName[],char dataName[],double r[]);

程序功能

得到附加于DWG文件上的一串实数(Xrecord)。

参数说明

dictName——输入参数,字典名;

dataName——输入参数,数据名;

n——输入参数,数据个数;

r——输出参数,附加于DWG文件上的实数数组。

返 回 值

数据个数。



extern int

getXrecordInt(char dictName[],char dataName[],int r[]);

程序功能

得到附加于DWG文件上的一串整数(Xrecord)。

参数说明

dictName——输入参数,字典名;

dataName——输入参数,数据名;

n——输入参数,数据个数;

r——输出参数,附加于DWG文件上的整数数组。

返 回 值

数据个数。



extern void

createLineType(char Name[],char Description[],int n,

                               double Dashes[]);

程序功能

创建线型。

参数说明

Name——输入参数,线型名;

Description——输入参数,线型描述;

n——输入参数,线型虚实描述的实数个数;

Dashes——输入参数,线型虚实描述实数,正数为实线,负数为虚线,零为点。

返 回 值

无。



extern void

createLayerByComm(char Name[], int Color,char lType[]);

程序功能

由命令建层。

参数说明

Name——输入参数,层名;

Color——输入参数,颜色;

lType——输入参数,所用线型名;

返 回 值

无。



extern void

createLayerByProg(char Name[], int Color,char lType[]);

程序功能

由程序建层。

参数说明

Name——输入参数,层名;

Color——输入参数,颜色;

lType——输入参数,所用线型名;

返 回 值

无。



extern void

createTextStyle(char TextStyleName[],char BigFontFileName[],

                                     char FontFileName[],double textSize,

                                     double xScale);

程序功能

创建字形式样。

参数说明

TextStyleName——输入参数,字形式样名;

BigFontFileName——输入参数,大字体名,如HZTXT、CHINA等;

FontFileName——输入参数,小字体名,如TXT、SIMPLEX等;

textSize——输入参数,字高;

textSize——输入参数,字宽与字高之比。

返 回 值

无。



extern void

createDimStyle(char DimStyleName[],char TextStyleName[],

                               double scale,double TextHeight,

                               double TextFact,double exo);

程序功能

创建尺寸标注式样。

参数说明

DimStyleName——输入参数,尺寸标注式样名;

TextStyleName——输入参数,字形式样名;

scale——输入参数,正体比例;

TextHeight——输入参数,字高;

TextFact——输入参数,所标尺寸数的比例;

exo——输入参数,标注点到尺寸界线起点的距离。

返 回 值

无。



extern AcDbObjectId

createLine(AcGePoint3d startPt,AcGePoint3d endPt,char layer[]);

程序功能

画一条直线。

参数说明

startPt——输入参数,直线的起点;

endPt——输入参数,直线的终点;

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

createDimR(double angle,char DimStyleName[],char layer[],

                      AcGePoint3d Pt1,AcGePoint3d Pt2,AcGePoint3d Pt3);

程序功能

三点及角度标尺寸。

参数说明

angle——输入参数,尺寸线与水平线的夹角(0~360或-180~180);

DimStyleName——输入参数,尺寸标注式样;

layer——输入参数,层。

Pt1——输入参数,标注的第一点;

Pt2——输入参数,标注的第二点;

Pt3——输入参数,尺寸线通过的点;

返 回 值

实体ID。



extern AcDbObjectId

createDimR(double angle,char DimStyleName[],char layer[],

                      AcGePoint3d Pt1,AcGePoint3d Pt2, double L);

程序功能

两点及角度标尺寸。

参数说明

angle——输入参数,尺寸线与水平线的夹角(0~360或-180~180);

DimStyleName——输入参数,尺寸标注式样;

layer——输入参数,层。

Pt1——输入参数,标注的第一点;

Pt2——输入参数,标注的第二点;

L——输入参数,标注点到尺寸线的距离。

返 回 值

实体ID。



extern AcDbObjectId

createDim(char DimStyleName[],char layer[],AcGePoint3d Pt1,

                     AcGePoint3d Pt2,double L);

程序功能

两点标尺寸。

参数说明

DimStyleName——输入参数,尺寸标注式样;

layer——输入参数,层。

Pt1——输入参数,标注的第一点;

Pt2——输入参数,标注的第二点;

L——输入参数,标注点到尺寸线的距离。

返 回 值

实体ID。



extern AcDbObjectId createPoint(AcGePoint3d center,char layer[]);

程序功能

创建一个点。

参数说明

center——输入参数,点的座标;

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId createCircle

(AcGePoint3d center,double r,char layer[]);

程序功能

画圆。

参数说明

center——输入参数,圆心;

r——输入参数,半径;

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

createArc(AcGePoint3d center,double r,double starAng,

                     double endAng,char layer[]);

程序功能

画圆弧。

参数说明

center——输入参数,圆心;

r——输入参数,半径;

starAng——输入参数,起始角度(弧度);

endAng——输入参数,终止角度(弧度);

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

createText(AcGePoint3d position,char layer[],

                      char style[],double height,double wFact,

                      double angle,char hv[2],char Text[]);

程序功能

写字符串。

参数说明

position——输入参数,字符串位置;

layer——输入参数,层。

style——输入参数,字形式样名;

height——输入参数,字高;

wFact——输入参数,字宽与字高之比;

angle——输入参数,与水平轴的夹角(0~360或-180~180);

hv[0]——输入参数,对齐方式;

hv[0]——水平对齐方式,可为c或C(上下左右居中)、r或R(右对齐)、m或M(居中)、其它字符(左对齐);

hv[1]——竖直对齐方式,可为o或O(底平)、m或M(居中)、t或T(上平);

Text——输入参数,要写的字符串;

返 回 值

实体ID。



extern AcDbObjectId createText

(AcGePoint3d position,char layer[],char style[],

double height,double wFact,double angle,

char hv[2],CString Text);

程序功能

写字符串。与前面程序的差别是将要写的字符串参数由char改为Cstring。



extern AcDbObjectId

createPline(int n,double w,int type,double z,

                            double xy[],char layer[]);

程序功能

画等宽多义线。

参数说明

n——输入参数,多义线的顶点数;

w——输入参数,多义线的线宽;

type——输入参数,封闭指示,0为不封闭,1为封闭;

z——输入参数,多义线的z坐标;

xy——输入参数,多义线的顶点x、y坐标,xy[2i]为x坐标,xy[2I+1]为y坐标;

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

createPline(double w,int type,double z,

                            AcGePoint3dArray ptArr,char layer[]);

程序功能

画等宽多义线。与前面程序的差别是将多义线的顶点坐标由double改为AcGePoint3dArray。



extern AcDbObjectId

createGroup(AcDbObjectIdArray IdArray,

                            char groupName[],char layer[]);



extern AcDbObjectId

createGroup(AcDbObjectIdArray IdArray,

                            CString groupName,char layer[]);

程序功能

将多个实体组合成一个组(GROUP)。

参数说明

IdArray——输入参数,ID数组;

groupName——输入参数,组名;

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

createHatch(AcDbObjectIdArray ,

                            AcDbHatch::HatchPatternType patType,

                            char patName[],double patScale,

                            double patAngle,char layer[]);

程序功能

填充。

参数说明

arrayId——输入参数,填充边界实体的ID数组;

patType——输入参数,填充方式可取值如下:

    AcDbHatch::kUserDefined——使用复杂,不介绍;

    AcDbHatch::kPreDefined——使用ACAD的填充图案;

    AcDbHatch::kCustomDefined——使用自定义填充图案,文件名为patName,文件扩展名为.pat,该文件必需在ACAD的Support子目录中;

patName——输入参数,填充图案名;

patScale——输入参数,填充比例;

patAngle——输入参数,填充角度(弧度);

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

insertBlock(char blockName[],AcGePoint3d point,

                            double angle,double scale,char layer[]);

程序功能

插入块。

参数说明

blockName——输入参数,块名;

point——输入参数,插入点;

anglet——输入参数,插入角度(弧度);

scale——输入参数,插入比例;

layer——输入参数,层。

返 回 值

实体ID。



extern AcDbObjectId

insertDwgFile(char dwgName[],char blockName[],

                              double scale,AcGeVector3d basePoint,

                              bool purge,bool explode);

程序功能

插入DWG文件。

参数说明

dwgName——输入参数,DWG文件名;

blockName——输入参数,块名;

scale——输入参数,插入比例,缩放基点为原点;

basePoint——输入参数,缩放后的插入点;

purge——输入参数,为true时清除未引用的块、层、线型等;

explode——输入参数,为true时插入后炸开,为false时插入后成为一个块;



extern void

eraseByName(ads_name s1);

程序功能

用实体的ads_name删除实体。

参数说明

s1——输入参数,实体的ads_name名;

返 回 值

无。



extern void

eraseById(AcDbObjectId eIdi);

程序功能

用实体的ID删除实体。

参数说明

eIdi——输入参数,实体的ID;

返 回 值

无。



extern void

changeLayerByName(ads_name si,char layer[]);

程序功能

改变实体的层。

参数说明

si——输入参数,实体的ads_name名;

layer——输入参数,新的层名;

返 回 值

无。



extern void

changeTextByName(ads_name si,CString change);

程序功能

改变字符内容。

参数说明

si——输入参数,实体的ads_name名;

change——输入参数,新的字符串;

返 回 值

无。



extern void layerOff(char layer[]);

程序功能

关闭层。

参数说明

layer——输入参数,层名;

返 回 值

无。



extern void layerOn(char layer[]);

程序功能

打开层。

参数说明

layer——输入参数,层名;

返 回 值

无。







PLOT2的程序接口如下:

extern AcDbObjectId



createTextN(AcGePoint3d position,char layer[],

                      char style[],double height,double wFact,

                      double angle,char hv[2],int n);

程序功能

写一整数。

参数说明

n——输入参数,待写的整数;

其它参数同createText。

返 回 值

无。



extern AcDbObjectId

createTextR(AcGePoint3d position,char layer[],

                      char style[],double height,double wFact,

                      double angle,char hv[2],double r,int dot);

程序功能

写一实数。

参数说明

r——输入参数,待写的实数;

dot——输入参数,保留的小数位;

其它参数同createText。

返 回 值

无。





函数库下载:PlotLib.zip
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2004-3-12 12:42:50 | 显示全部楼层

Re: [日积月累]:基本绘图函数库

最初由 woocraze 发布
[B]基本绘图函数库
基本绘图程序由PLOT1和PLOT2组成。PLOT1为一级程序,直接调用ACAD的类库。PLOT2为二级程序,调用PLOT1的子程序。

1.1 程序接口
PLOT1的程序接口如下:



extern AcDbObjectId selectObject... [/B]



请将函数库程序用附件上传到论坛来,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-13 19:20:18 | 显示全部楼层
已经上传
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-13 19:41:04 | 显示全部楼层
编译通不过啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3532个

财富等级: 富可敌国

发表于 2004-3-14 23:31:54 | 显示全部楼层
好!终于全了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-15 15:57:59 | 显示全部楼层
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-15 23:22:12 | 显示全部楼层
我编译时,怎么出现"use of undefined type 'AcDbHatch'双击see declaration of 'AcDbHatch'时出现打不开"aced.h"文件的错误,明明inc里有这个文件,也可以打开的?还是我的ARX设置有问题还是提供的lib有问题?有没人成功?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-28 22:34:02 | 显示全部楼层
终于找到组织了!:(
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-25 14:30:09 | 显示全部楼层
感谢楼主提供宝贵资料
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-25 16:13:22 | 显示全部楼层
谢谢提供函数库
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-27 15:09:03 | 显示全部楼层
非常感谢楼主提资料,我也来借鉴一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-24 16:32:56 | 显示全部楼层
非常感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-24 20:23:22 | 显示全部楼层
怎没有源文件啊,只有头文件啊。被骗了啊.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 00:22 , Processed in 0.442509 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表