明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: wf_1980

[分享]明经帖子好内容整理(一)(新增AUTOCAD技巧及疑难解答打包下载)!!

  [复制链接]
发表于 2004-9-17 14:31:00 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
 楼主| 发表于 2004-9-18 10:40:00 | 显示全部楼层
(转帖)把CAD文件转到WORD中的两种方法
方法一: 如何你用的是2004以及以上版本的话,你输入“wmfout"命令,然后在弹出的对话框中给即将保存的文件取一个文件名,再在CAD里面根据提示选中要保存的图形,在切换到WORD里面,选“插入”菜单——》“图片”——》“来自文件”,在选中刚才用wmfout保存的文件就可以了。用这种方法不论你在CAD里面设的是什么背景颜色,在WOR里面背景都是无色的。 方法二:在CAD里面选中要拷贝的图形,按“CTRL+C”键,在到WORD里面点”编辑“菜单下——》“选择性粘贴”。在选中刚才插进来的图片,在上面(一定要选中该图片再在上面右击才能看到有个”组合“选项)右击选”组合“——》”取消组合“就行了,接下来要说明一下,如果你刚才你CAD背景是黑色以外的颜色,那么在”取消组合“之后直接将背景册掉就OK了,否则还得将图形的线条颜色改一下(因为背景为黑色的图在册掉背景后,线条是白色的) 这两种方法我都试过,没问题。希望给需要的朋友带来点帮助!(原作者cad girl)
发表于 2004-9-18 11:29:00 | 显示全部楼层
下载了,挺不错的
发表于 2004-9-18 18:49:00 | 显示全部楼层
谢谢热心的楼主!
发表于 2004-9-19 10:11:00 | 显示全部楼层
ding
发表于 2004-9-20 22:32:00 | 显示全部楼层
受教受教了,老大辛苦!!!
 楼主| 发表于 2004-9-21 08:45:00 | 显示全部楼层
(转帖)AutoCAD中非图形特征的存取方法及应用

一、引言   在进行产品设计时,很多时候只是设计出了产品的几何特征和属性,在图纸中很少涉及到其它非图形特征属性,如零件的材料、生产数量、拓扑关系等。这些非图形特征往往通过标注来实现,但在图纸本身的数据库中并没有保存这些有用的非图形特征信息。随着计算机技术的发展,尤其是网络和数据库的发展和成熟,图纸数据库中若不包含必要的非图形特征信息,就很难实现零件之间的关联及信息的相互利用,很难充分实现信息的共享。   AutoCAD 2000 以其强大的功能及对二次开发的支持和开放性,成为众多设计人员采用的工作平台和二次开发平台。它不仅能存储所生成图形的几何信息和其它相关信息,而且还允许用户建立自己的“非图形特征信息”,以便在图形文件中提供必要的较完整的产品数据,实现零件信息的自动统计,不同零部件的关联设计,自动提取所需零件及图纸的相关特征参数等,为后续开发和生产提供保障。   二、 非图形特征的存储和提取方法   在AutoCAD中,图形是指存储在数据库中的对象的集合。基本的数据库对象包括实体、符号表和字典。实体是一种指定类型的数据库对象,它在AutoCAD中有图形表示,如直线、圆、曲线和文字等;符号表和字典是用来存储数据库对象的容器对象。ObjectARX 使用户的应用程序能够访问这些数据库对象,另外,用户也可以为指定的应用程序创建新的数据库对象。   在通常的设计中,图纸中只包含了各种图形实体及实体的基本属性,如线型、图层和可见性等,一般都不包括基本属性以外的非图形特征属性,如实体的材料、加工方法等。我们可以利用扩展数据(Xdata)和扩展记录对象(Xrecord)来存储其非图形特征参数,为关联设计和CAPP等提供必要的信息。   1.扩展实体数据(Xdata)   ObjectARX、Visual Lisp等应用程序都可以创建扩展实体数据(Xdata),扩展实体数据可以附在任何对象上,AutoCAD 只负责维护这些信息,但并不使用这些信息。一个实体的扩展数据由应用程序所建立,跟随在该实体的正常定义数据之后,包含一个或多个1001组。每一组均以一个互不相同的应用程序名开头,扩展数据的组码在1000至1071之间,不同组码对应不同类型的信息。可用以下方法为指定对象附加扩展实体数据,获取指定对象的扩展实体数据。   (1)为指定对象附加扩展实体数据   Acad::ErrorStatus AcDbObject::setXData(const resbuf* xdata);   其中,xdata 为结果缓冲区链表,包含要添加的信息。   (2)获取指定对象的扩展实体数据   Acad::ErrorStatus AcDbObject::XData(const char* regappName);   其中,regappName 欲获取信息所属的应用程序名。   2.扩展实体词典和扩展实体记录   词典用以存储用户自己定义的各类符号表及其他大量数据。扩展实体记录就是一个Resbuf链表。该链表是一个数据组的列表,链表中每一节点都包含一个DXF组码及相关数据。扩展实体记录的DXF组码的范围是1~369,其中的数据没有任何限制,可以被任何其它对象所拥有。我们可以通过以下方法来实现对非图形特征信息的存储和提取。   (1)创建词典对象   Acad::ErrorStatus createExtensionDictionary();   (2)添加对象到扩展数据词典   Acad::ErrorStatus;   setAt(char* Key,AcDbObject* obj,AcDbObjectId& retobjId);   其中,Key为加入到词典的新对象的索引关键字;   obj为加入到词典的新对象指针;   retobjId为加入到词典的新对象Id。   (3)检索指定关键字的扩展数据词典记录   Acad::ErrorStatus getAt(const char* entryName,AcDbObject*&entryObj,AcDb::OpenMode mode) const;   其中,entryName为指定检索的关键字;   entryObj为返回的检索到的对象指针;   mode为对象打开的方式。   (4)添加数据到扩展数据记录   Acad::ErrorStatusAcDbXrecord::setFromRb   Chain(resbuf& pRb,AcDbDatabase*pDb=NULL);   其中,pRb为包含特征信息的结果缓冲区链表。   (5)获取扩展实体记录的内容   Acad::ErrorStatusAcDbXrecord::rbChain(resbuf**ppRb,AcDbDatabase*pAuxDb=NULL);   其中,ppRb为结果缓冲区结构指针。   三、非图形特征存储提取方法的应用   以上介绍了通过扩展实体数据和扩展实体记录对象来存储和提取非图形特征的方法。下面通过3个实例来介绍其应用。   1.利用扩展实体数据保存和提取实体非图形特征   在工厂电气布线中,需要对电缆设定代号、名称、产地等非几何特征,以便于对电缆等材料进行自动统计等后续工作。   (1)为电缆实体设定非图形特征   char appName[40];//应用程序名   char daihao[40];//电缆代号   char mingcheng[40];//电缆名称   ads_real length;//电缆长度   struct resbuf *pRb,*pTemp;   ……//通过对话框等方式对daihao,mingcheng,length赋初值   strcpy(appName,“diqibuxian”);   acdbRegApp(appName);//以appName登记图形中一个应用程序名   pRb = acutNewRb(AcDb::kDxfRegAppName);//分配结果缓冲器   pTemp = pRb;   pTemp->resval.rstring= (char*)malloc(strlen(appName)+1);   strcpy(pTemp->resval.rstring, appName);//将数据存入结果缓冲器链表   pTemp->rbnext=acutNewRb(AcDb::kDxfXdAsciiString);   pTemp=pTemp->rbnext;   pTemp->resval.rstring= (char*)malloc(strlen(daihao)+1);   strcpy(pTemp->resval.rstring, daihao); file://将代号存入结果缓冲器链表   ……   pTemp->rbnext=acutNewRb(AcDb::kDxfxdLong);   pTemp=pTemp->rbnext;   pTemp->resval.rreal=length;   AcdbObject *pObj;//通过一定的方式获取需要添加数据的对象   pObj->SetXData(pRb);//为对象添加扩展实体数据   pObj->close();   acutRelRb(pRb);   (2)获取指定对象的扩展实体数据   AcDbObject* pObj;   char appName[40];//应用程序名   char daihao[40];//电缆代号   char mingcheng[40];//电缆名称   ads_real length;//电缆长度   struct resbuf *pRb;   strcpy(appName,“dianqibuxian”);   pRb=pObj->xData(appName);//获取应用名appName指定的扩展数据   if(pRb!=NULL)   { int n=0;   for(;pRb!=NULL;pRb=pRb->rbnext)   { if(pRb->restype==1000)   { n++;   if(n==1)   strcpy(daihao,pRb->resval.rstring);//得到电缆代号   if(n==2)   strcpy(mingcheng,pRb->resval.rstring);//得到电缆名称   }   if(pRb->restype==1040)   length=pRb->resval.rreal;   }   }   acutRelRb(pRb);   2.利用扩展记录对象实现关联设计   在参数化设计过程中,零件甲中的某些参数与零件乙的设计有关联。我们设计零件乙时就需要从零件甲的图纸数据库中获取所需的参数,实现关联设计。   (1) 在零件甲的图纸空间中保存关联参数   ads_real bl,fl;//零件甲与零件乙相关联的参数   AcDbDictionary *pNamedobj, *pDict;   acdbHostApplicationServices()->workingDatabase()   ->getNamedObjectsDictionary(pNamedobj, AcDb::kForWrite);   file://获取当前数据库中的命名对象字典   pNamedobj->setAt("Guanliansheji", pDict, DictId);   pNamedobj->close();   AcDbXrecord *pXrec = new AcDbXrecord;   AcDbObjectId xrecObjId;   pDict->setAt("XREC1", pXrec, xrecObjId);   pDict->close();   struct resbuf *pHead;   pHead = acutBuildList(AcDb::kDxfReal, bl,AcDb::kDxfReal,fl,0);   file://设置包含参数bl,fl的结果缓冲器链表   pXrec->setFromRbChain(*pHead);//给扩展记录对象附加信息   acutRelRb(pHead);   pXrec->close();   (2) 在设计零件乙的过程中,从零件甲的图形文件中获取所需的相关参数   AcDbDatabase* pDb = new AcDbDatabase(false, true);     pDb->readDwgFile(fname);//fname为零件甲的图形文件名     AcDbDictionary *pNamedobj;   pDb->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead);   AcDbDictionary *pDict;   pNamedobj->getAt("Guanliansheji", (AcDbObject*&)pDict,   AcDb::kForRead);//获取名为Guanliansheji的数据词典      pNamedobj->close();   AcDbXrecord *pXrec;   pDict->getAt("XREC1", (AcDbObject*&) pXrec,AcDb::kForRead);   file://获取关键字为XREC1的扩展记录对象   pDict->close();   struct resbuf *pRbList;   pXrec->rbChain(&pRbList);//获取包含特征信息的结果缓冲器链表      pXrec->close();   bl=pRbList->resval.rreal;//获取关联参数bl      pRbList=pRbList->rbnext;     fl=pRbList->resval.rreal; file://获取关联参数fl   acutRelRb(pRbList);   3. 其他应用   前面介绍了如何利用扩展实体数据和扩展记录对象来存储和提取非图形特征,除此以外,还有更多的应用。例如,在CAPP中自动提取零件的一些特征参数供工艺设计用,可减少重复的工作,提高整个设计过程的效率。   四、结束语   本文介绍了在AutoCAD中通过二次开发程序来实现非图形特征信息的存储和提取,这些方法可以大大提高图纸数据库中的信息含量,从而为后续的产品设计和开发工作提供基础,大大提高设计效率。
 楼主| 发表于 2004-9-21 09:07:00 | 显示全部楼层
CAD技巧(转帖)

1. Snapang

2. Filter

3. Purge

4. Wblock 一次清除所有没有用的对象类型

5. Select——P 编写菜单宏中经常被使用

6. Chprop非对话框式修改对象特性。这样的命令式流程常被用在功能宏编写与AutoLISP程序设计。

7. CHANGE在修改文字方面的杰出才能。

8. –LAYER非对话框式的图层控制

9. AUTOCAD2000新增了WHIPARC,将其值设为1,圆和圆弧就随时处于真正平滑度。


10. (一)调出Windows资源管理器

Command: START

Application to start: EXPLORER


(二)调出Windows画图

Command: START

Application to start: PBRUSH


11. 在R14中,常遇见打印出图时“打印对话框”不见了,取而代之以命令行方式操作。2000无此问题。

解决:Command: cmddia

Enter new value for CMDDIA <0>: 1


12. 如何恢复被删除的工具栏 MENU——切换文件类型为mnu,并选取acad.mnu文件即可。


13. 当绘图时只要你执行尺寸标注,就会自动产生一个DEFPOINTS图层。


14. 关闭RENDER窗口。

R14: (arxunload “render”

2000: (arxunload “acrender”)


15.CTRL——循环选择 TAB——切换捕捉模式


16.选取物体时,怎么不见高亮度显示

Command: HIGHLIGHT

Enter new value for HIGHLIGHT <1>: 0


17.显示Windows操作系统的版本

(一) Command: platform

PLATFORM = "Microsoft Windows Version 4.10 (x86)" (read only)

(二) Command: start

Application to start: winver

 楼主| 发表于 2004-9-21 13:10:00 | 显示全部楼层
(转帖)裁剪AutoCAD的8种途径 由于AutoCAD是作为一个通用软件的角色出现,它并非直接满足各行业的具体应用,实际工作中有必要对其进行裁剪(或定制)。在此,结合作者的实际工作经历,介绍裁剪AutoCAD的8种途径。 1.建立命令文件
用户可以将连续或重复使用的各种命令写成一个ASCI格式的文件,文件后缀为.scr,该文件既可以在软件启动时执行,也可以在AutoCAD绘图环境下执行。采用这类文件可以自动执行用户的各种连续操作,同时该方法也提供了一种产品演示和商业展示时所需的连续显示功能。 2.编辑线型、字型及填充图案的定义文件
AutoCAD的线型定义文件为Acad.lin,通过修改或增加线型定义参数,可以使绘制出的线型与本行业的绘图标准相一致。填充图案的定义文件为Acad.pat,通过修改或增加图案定义,可以改变已有图案或增加新的图案式样。AutoCAD的字型文件是一种用线、弧和圆来定义的特殊实体型文件为一ASCII文件,后缀为.shp,型文件经编译后变为同名的.shx文件,*.shx文件经加载之后在绘图中即可使用,通过重定义型文件,可以增加需用的各种字型。 3.建立用户化菜单
AutoCAD的菜单文件为Acad.mnu,该菜单文件内含屏幕菜单区、下拉式和光标菜单区、图标菜单区、指点设备按钮菜单区、数字化图形输入板菜单区、辅助设备菜单区。通过调整和增加的菜单宏,使AutoCAD的各区菜单以用户希望的方式排列出现,并可将二次开发的各种功能增加到菜单区中。 4.在状态行显示对用户有用的信息
采用DIESEL编程语言,用户可以在状态行有限的位置上显示对应用来说最重要的信息,如文件名及路径、层号、色彩等。 5.通过命令别名定义快捷键和增加外部命令
Acad.pgp文件用于存放AutoCAD的命令定义,该文件分为两部分:第一部分定义外部命令,第二部分定义命令别名。用户可以将希望在AutoCAD中调用的其他程序及命令缩写加到该文件中,运行初始化命令REINIT之后,这些新增加的内容便开始起作用。 6.建立用户原型图
用户可以根据自己的使用要求和习惯,在原型图中定义好图框及各种参数,像线型比例、字型大小、尺寸参数和捕捉方式等。应用时直接在原型图上操作,可以省去相当大一部分工作量。 7.建立用户应用领域内的标准库
应用AutoCAD的基本功能,可以建立基本图素库、标准符号库、标准件库、标准机构库、标准部件库、标准组合库甚至类标准的各种应用库,可以达到一次建库,多次重复使用的目的。 8.采用AUTOLISP语言、语言和ADS开发系统进行新功能的开发
这些新功能可以是对AutoCAD基本功能的扩充,可以是本行业内的参数化标准绘图,也可是在对本行业应用过程进行分析归类基础上开发的辅助软件系统。
 楼主| 发表于 2004-9-21 13:18:00 | 显示全部楼层
[转帖]应用AutoCAD几何计算器实现快速定位
引 言

几何计算器是AutoCAD R12提供的一个十分有用的工具。和普通的计算器一样,几何计算器可以完成+、-、*和/的运算以及三角函数的运算。这使得用户在使用AutoCAD绘图过程中,可以在不中断命令的情况下用计算机进行算术运算,AutoCAD则将运算的结果直接作为命令的参数使用。但重要的是,和一般的计算器不同,AutoCAD几何计算器可以作几何运算。它可以作坐标点和坐标点之间的加减运算,可以使用AutoCAD的OSNAP模式捕捉屏幕上的坐标点参与运算,还可以自动计算几何坐标点。如计算两条相交直线的交点,计算直线上的等分点等。此外,AutoCAD几何计算器还具有计算矢量和法线的功能。当然,AutoCAD几何计算器还有其它的功能,这里就不一一罗列。
在使用AutoCAD绘图中,常常需要确定一些无法直接给出坐标的点。例如,任意两点间的中点;和任意方向直线相切的圆的圆心;以及直线上任意等分点等。这就是我们通常所说的CAD绘图的定位问题。实际上,在许多计算机绘图场合,定位是否方便和精确往往直接影响作图的效率和速度。因此,应该充分利用AutoCAD几何计算器的几何运算功能,来实现AutoCAD绘图中的快速定位。 在命令提示Command:下键入CAL或激活下拉式菜单的辅助菜单项拾取其中几何计算菜单项都可启动AutoCAD几何计算器。CAL命令也是一个透明命令,可以在其它的命令下随时启动几何计算器。此外,还可以在AutoLISP程序中使用CAL命令。 下面是利用AutoCAD几何计算器的几何运算功能实现在AutoCAD绘图中经常遇到的几个快速定位的实例。
1.在两实体间确定中点
这里不需先在两个实体之间画一条辅助线再用OSNAP的MID模式得到中点。例如,要从一个圆心和一直线的端点之间的中心为起点画一直线。操作过程如下:
  Command: line
  From point: ’cal (启动几何计算器)
  >> Expression: (cen+end)/2 (输入表达式,这里计算器把OSNAP的cen和end模式当作点坐标的临时存储单元)
  >> Select entity for CEN snap用光标捕捉圆心)
  >> Select entity for END snap用光标捕捉直线的端点)
  To point: 其它的目标捕捉模式如int、ins 、tan等等均可在几何计算表达式中使用。如果用表达式(cur+cur)/2代替表达式(cen+end)/2,则可以在计算机要求输入点时,再设定OSNAP方式来捕捉所需的点。 2.确定一条直线上的任意等分点和与直线端点定长的点
使用几何计算器提供的plt和pld函数可以完成这个操作。假设屏幕上有一端点为A和B的直线,要在直线上获得分直线段AB为1比2的点。仍以画直线为例,操作过程如下:
  Command: line
  From point: ’cal
  >> Expression: plt(end,end,1/3)
  >> Select entity for END snap用光标捕捉端点A)
  >> Select entity for END snap用光标捕捉端点B后即得到距A点为1/3线段长的点)
  To point: 如果要得到直线上距端点A为5的点,使用函数pld(end,end,5)代替上面操作过程中的plt(end,end,1/3)即可。 3.用相对坐标来确定点
在绘图中,经常要相对一条线画出另一条线,下面就是操作过程:
  Command: line
  From point: ’cal
  >> Expression: end+[2,3](作点和点的相加运算)
  >> Select entity for END snap捕捉一基准直线的端点后即可获得距端点相对位移(2,3)的点)
  To point: 这个功能和AutoCAD R13中提供的From目标捕捉模式相似。 4.作和一斜线相切的圆以及过圆上一点作圆的切线
利用AutoCAD正交模式可容易地画出和垂直线或水平线相切的圆。画一个和斜线相切的圆则需要准确地确定圆心。操作过程如下:
  Command: circle
  3P/2P/TTR/<Center point>: ’cal
  >> Expression: cur+3*nee(cur表示用光标在屏幕上拾取一个点,nee函数用来计算两端点矢量的法线,3是圆的半径)
  >> Enter a point:nea(用光标在直线上捕捉一个点作为圆和直线的切点)
  to >> Select one endpoint for NEE用光标捕捉直线的一个端点)
  >> Select another endpoint for NEE用光标捕捉直线上的另一个端点)
  Diameter/<Radius> <1.6745>: 3(给出圆的半径后即可画出这个圆)
  改变光标捕捉直线两个端点的顺序可在直线的另一侧画圆。 假设过圆和一直线的交点作圆的切线的操作过程如下:
  Command: line
  From point: int(捕捉交点)
  of
  To point: ’cal
  >> Expression: int+3*nor(cen,int)
  >> Select entity for INT snap用光标捕捉交点)
  >> Select entity for CEN snap用光标捕捉圆心)
  >> Select entity for INT snap再用光标捕捉交点即画出从交点出发长度为3的已知圆的切线)
  To point: 5.过一条斜线上的已知点作斜线的垂线
  因为是非水平非垂直的直线所以不能用AutoCAD的正交模式画直线的垂线。利用几何计算器可直接画出和斜线垂直并且为确定长度的直线。实际上这是一个如何确定垂线的另一个端点的问题。其操作过程如下:
  Command: line
  From point: mid(设过直线的中点作垂线)
  of
  To point: ’cal
  >> Expression: mid+5*nee(5是垂线的长度)
  >> Select entity for MID snap用光标选择斜线捕捉中点)
  >> Select one endpoint for NEE用光标捕捉直线的端点)
  >> Select another endpoint for NEE用光标捕捉直线的另一个端点)
  to point: 同样,改变光标捕捉直线端点的顺序,也可在直线的另一侧画垂线。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:07 , Processed in 0.186493 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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