注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

wawawawoomlibo 的博客

 
 
 

日志

 
 

转 制图良好习惯  

2011-11-09 14:54:30|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
经常存盘

这是每一个设计人员必须牢记的一条准则,突然断电、死机等都有可能让你的作品及灵感消失得无影无踪。在AutoCAD中,我们也可以让CAD自动存盘:点击“工具→选项”,出现“选项”对话框,进入“文件”选项卡,设置“自动保存路径”,然后在“打开和保存”选项卡里设置“自动保存”及保存时间间隔。

注意:不要把时间间隔设得太短,那样会浪费系统资源,一般设5分钟就可以了。

2.多看提示

AutoCAD软件是一套比较人性化的软件,每一步操作都会有提示指导。就算某个命令你原来从未使用过,只要根据提示一步一步做下去,也能完成。AutoCAD软件的提示行区域高度,一般要两到三行,这样就能完全看到每一步的提示。

多看提示的好处:可以学习从未用过的命令,学习同一命令的多种用法。

3.巧用命令

命令可以理解为快捷键。AutoCAD有很多方便我们使用的快捷方法,而且同一个命令往往又有好几种使用方式,如点击菜单、点击工具图标、输入键盘命令、回车、空格键重复命令等方式。好多人都觉得用工具图标比较快,其实用键盘输入命令是最快的。我们一定要记住常用的命令。如直线“L”、多段线“PL”、复制“CO、CP”、删除“E”、移动“M”、列表“LIST”、镜像“MI”等。掌握键盘命令有一个简便方法,那就是在点击菜单或图标时,命令行都会出现该命令的键盘命令全称,我们可以试着输入命令全称的前一至两个字母,一般那就是该命令的缩写。

4.良好习惯

养成良好的作图习惯,作品的可移植性和可读性会大大提高。笔者指的良好习惯有:

①能用多段线(PLINE)作图就不要用直线(LINE),因为多段线是一个物件,在以后选择或二次加工时会很方便。

②用好图层(LAYER)功能,把不同类型的物件分配到不同的图层中,以便以后分类加工。

③灵活运用分组(GROUP)及块定义(BLOCK)功能,力求把同一组物件一次性选中,以防编辑时漏掉其中某一部分。

④常用的作图界限、尺寸、标注样式、文字样式等要做好模板,以便快速调用。

⑤不要轻易打散(EXPLODE)系统生成的填充样式、标注等,这对你以后编辑有帮助。

⑥尽量不要使用系统默认字体以外的字体,以防传输至其他电脑里时产生乱码。

⑦模型空间只用来作图,图纸空间只用来放置图框。

5.精确作图

四然在其他作图软件(如Photoshop、3DSMAX等)里,精确作图也是一个重要的规范,但是这一条在AutoCAD中尤其重要。CAD里面所有的物体,系统都会严格按作图者给定的尺寸绘制,即使你的尺寸是随便给出的。有些朋友在作图时忽视尺寸,标注时尺寸就不正确,然后再把标注打散后改正,这是要严格禁止的,因为这时的图已经没有实际尺寸的比例了,也不会再根据你的编辑改动而实时自动改正了。精确作图对我们以后进行标注、打印输出、图像调入调出和与他人分享都非常重要。根据笔者的经验,我们要注意以下几点:

①作图时严格按1:1比例,在最后打印输出时再调整比例。

②灵活运用点捕捉功能,不要以为自己眼力过人,随便一点就能点中直线的端点,那是不可能的。

③该闭合的线一定要用命令闭合(CLOSE)。

④对于已知的长度,我们可以用键盘直接输入。

⑤灵活运用正交模式、栅格与捕捉。

6.用“心”作图

这一条是献给所有奋战在设计岗位上的朋友们的,只有用心作图,我们才能作出正确、合乎规范、漂亮的图纸,我们的劳动成果才会更容易被认可,效率才能得到真正提高。

使用AutoCAD软件其实不难,只要记住笔者上面的“二十四字秘诀”,在实践中经常练习,你的CAD水平一定会在短时间内提高一个台阶。

七个命令让你成为CAD高手

一、绘制基本图形对象

1、几个基本常用的命令

1.1、鼠标操作

通常情况下左键代表选择功能,右键代表确定“回车”功能。如果是3D鼠标,则滚动键起缩放作用。拖拽操作是按住鼠标左键不放拖动鼠标。但是在窗口选择时从左往右拖拽和从右往左拖拽有所不同。

窗选:左图从左往右拖拽选中实线框内的物体,只选中了左边的柱子。

框选:右图从右往左拖拽选中虚线框内的物体和交叉的物体,选中了右边的柱子和梁。

1.2、Esc取消操作:当正在执行命令的过程中,敲击Esc键可以中止命令的操作。

1.3、撤销放弃操作:autocad支持无限次撤销操作,单击撤销按钮 或输入u,回车。

1.4、AutoCAD中,空格键和鼠标右键等同回车键,都是确认命令,经常用到。

1.5、经常查看命令区域的提示,按提示操作。

2、绘制图形的几个操作

这是cad的绘图工具条,在使用三维算量往往不需要使用,因此已把该工具条隐藏。为了了解cad概念,以下介绍几个基本的命令。

2.1绘制直线:单击工具条直线命令或在命令行中输入L,回车。在绘图区单击一点或直接输入坐标点,回车,接着指定下一点,回车,重复下一点,或回车结束操作。或者输入C闭合。

举例:绘制一个三角形的三个边:

命令行输入:L 回车 指定第一个点:

单击一点:回车。重复单击另一点,回车。

输入:C回车。直线闭合,形成一个三角形。

2.2绘制多段线:多段线是由一条或多条直线段和弧线连接而成的一种特殊的线,还可以具备不同宽度的特征。快捷键:PL。在三维算量中定义异形截面、手绘墙、梁等时常用。

举例:绘制一个异形柱截面

命令行输入:PL,回车。指定下一点,输入w(宽度),输入1,回车,修改了多段线线的宽度为1。输入快捷键F8,使用cad的正交功能,,保持直线水平,输入:500。输入:A,开始绘制圆弧,单击另一点绘制一个圆弧。输入:L,切换到绘制直线,单击一点,绘制一段直线。输入:A,绘制一个圆弧与开始点闭合为一个界面形状。

接下来就可以定义一个异形截面的柱,来选择该多段性即可。

二、图形对象的修改

由于三维算量软件对绘图功能已针对算量特点改进的很傻瓜化操作,不需要掌握太多的绘图命令,但是修改命令就使用很频繁了。常用的有:

1、 删除:符合windows操作,Del键最方便。

2、 复制:是把一个或多个对象复制到指定的位置,也可以将一个对象连续复制。

快捷键:CP。例子:复制柱子。单击 或输入CP,选择一个柱子,回车或单击鼠标右键,指定基点,利用cad的捕捉功能单击柱的中心点,右键。输入1000,回车。一个柱子复制成功。在选择完对象后,根据提示单击M,可以多重复制。

3、 移动:快捷键:M。操作与“复制”相同,与复制功能不同的是,复制是多了一个对象,移动只是改变了对象的位置。

4、 修剪:快捷键:TR。可以按指定的边界剪切不需要的部分。

单击修剪工具或输入TR,提示选择对象,选择边界对象,单击右键,提示选择对象,左键单击选择剪切后不需要的那部分,单击右键,确定。

5、 延伸:快捷键:EX。用于把延伸对象精确的延伸到目标边界上。

操作与剪切相同。这两个命令的特点是:都是先选择目标界限对象,再选择被修改的对象。

三、对象捕捉

用户在绘图时,靠鼠标和眼睛很难精确控制,利用cad的捕捉功能可以很好结合解决这个问题。

对象捕捉属于透明命令,意即:在不退出其他操作的过程中,可以同时使用的命令。绘制直线等其他图形时可以使用捕捉命令。

1、 对象捕捉设置

在软件界面下方,右键单击对象捕捉,左键单击设置,弹出对话窗后可以一一进行设置需要的捕捉方式。

四、正交模式:

正交模式是绘图时常用的工具之一,快捷键:F8。可以利用绘制直线时,键入F8测试。

五、图层模式:

图层是就像一张张透明的硫酸纸,为了更好管理所有的对象,每张上面分别画着墙、柱子、梁等不同类别的对象。为了避免图形太复杂,选择错误。可以从中把不需要看到的这一张先抽出来,也就是关闭。同样也可以锁定、冻结或者设置不同的颜色等等。

快捷键:LA

六、视图缩放命令:

1、 实时平移:快捷键:P。

单击 或输入P,回车,或者按下3D鼠标的滚动键,鼠标会变成像手一样的图标,按下鼠标左键拖动,平移图形。

2 、实时缩放:利用3D鼠标的滚动键滚动可以实现实时缩放。也可以单击 ,前后移动鼠标实时缩放。

3 、窗口缩放:单击窗口缩放 ,按下鼠标左键拖动框选需要缩放的区域。

4 、缩放到上一次:单击 ,视图将恢复到上一个缩放的视图。

5 、范围缩放:单击 ,系统将所有图形全部显示在屏幕上,并最大限度充满整个屏幕。

2007.7.5 21:24 作者:CPU 收藏 | 评论:0

使用VBA创建应用程序

分类:VBA教程

使用VBA创建应用程序

分类:ACAD

摘要:实例1 最简单的VBA程序—“Hello。dvb”Step 1 创建新文件运行AutoCAD 2002系统,以“acadiso。dwt”为样板创建图形文件,并调用“vbaide”命令进入VBA环境。Step 2 创建窗体(1) 选择菜单【Insert(插入)】→【UserForm(用户窗体)】,编辑器将创建一个新的窗体,并显示在窗体窗口中。

    实例1 最简单的VBA程序—“Hello.dvb”

    Step 1 创建新文件

    运行AutoCAD 2002系统,以“acadiso.dwt”为样板创建图形文件,并调用“vbaide”命令进入VBA环境;

    Step 2 创建窗体

    (1) 选择菜单【Insert(插入)】→【UserForm(用户窗体)】,编辑器将创建一个新的窗体,并显示在窗体窗口中。选择该窗体,然后在属性窗口中将“Caption”项改为“Draw Text”。

    (2) 在控件工具箱中单击 按钮,并在窗体的适当位置拖动鼠标,创建一个编辑框控件。

    (3) 在控件工具箱中单击 按钮,并在窗体的适当位置拖动鼠标,创建一个按钮控件。选择该控件后,在属性窗口中将“Caption”项改为“Click”。

    创建结果见图37-6。

    Step 3 编写代码

    (1) 在窗体窗口中双击按钮控件,编辑器显示代码窗口,并提示用户输入代码,如图37-7所示。代码清单如下:

    Private Sub CommandButton1_Click()

    Dim TextObj As AcadText "定义文字对象变量

    Dim TextString As String "定义字符串变量

    Dim InsPnt(0 To 2) As Double "定义文字插入点数组变量

    Dim Height As Double "定义文字高度变量

    TextString = TextBox1.Text "字符串取值为编辑框中输入的文字

    "指定文字插入点位置和文字高度

    InsPnt(0) = 100: InsPnt(1) = 100: InsPnt(2) = 0

    Height = 15

   "在模型空间创建文字对象

    Set TextObj = ThisDrawing.ModelSpace.AddText(TextString, InsPnt, Height)

    TextObj.Color = acGreen "指定文字对象的颜色为绿色

    ZoomAll "缩放视图

    Unload Me "关闭窗体

    End Sub

    (2) 单击“Standard(标准)”工具栏中的 转 制图良好习惯 - 冰魂 - wawawawoomlibo 的博客按钮,以“Hello.dvb”为名保存该文件。

    Step 4 运行VBA程序

    (1) 单击“Standard(标准)”工具栏中的 转 制图良好习惯 - 冰魂 - wawawawoomlibo 的博客按钮运行该程序,系统将切换到AutoCAD窗口,并显示如图37-8所示的对话框。用户可在该对话框的编辑框中输入“Hello, VBA!”,并单击按钮,则将在当前图形中创建文字对象,结果如图37-9所示。

    实例说明

    如果用户退出VBA环境并返回AutoCAD系统窗口,则需要对该程序进行加载后才能运行。加载VBA程序的方式有如下几种:

    1. 选择菜单【Tools(工具)】→【Load Appcation…(加载应用程序)】,弹出“Load/Unload Applications(加载/卸载应用程序)”对话框。利用该对话框进行加载的过程与加载LISP程序相同。

    2. 选择菜单【Tools(工具)】→【Macro(宏)】→【Load Project…(加载工程)】,弹出“Open VBA Project(打开VBA工程)”对话框,用户可选择“Hello.dvb”文件并单击Open按钮进行加载。

    3. 选择菜单【Tools(工具)】→【Macro(宏)】→【VBA Manager…(VBA管理器)】,弹出“VBA Manager(VBA管理器)”对话框,如图37-10所示。

    该对话框中的“Drawing(图形)”下拉列表中显示了加载的所有图形文件。对于该列表中指定的图形文件,“Projects(工程)”列表显示了该文件中已加载的VBA程序,用户可单击 按钮载入其他的VBA程序。

小 结

    本章主要介绍了AutoCAD ActiveX和VBA的概念和作用,并通过一个简单的实例讲述了在AutoCAD系统中开发VBA程序的过程。

你可以通过这个链接引用该篇文章:http://xyz9999.bokee.com/tb.b?diaryId=13476517

2007.5.19 09:47 作者:CAD 收藏 | 评论:0

合并一根直线上的两根线段

分类:VBA教程

Sub uniteline()

    Dim returnobj As AcadEntity, basepnt As Variant, pnt1 As Variant, pnt2 As Variant, pnt3 As Variant, pnt4 As Variant

    Dim line1 As Variant, line2 As Variant

choose1:

    ActiveUtility.GetEntity returnobj, basepnt, "选择第一根线段:"

    Select Case returnobj.ObjectName

        Case "AcDbLine" "第一根为line

             Set line1 = returnobj

             pnt1 = line1.StartPoint: pnt2 = line1.EndPoint

        Case "AcDbPolyline" "第一根为lwpolyline

             Set line1 = returnobj

             If line1.Area > 0.000001 Then "判断是否为直线

                ActiveUtility.Prompt "您选择的不是一根线段,请重新选择"

                GoTo choose1

              Else

             End If

             pnt1 = basepnt

             pnt2 = basepnt

             basepnt = line1.Coordinates

             pnt1(0) = basepnt(0): pnt1(1) = basepnt(1)

             pnt2(0) = basepnt(2): pnt2(1) = basepnt(3)

             If pnt1(0) = pnt2(0) Then "垂直

                For i = 1 To (UBound(basepnt) + 1) / 2

                    If pnt1(1) > basepnt(2 * i - 1) Then pnt1(1) = basepnt(2 * i - 1)

                    If pnt2(1) < basepnt(2 * i - 1) Then pnt2(1) = basepnt(2 * i - 1)

                 Next i

               Else "不垂直

                 For i = 1 To (UBound(basepnt) + 1) / 2

                     If pnt1(0) > basepnt(2 * i - 2) Then

                        pnt1(0) = basepnt(2 * i - 2)

                        pnt1(1) = basepnt(2 * i - 1)

                      Else

                     End If

                     If pnt2(0) < basepnt(2 * i - 2) Then

                        pnt2(0) = basepnt(2 * i - 2)

                        pnt2(1) = basepnt(2 * i - 1)

                      Else

                     End If

                 Next i

             End If

        Case Else

             ActiveUtility.Prompt "您选择的不是一根线段,请重新选择"

             GoTo choose1

    End Select

choose2:

    ActiveUtility.GetEntity returnobj, basepnt, "选择第二根线段:"

    If returnobj.Handle = line1.Handle Then

       ActiveUtility.Prompt "线段二与线段一重复,请重新选择"

       GoTo choose2

     Else

    End If

    Select Case returnobj.ObjectName

        Case "AcDbLine" "第二根为line

             Set line2 = returnobj

             pnt3 = line2.StartPoint: pnt4 = line2.EndPoint

        Case "AcDbPolyline" "第二根为lwpolyline

             Set line2 = returnobj

             If line2.Area > 0.000001 Then "判断是否为直线

                ActiveUtility.Prompt "您选择的不是一根线段,请重新选择"

                GoTo choose2

              Else

             End If

             pnt3 = basepnt

             pnt4 = basepnt

             basepnt = line2.Coordinates

             pnt3(0) = basepnt(0): pnt3(1) = basepnt(1)

             pnt4(0) = basepnt(2): pnt4(1) = basepnt(3)

             If pnt3(0) = pnt4(0) Then "垂直

                For i = 1 To (UBound(basepnt) + 1) / 2

                    If pnt3(1) > basepnt(2 * i - 1) Then pnt3(1) = basepnt(2 * i - 1)

                    If pnt4(1) < basepnt(2 * i - 1) Then pnt4(1) = basepnt(2 * i - 1)

                Next i

               Else "不垂直

                 For i = 1 To (UBound(basepnt) + 1) / 2

                     If pnt3(0) > basepnt(2 * i - 2) Then

                        pnt3(0) = basepnt(2 * i - 2)

                        pnt3(1) = basepnt(2 * i - 1)

                      Else

                     End If

                     If pnt4(0) < basepnt(2 * i - 2) Then

                        pnt4(0) = basepnt(2 * i - 2)

                        pnt4(1) = basepnt(2 * i - 1)

                      Else

                     End If

                 Next i

             End If

        Case Else

             ActiveUtility.Prompt "您选择的不是一根线段,请重新选择"

             GoTo choose2

    End Select

    If pnt2(0) = pnt1(0) Then "垂直

       If (pnt2(0) = pnt3(0)) And (pnt3(0) = pnt4(0)) Then

          If pnt1(1) > pnt2(1) Then

             basepnt = pnt1: pnt1 = pnt2: pnt2 = basepnt

          End If

          If pnt1(1) > pnt3(1) Then

             basepnt = pnt1: pnt1 = pnt3: pnt3 = basepnt

          End If

          If pnt1(1) > pnt4(1) Then

             basepnt = pnt1: pnt1 = pnt4: pnt4 = basepnt

          End If

          If pnt4(1) < pnt2(1) Then

             basepnt = pnt4: pnt4 = pnt2: pnt2 = basepnt

          End If

          If pnt4(1) < pnt3(1) Then

             basepnt = pnt4: pnt4 = pnt3: pnt3 = basepnt

          End If

          GoTo unite "合并

        Else

          ActiveUtility.Prompt "线段一与线段二不在同一直线上,无法合并."

       End If

     Else "不垂直

       If pnt1(0) > pnt2(0) Then

          basepnt = pnt1: pnt1 = pnt2: pnt2 = basepnt

       End If

       If pnt1(0) > pnt3(0) Then

          basepnt = pnt1: pnt1 = pnt3: pnt3 = basepnt

       End If

       If pnt1(0) > pnt4(0) Then

          basepnt = pnt1: pnt1 = pnt4: pnt4 = basepnt

       End If

       If pnt4(0) < pnt2(0) Then

          basepnt = pnt4: pnt4 = pnt2: pnt2 = basepnt

       End If

       If pnt4(0) < pnt3(0) Then

          basepnt = pnt4: pnt4 = pnt3: pnt3 = basepnt

       End If

       If (Abs((pnt3(1) - pnt1(1)) * (pnt2(0) - pnt1(0)) - (pnt3(0) - pnt1(0)) * (pnt2(1) - pnt1(1))) + Abs((pnt4(1) - pnt1(1)) * (pnt2(0) - pnt1(0)) - (pnt4(0) - pnt1(0)) * (pnt2(1) - pnt1(1)))) < 0.000001 Then

          GoTo unite "合并

        Else

          ActiveUtility.Prompt "线段一与线段二不在同一直线上,无法合并."

       End If

    End If

    End

unite:

    Select Case line1.ObjectName

           Case "AcDbLine"

                line1.StartPoint = pnt1: line1.EndPoint = pnt4

                line2.Delete

                ActiveUtility.Prompt "线段一与线段二已合并."

           Case "AcDbPolyline"

                Do While UBound(line1.Coordinates) > 4   "新增

                   pnt2 = line1.Coordinates

                   For i = 1 To (UBound(pnt2) - 2)

                       ReDim basepnt(0 To (UBound(pnt2) - 2))

                       basepnt(i) = pnt2(i)

                   Next i

                   line1.Coordinates = basepnt

                Loop   "新增

                ReDim basepnt(0 To 3)

                basepnt(0) = pnt1(0): basepnt(1) = pnt1(1)

                basepnt(2) = pnt4(0): basepnt(3) = pnt4(1)

                line1.Coordinates = basepnt

                line2.Delete

                ActiveUtility.Prompt "线段一与线段二已合并."

        Case Else

    End Select

End Sub

2007.5.19 09:40 作者:CAD 收藏 | 评论:0

Excel表格到CAD

分类:VBA教程

Sub Test()

     On Error Resume Next

      " 连接Excel应用程序

       Dim xlApp As Excel.Application

     Set xlApp = GetObject(, "Excel.Application")

     If Err Then

         MsgBox " Excel 应用程序没有运行。请启动 Excel 并重新运行程序。"

         Exit Sub

     End If

     Dim xlSheet As Worksheet

     Set xlSheet = xlApp.ActiveSheet

       " 当初考虑将表格做成块的方式,可以根据需要取舍。

     "Dim iPt(0 To 2) As Double

     "iPt(0) = 0: iPt(1) = 0: iPt(2) = 0

     Dim BlockObj As AcadBlock

     Set BlockObj = ThisDrawing.Blocks("*Model_Space")

     Dim iPt As Variant

     iPt = ThisDrawing.Utility.GetPoint(, "指定表格的插入点: ")

     If IsEmpty(iPt) Then Exit Sub

     Dim xlRange As Range

     Debug.Print xlSheet.UsedRange.Address

     For Each xlRange In xlSheet.UsedRange

         AddLine BlockObj, iPt, xlRange

         AddText BlockObj, iPt, xlRange

     Next

     Set xlRange = Nothing

     Set xlSheet = Nothing

     Set xlApp = Nothing

End Sub

"边框线条粗细

LineWidth(ByVal xlBorder As Border) As Double

     Select Case xlBorder.Weight

         Case xlThin

             LineWidth = 0

         Case xlMedium

             LineWidth = 0.35

         Case xlThick

             LineWidth = 0.7

         Case Else

             LineWidth = 0

     End Select

End

"边框线条颜色,处理的颜色不全,请自己添加

LineColor(ByVal xlBorder As Border) As Integer

     Select Case xlBorder.ColorIndex

         Case xlAutomatic

             LineColor = acByLayer

         Case 3

             LineColor = acRed

         Case 4

             LineColor = acGreen

         Case 5

             LineColor = acBlue

         Case 6

             LineColor = acYellow

          Case 8

             LineColor = acCyan

          Case 9

             LineColor = acMagenta

         Case Else

             LineColor = acByLayer

     End Select

End

"给制边框

Sub AddLine(ByRef BlockObj As AcadBlock, ByVal iPt As Variant, ByVal xlRange As Range)

     If xlRange.Borders(xlEdgeLeft).LineStyle = xlNone _

         And xlRange.Borders(xlEdgeBottom).LineStyle = xlNone _

         And xlRange.Borders(xlEdgeRight).LineStyle = xlNone _

         And xlRange.Borders(xlEdgeTop).LineStyle = xlNone Then Exit Sub

     Dim rl As Double

     Dim rt As Double

     Dim rw As Double

     Dim rh As Double

     rl = PToM(xlRange.Left)

     rt = PToM(xlRange.top)

     rw = PToM(xlRange.Width)

     rh = PToM(xlRange.Height)

     Dim pPt(0 To 3) As Double

     Dim pLineObj As AcadLWPolyline

       " 左边框的处理,仅第一列才做处理。

     If xlRange.Borders(xlEdgeLeft).LineStyle <> xlNone And xlRange.Column = 1 Then

         pPt(0) = iPt(0) + rl: pPt(1) = iPt(1) - rt

         pPt(2) = iPt(0) + rl: pPt(3) = iPt(1) - (rt + rh)

         Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)

         pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeLeft))

         pLineObj.Color = LineColor(xlRange.Borders(xlEdgeLeft))

     End If

       " 下边框的处理,对于合并单元格,只处理最后一行。

     If xlRange.Borders(xlEdgeBottom).LineStyle <> xlNone And (xlRange.Row = xlRange.MergeArea.Row + xlRange.MergeArea.Rows.Count - 1) Then

         pPt(0) = iPt(0) + rl: pPt(1) = iPt(1) - (rt + rh)

         pPt(2) = iPt(0) + rl + rw: pPt(3) = iPt(1) - (rt + rh)

         Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)

         pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeBottom))

         pLineObj.Color = LineColor(xlRange.Borders(xlEdgeBottom))

     End If

       " 右边框的处理,对于合并单元格,只处理最后一列。

     If xlRange.Borders(xlEdgeRight).LineStyle <> xlNone And (xlRange.Column >= xlRange.MergeArea.Column + xlRange.MergeArea.Columns.Count - 1) Then

         pPt(0) = iPt(0) + rl + rw: pPt(1) = iPt(1) - (rt + rh)

         pPt(2) = iPt(0) + rl + rw: pPt(3) = iPt(1) - rt

         Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)

         pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeRight))

         pLineObj.Color = LineColor(xlRange.Borders(xlEdgeRight))

     End If

       " 上边框的处理,仅第一行才做处理。

     If xlRange.Borders(xlEdgeTop).LineStyle <> xlNone And xlRange.Row = 1 Then

         pPt(0) = iPt(0) + rl + rw: pPt(1) = iPt(1) - rt

         pPt(2) = iPt(0) + rl: pPt(3) = iPt(1) - rt

         Set pLineObj = BlockObj.AddLightWeightPolyline(pPt)

         pLineObj.ConstantWidth = LineWidth(xlRange.Borders(xlEdgeTop))

         pLineObj.Color = LineColor(xlRange.Borders(xlEdgeTop))

     End If

     Set pLineObj = Nothing

End Sub

"给制文本

Sub AddText(ByRef BlockObj As AcadBlock, ByVal InsertionPoint As Variant, ByVal xlRange As Range)

     If xlRange.Text = "" Then Exit Sub

     Dim rl As Double

     Dim rt As Double

     Dim rw As Double

     Dim rh As Double

     rl = PToM(xlRange.Left)

     rt = PToM(xlRange.top)

     rw = PToM(xlRange.MergeArea.Width)

     rh = PToM(xlRange.MergeArea.Height)

     Dim i As Integer

     Dim s As String

     For i = 1 To Len(xlRange.Text) "将EXCEL的换行符替换成P,注如果是在R2002以上可使用Replace函数。

         If Asc(Mid(xlRange.Text, i, 1)) = 10 Then

             s = s & "P"

         Else

             s = s & Mid(xlRange.Text, i, 1)

         End If

     Next

     Dim iPt(0 To 2) As Double

     iPt(0) = InsertionPoint(0) + rl: iPt(1) = InsertionPoint(1) - rt: iPt(2) = 0

     Dim mTextObj As AcadMText

     Set mTextObj = BlockObj.AddMText(iPt, rw, s)  ""{f" & xlRange.Font.Name & ";" & s & "}")

     mTextObj.LineSpacingFactor = 0.75

     mTextObj.Height = PToM(xlRange.Font.Size)

       " 处理文字的对齐方式

     Dim tPt As Variant

     If xlRange.VerticalAlignment = xlTop And (xlRange.HorizontalAlignment = xlLeft Or xlRange.HorizontalAlignment = xlGeneral) Then

         mTextObj.AttachmentPoint = acAttachmentPointTopLeft

         tPt = iPt

     ElseIf xlRange.VerticalAlignment = xlTop And xlRange.HorizontalAlignment = xlCenter Then

         mTextObj.AttachmentPoint = acAttachmentPointTopCenter

         tPt = ThisDrawing.Utility.PolarPoint(iPt, 0, rw / 2)

     ElseIf xlRange.VerticalAlignment = xlTop And xlRange.HorizontalAlignment = xlRight Then

         mTextObj.AttachmentPoint = acAttachmentPointTopRight

         tPt = ThisDrawing.Utility.PolarPoint(iPt, 0, rw)

     ElseIf xlRange.VerticalAlignment = xlCenter And (xlRange.HorizontalAlignment = xlLeft _

             Or xlRange.HorizontalAlignment = xlGeneral) Then

         mTextObj.AttachmentPoint = acAttachmentPointMiddleLeft

         tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh / 2)

     ElseIf xlRange.VerticalAlignment = xlCenter And xlRange.HorizontalAlignment = xlCenter Then

         mTextObj.AttachmentPoint = acAttachmentPointMiddleCenter

         tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh / 2)

         tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw / 2)

     ElseIf xlRange.VerticalAlignment = xlCenter And xlRange.HorizontalAlignment = xlRight Then

         mTextObj.AttachmentPoint = acAttachmentPointMiddleRight

         tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh / 2)

         tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw / 2)

     ElseIf xlRange.VerticalAlignment = xlBottom And (xlRange.HorizontalAlignment = xlLeft _

             Or xlRange.HorizontalAlignment = xlGeneral) Then

         mTextObj.AttachmentPoint = acAttachmentPointBottomLeft

         tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh)

     ElseIf xlRange.VerticalAlignment = xlBottom And xlRange.HorizontalAlignment = xlCenter Then

         mTextObj.AttachmentPoint = acAttachmentPointBottomCenter

         tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh)

         tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw / 2)

     ElseIf xlRange.VerticalAlignment = xlBottom And xlRange.HorizontalAlignment = xlRight Then

         mTextObj.AttachmentPoint = acAttachmentPointBottomRight

         tPt = ThisDrawing.Utility.PolarPoint(iPt, -1.5707963, rh)

         tPt = ThisDrawing.Utility.PolarPoint(tPt, 0, rw)

     End If

     mTextObj.InsertionPoint = tPt

     Set mTextObj = Nothing

End Sub

" 磅换算成毫米

   " 注:意义不大,转换的尺寸有偏差,最好自己设定一个转换规则。

PToM(ByVal Points As Double) As Double

     PToM = Points * 0.3527778

End

2007.5.19 09:39 作者:CAD 收藏 | 评论:0

把当前图纸中符合条件的圆替换为块

分类:VBA教程

把当前图纸中符合条件的圆替换为块(注:块在当前图纸中已存在)

Public Sub ChangeEntity(ByVal MinRadius As Double, ByVal MaxRadius As Double, _

                          ByVal BlockName As Variant, ByVal AutoSelect As Boolean)

    On Error Resume Next

   

    Dim ssobject As AcadCircle

    Dim InsertionPoint(0 To 2) As Double

    Dim NewBlock As AcadBlockReference

   

    "创建选择集

    Dim ssetObj As AcadSelectionSet

    Set ssetObj = AcadDoc.SelectionSets("BlockCount")

   

    If Err.Number <> 0 Then

        Err.Clear

        Set ssetObj = AcadDoc.SelectionSets.Add("BlockCount")

    End If

   

    "清空选择集

    ssetObj.Clear

   

    "创建过滤机制

    Dim fType(0 To 6) As Integer

    Dim fData(0 To 6) As Variant

   

    fType(0) = 0: fData(0) = "Circle"

   

    fType(1) = -4: fData(1) = "CAD 收藏 | 评论:0

AutoCAD中图块使用必须注意的几个问题

分类:CAD应用

熟练掌握图块特性和使用图块绘图,是每一个渴望成为AutoCAD高手必备的利器。虽然组成图块的各对象都有自己的图层、颜色、线型和线宽等特性,但插入到图形中,图块各对象原有的图层、颜色、线型和线宽特性常常会发生变化。一般AutoCAD书刊中只涉及图块的定义、插入和存盘等内容,而关于图块插入前后其组成对象一般特性发生变化的内容则很少见到。总结它们的变化规律,对于正确使用图块,提高计算机绘图与设计的效率很有意义。本文讨论的图块组成对象的一般特性仅限于图块组成对象的图层、颜色、线型和线宽。

    讨论图块组成对象图层、颜色、线型和线宽的变化,涉及到的图层特性包括图层设置和图层状态。图层设置是指在图层特性管理器中对图层的颜色、图层的线型和图层的线宽的设置。图层状态是指图层的打开与关闭状态、图层的解冻与冻结状态、图层的解锁与锁定状态和图层的可打印与不可打印状态等。

一、图块组成对象图层的继承性

    在图块插入时,图块中0层上的对象改变到图块的插入层,图块中非0层上的对象图层不变。即图块中原非0层上的对象,如在被插入图形文件中有与其同名的图层,则分别置于各自的同名图层,被插入图形文件中图层的设置不变。如在被插入图形文件中没有与其同名的图层,则AutoCAD首先在被插入图形文件中新建图块的同名图层,并继承图块中非0层对象所在图层的设置,然后把图块中非0层上的对象分别置于各自的同名图层。总之,若0层不是插入层,则图块中0层上的对象,其图层发生改变,被重新置于图块的插入层;图块中非0层上的对象,其图层保持不变,因此我们说非0层对象的图层具有继承性。若0层就是插入层,则图块中各对象所在的图层保持不变。

    图块插入后,如果关闭图块的插入层,会使图块中与插入层同名层上的对象不可见,如果0层不是插入层,也会使图块中0层上的对象不可见。因为,图块中0层上的对象已重新置于图块的插入层,但图块中其他图层(既非插入层也非0层)上的对象仍然可见。但是要注意,如果冻结图块的插入层,不管图块中的各个对象位于哪一层,整个图块都将不可见,不但图块中与插入层同名层上的对象和图块中0层上的对象不可见,图块中非插入层上的对象也不可见。如果0层为非插入层,关闭或冻结0层,对图块中原0层对象的可见性没有影响。如果关闭或冻结的图层既非图块的插入层也非0层,会使图块中该层上的对象不可见。

    图块插入后,还可以随时改变图块的插入层,先选择图块,在“对象特性”工具栏上单击“图层状态”下拉列表框中的下拉按扭,再单击所需要的图层即可。如上所述,如果冻结图块的插入层。则在该层插入的整个图块将不可见,可以通过这个方法来验证某个图层是否为图块的插入层。

    如果图块的插入层既不是0层也不是图块中各对象所在的图层,那么当删除了该层上的所有对象(包括所插入的图块)后,就能够删除该层。但是,图块中各对象所在的图层,不管是不是图块的插入层,即使图层中已经没有任何对象,也不能删除。

    如果图块插入后被分解(Explode),则图块插入前位于0层、图块插入后改变到图块插入层的对象,将再从图块的插入层回归到0层。总之,图块分解后,图块中不同图层的对象所在的图层将“各归各位”,恢复到图块插入前各对象所在的图层。

二、图块组成对象颜色、线型和线宽的继承性

    为了讨论方便,先约定几个术语。

    Bylayer设置就是在绘图时把当前颜色、当前线型或当前线宽设置为Bylayer。如果当前颜色(当前线型或当前线宽)使用Bylayer设置,则所绘对象的颜色(线型或线宽)与所在图层的图层颜色(图层线型或图层线宽)一致,所以Bylayer设置也称为随层设置。

    Byblock设置就是在绘图时把当前颜色、当前线型或当前线宽设置为Byblock。如果当前颜色使用Byblock设置,则所绘对象的颜色为白色(White);如果当前线型使用Byblock设置,则所绘对象的线型为实线(Continuous);如果当前线宽使用Byblock设置,则所绘对象的线宽为默认线宽(Default),一般默认线宽为0.25mm,默认线宽也可以重新设置,Byblock设置也称为随块设置。

    显式设置就是在绘图时把当前颜色、当前线型或当前线宽设置为显式,既非Bylayer,也非Byblock。

    Bylayer块是指颜色、线型和线宽都采用Bylayer设置绘制的图块;Byblock块是指颜色、线型和线宽都采用Byblock设置绘制的图块;Non-by块是指颜色、线型和线宽都采用显式设置绘制的图块。

    在Bylayer块插入后,图块中各对象的颜色、线型和线宽与图块插入后各对象所在图层的设置,即图层颜色、图层线型和图层线宽一致,而不是与图块插入后各对象所在图层的当前设置,即当前颜色、当前线型和当前线宽一致。也就是说,在Bylayer块插入前,如果在被插图形文件中有图块的同名层,则 Bylayer块插入后,图块相应图层上对象的颜色、线型和线宽将跟随被插图形文件中图块的同名层的图层设置。这时,如果图块图层的设置与被插入图形文件图块同名层的设置不同,则在图块插入前后,图块颜色、线型和线宽有明显变化。如果在被插入图形文件中没有图块的同名层,则Bylayer块插入后,图块相应图层上对象的颜色、线型和线宽将保持不变。Bylayer块分解前后,图块所有对象的颜色、线型和线宽将保持不变。Bylayer块插入后,图块组成对象的颜色、线型和线宽三者有条件的变化。

    在Byblock块插入后,图块中所有对象的颜色、线形与线宽都与插入层的当前设置(当前颜色、线型和线宽) 一致。虽然在图块插入后图块中的各个对象一般不会在同一个图层上,但是图块中所有对象却具有相同的颜色、相同的线型和相同的线宽。Byblock块分解后,图块所有对象的颜色变成Byblock色(白色),所有对象的线型变成Byblock型(实线),但是所有对象的线宽仍保留图块插入时的线宽。Byblock块插入后,图块组成对象的颜色、线型和线宽三者无条件的变化。

    在Non-by块插入后,图块中所有对象的颜色、线形与线宽都保持不变。Non-by分解前、后图块所有对象的颜色、线型和线宽将保持不变。Non-by块图块插入后,图块组成对象的颜色、线型和线宽三者没有变化。

    如果绘制图块中某个对象时,其颜色、线型或线宽采用的不是同一种设置,则若颜色、线型或线宽采用Bylayer设置,则图块插入后,该对象对应的颜色、线型或线宽将与该对象所在图层的颜色、线型或线宽一致。若颜色、线型或线宽采用Byblock设置,则图块插入后,该对象对应的颜色、线型或线宽将与插入层的当前颜色、当前线型或当前线宽一致。若颜色、线型或线宽采用Non-by设置,则图块插入后,该对象对应的颜色、线型或线宽将保持该对象绘制时颜色、线型或线宽不变。

    在图块插入后,如果对图块的颜色、线型或线宽不满意,当然可以把图块分解后再进行调整,但如果不分解图块而直接调整图块的颜色、线型或线宽,则Bylayer块、Byblock块、Non-by块需要区别对待。

    在Bylayer块插入后,图块中各对象的颜色、线型与线宽,不可以通过“对象特性”工具栏上“颜色”下拉列表框、“线型”下拉列表框以及“线宽”下拉列表框来直接改变,但可以通过在“图层特性管理器”中改变图层的颜色、线型或线宽来间接改变。单击“对象特性”工具栏上“图层”按扭,可以打开“图层特性管理器”窗口。

    在Byblock块插入后,图块中各对象的颜色、线型与线宽,可以通过“对象特性”工具栏上“颜色”下拉列表框、“线型”下拉列表框以及“线宽”下拉列表框来直接改变。

    在Non-by块插入后,图块如不分解,图块中各对象的颜色、线型与线宽绝对不可能改变,无论是通过“对象特性”工具栏上“颜色”下拉列表框、“线型”下拉列表框和“线宽”下拉列表框直接改变,还是在“图层特性管理器”中通过改变图层的颜色、线型或线宽间接改变。

    如果绘制图块中某个对象时,其颜色、线型或线宽采用的不是同一种设置,则若颜色、线型或线宽采用Bylayer设置,图块插入后,该对象对应的颜色、线型或线宽可以间接改变;若颜色、线型或线宽采用Byblock设置,则图块插入后,该对象对应的的颜色、线型或线宽可以直接改变;若颜色、线型或线宽采用Non-by设置,则图块插入后,该对象对应的颜色、线型或线宽将不能再改变。

三、图块绘制时的几点建议

    根据以上对图块组成对象的图层、颜色、线型和线宽的变化分析,得出如下结论。

    要使在图块插入后图块各对象的图层随图块的插入层、图块各对象的颜色、线型与线宽都随图块插入层的图层设置,就在0层上用Bylayer颜色、Bylayer线型和Bylayer线宽制块,即0层上的Bylaye块插入后,其图块各对象所在的图层将变换为图块的插入层,其图块各对象的颜色、线型与线宽将与图块插入层的图层设置一致。

    要使图块插入后图块各对象的图层随图块的插入层、图块各对象的颜色、线型与线宽都随图块插入层的当前设置,就在0层上用Byblock颜色、Byblock线型和Byblock线宽制块,即0层上Byblock块插入后,其图块各对象所在的图层将改变为图块的插入层,其图块各对象的颜色、线型与线宽将与图块插入层的当前设置一致。

    要使图块插入后图块各对象的图层、颜色、线型与线宽都不变,就在非0层上用显式颜色、显式线型和显式线宽制块。

    为了更好地组织和管理图形,一般一个图层使用一种颜色,因此希望图库中图块所有对象都能定位到图块的插入层,图块所有对象的颜色都能随该层的图层颜色或当前颜色,而图块所有对象的线型与线宽不变,那么,应在0层上用Bylayer颜色或Byblock颜色、用显式线型和用显式线宽来绘制图块。

2007.5.19 09:30 作者:CAD 收藏 | 评论:0

标注上下标的方法

分类:CAD应用

1)上标:编辑文字时,输入2^,然后选中2^,点a/b按键,即可。

    (2)下标:编辑文字时,输入^2,然后选中^2,点a/b按键,即可。

    (3)上下标:编辑文字时,输入2^2,然后选中2^2,点a/b按键,即可。

2007.5.19 09:16 作者:CAD 收藏 | 评论:0

关于CAD字体的设置技巧

分类:CAD应用

关于CAD字体的设置技巧

分类:ACAD

在转化ACAD图纸的过程中,经常出现字体不匹配,出现乱码等问题,现将部分问题的解决方法分享。

1.ACAD的低版本文件,如R13(及R13以下)的DWG文件,用R14(及R14以上)版本打开时,即使正确地选择了汉字字形文件,还是会出现汉字乱码,原因是R14(及R14以上)与R13(及R13以下)采用的代码页不同。解决办法:可到AutoDesk公司主页下载代码页转换工具wnewcp工具进行转换,如原图为简体中文,选择转换为GB2312或ANSI936均可。

2.在一个块里写字,如在标题栏里写字,一些内容太长造成文字出界,在acad2000以前的版本里无法调整块里面的文字属性(即无法调整块中块),只能采用炸开的办法再调整文字属性。解决办法:升级到acad2002,它的块里面可以更改下一层块的属性。

3.当数字与文字混合输入时,高度不一,通常来说数字比文字的高度大一点。解决办法:我通常数字用用style指令指定数字用GBENOR字体(ACAD自带,字高比其它字体矮),文字用HZTXT字体(如没有HZTXT字体,可根据感觉另选字体代替)。

4.打开其他公司的CAD图纸,提示无图纸中的某字体,但用其他字体替代后,出现乱码。解决办法:新建一文档,将该CAD图纸作为一个块插入,乱码将会消失(但字体会与原图有出入,若需100%准确,则需要对方通过匹配的字体)。

5.用中文版的PROE中Pro/Drawing出好的工程图,当你把它转成DWG后用AutoCAD打开后,你无论在ACAD中如何设中文字体,把它炸开(因文字由PROE转DWG时全成图块了),都无法正常显示PROE中的中文字体。解决办法:转时先不要直接转成DWG格式,先转成DXF格式(这样在ACAD中文字就不会成为一个图块),再用AutoCAD打开这个DXF文件,这时此ACAD文件字体风格是纯英文字符,用style指令来改变字体风格,采用BIG FONT,选一种较为合适的中文字体,然后应用,你会发现,PROE中标的中文字全回复过来了。经网友试验,SYFS.SHX字体与,PROE的字体相差无几。

6.图纸为实心字,打引印时出现空心字体。解决办法:将ACAD参数TEXTFILL的参数值由0改为1。

[最后修改由 Admin, 于 2005-11-10 10:55:48]

2007.5.19 08:59 作者:CAD 收藏 | 评论:0

AutoCAD各大论坛技巧精华集

分类:CAD应用

1.选择技巧:

在选择编辑中,有时不小心多选了某个图元,此时在命令未结束下并不需要取消命令而重来,只须在"选择目标"的提示后输入remove回车,再在提示下逐一选择哪些多选的图元(当然别太多,否则难选啊!)即可搞定.

在选择时,随便输入两个字母,如mn,这时你会发现command命令行出现一大串提示,包括fence、wc、wf等,很方便的。

2.AutoCAD裁剪技巧

如图所示,要对右图部分圆(可以是其他边框)外的直线进行裁剪,普通办法就是选择裁剪边界后再选择要裁剪的线段即可,实际上AutoCAD还有较为简捷的办法,其做法如下:

1.按常规执行裁剪命令,选择裁剪边界(回车确认);

2.在提示选择要裁剪的线段元素时输入“f”(即fence),回车确认;

3.在提示:First Fence point下绘制与要裁剪线段相交的连续橡皮筋直线,回车确认即可(见图示)。

尚需注意两点:1.橡皮筋直线无需闭合;2.橡皮筋直线与要裁剪线段重复相交时,则剪去以后一次的部分(这点很重要哦)。

3.选择技巧

用户可以用鼠标一个一个地选择目标,选择的目标逐个地添加到选择集中,另外,AutoCAD还提供了Window(以键入“w”响应Select object:或直接在屏幕上自右至左拉一个矩形框响应Select object:提示),Crossing(以键入“C”响应Select object:或直接在屏幕上自左至右拉一个矩形框响应Select object:提示),Cpolygon(以键入“CP”响应Select object:),Wpolygon(以键入“WP”响应Select object:)等多种窗口方式选择目标,其中Window及Crossing用于矩形窗口,而Wpolygon及Cpolygon用于多边形窗口,在Window及Wpolygon方式下,只有当实体的所有部分都被包含在窗口时,实体才被选中,而在Crossing及Cpolygon方式下,只要实体的一部分包括在窗口内,实体就被选择像。AutoCAD还提供了Fence方式(以键入“F”响应Select object:)选择实体,画出一条不闭合的折线,所有和该折线相交的实体即被选择。在选择目标时,有时会不小心选中不该选择的目标,这时用户可以键入R来响应“select objects:”提示,然后把一些误选的目标从选择集中剔除,然后键入A,再向选择集中添加目标。当所选择实体和别的实体紧挨在一起时可在按住CTRL键的同时,然后连续单击鼠标左键,这时紧挨在一起的实体依次高亮度显示,直到所选实体高亮度显示,再按下enter键(或单击鼠标右键),即选择了该实体。还可以有条件选择实体,即用"filter响应select objects:,在AutoCAD2000中,还提供了QuickSelect方式选择实体,功能和filter类似,但操作更简单,方便。AutoCAD提供的选择集的构造方法功能很强,灵活恰当地使用可使制图的效率大大提高。

4.选择技巧:

在选择编辑中,有时不小心多选了某个图元,此时在命令未结束下并不需要取消命令而重来,只须在"选择目标"的提示后输入remove回车,再在提示下逐一选择哪些多选的图元(当然别太多,否则难选啊!)即可搞定.

5.如何在WORD表格中引用ACAD的形位公差??(如图红框区所示)

其实也简单,但就怕部分新手不敢一试!

1.将ACAD的背景设为白色,否则在WORD中不能处理背景色;

2.在ACAD中单独直接标注形位公差图框,尽量放大显示至整个绘图区;

3.使用ACAD的copyclip(拷贝至粘贴板)命令,选中形位公差图框;

4.切换至WORD的表格中,粘贴即可,但此时整个表格会被挤得很乱,此时可耐点性子,利用WORD自带的图片编辑功能将形位公差图框多余的边剪去,并直接拖放形位公差图框图片至表格范围内的合适大小.为利于操作,可将文档显示放大。

6.如何给ACAD工具条添加命令及相应图标

以cad2004为例

cad的工具条并没有显示所有可用命令,在需要时用户要自己添加。

例如绘图工具条中默认没有多线命令(mline),就要自己添加。

做法如下:

视图->工具栏->命令选项卡,选中绘图右侧窗口显示相应命令

这时找到“多线”,点左键把它脱出,若不放到任何已有工具条中,则它以单独工具条出现;否则成为已有工具条一员。

这时又发现刚拖出的“多线”命令没有图标!!就要为他添加图标。

做法如下:

把命令拖出后,不要关闭自定义窗口,单击“多线”命令,在弹出的面板的右下角,给它选择相应的图标!

这时,我们还可以发现,cad允许我们给每个命令自定义图标。这样作个个性化工具条就变得easy了!!

最后,要删除命令,重复以上操作,把要删除命令拖回,然后在确认要求中选“是”就行了

以下截图按操作顺序:

7.一。系统变量

1.如果使用AutoCAD时会发现命令中的对话框会变成提示行,如 打印命 令,控制它的是系统变量CMDDIA,关掉它就行了。

2.椭圆命令生成的椭圆是以多义线还是以椭圆为实体是由系统变量 PELLIPSE决定,当其为1时,生成的椭圆是PLINE。

3.DIMSCALE决定了尺寸标注的比例,其值为整数,缺省为1,在图形 有了一定比例缩放时应最好将其改为缩放比例。

二。操作

1.BREAK将实体两点截开,在选取第二点时如用“@”来回答,可由 第一点将实体分。

2.AutoCAD R14的BONUS中有一个ARCTEXT命令,可实现弧形文本输 出,使用方法为先选圆弧,再输入文本内容,按OK。

3.AutoCAD中文件可当作块插入其他文件中,但这样一来过多的块 使文件过于庞大,用PURGE来清除它们吧,一次清一层,一定要多用 几次呀!

8.用快捷键,我常用的!!可以提高你的绘图速度!希望对新手有用。

F1: 获取帮助

F2: 实现作图窗和文本窗口的切换

F3: 控制是否实现对象自动捕捉

F4: 数字化仪控制

F5: 等轴测平面切换

F6: 控制状态行上坐标的显示方式

F7: 栅格显示模式控制

F8: 正交模式控制

F9: 栅格捕捉模式控制

F10: 极轴模式控制

F11: 对象追 踪式控制

Ctrl+B: 栅格捕捉模式控制(F9)

Ctrl+C: 将选择的对象复制到剪切板上

Ctrl+F: 控制是否实现对象自动捕捉(f3)

Ctrl+G: 栅格显示模式控制(F7)

Ctrl+J: 重复执行上一步命令

Ctrl+K: 超级链接

Ctrl+N: 新建图形文件

Ctrl+M: 打开选项对话框

Ctrl+1: 打开特性对话框

Ctrl+2: 打开图象资源管理器

Ctrl+6: 打开图象数据原子

Ctrl+O: 打开图象文件

Ctrl+P: 打开打印对说框

Ctrl+S: 保存文件

Ctrl+U: 极轴模式控制(F10)

Ctrl+v: 粘贴剪贴板上的内容

Ctrl+W: 对象追 踪式控制(F11)

Ctrl+X: 剪切所选择的内容

Ctrl+Y: 重做

Ctrl+Z: 取消前一步的操作

9.还说一点关于cad图层的知识

图层功能给我们管理工程图带来的极大的方便,利用他们,我们可以方便的绘制图形,修改图形。因此每个新手很有必要掌握图层方面的知识。

下图关于每个图层中线型设置(摘自国家制图标准)希望大家遵守

10.AutoCAD中如何计算二维图形的面积:

AutoCAD中,可以方便、准确地计算二维封闭图形的面积(包括周长),但对于不同类别的图形,其计算方法也不尽相同。

1. 对于简单图形,如矩形、三角形。只须执行命令AREA(可以是命令行输入或点击对应命令图标),在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,打开捕捉依次选取矩形或三角形各交点后回车,AutoCAD将自动计算面积(Area)、周长(Perimeter),并将结果列于命令行。

2. 对于简单图形,如圆或其它多段线(Polyline)、样条线(Spline)组成的二维封闭图形。执行命令AREA,在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,选择Object选项,根据提示选择要计算的图形,AutoCAD将自动计算面积、周长。

3. 对于由简单直线、圆弧组成的复杂封闭图形,不能直接执行AREA命令计算图形面积。必须先使用Boundary命令(其使用方法依照下图对话框选择即刻,它同于剖面线填充的面域创建),以要计算面积的图形创建一个面域(region)或多段线对象,再执行命令AREA,在命令提示“Specify first corner point or [Object/Add/Subtract]:”后,选择Object选项,根据提示选择刚刚建立的面域图形,AutoCAD将自动计算面积、周长。

10.AutoCAD字体替换技巧

AutoCAD文件在交流过程中,往往会因设计者使用和拥有不同的字体(特别是早期版本必须使用的单线字体),而需为其指定替换字体,如下图所示,即是因为笔者的电脑中没有UMHZ.shx字体,而需为其指定笔者电脑中存在的字体hzkt.shx。

这种提示在每次启动AutoCAD后,打开已有文件都会出现。其实,这种字体替换可以在配置中一次指定:

执行config命令,在下图对话框的黑显处(指定替换字体文件)输入字体文件及其完整目录,ok后,下次启动AutoCAD打开已有文件时,字体替换提示将不在出现。

11.如何巧妙使用AutoCAD

1、 十字光标尺寸改变

---- 工程图绘制时,要按投影规律绘图。为了便于“长对正,高平齐,宽相等”,绘图时,可调整十字光标尺寸。即用options命令或选择下拉菜单 Tools(工具)/ Options(系统配置),打开Options 对话框,找到Display(显示)选项卡,通过修改Crosshair Size(十字光标大小)区中的光标与屏幕大小的百分比或拖动滑块,可改变缺省值5%,使绘图窗口十字光标尺寸变大。

2、 画粗实线

---- 技术制图国家标准对机械图样中的线型有规定。用AutoCAD 2000画粗实线有多种办法,最简便的办法是使用lweight命令。此命令可在命令行直接键入,或选择下拉菜单Format(格式)/Lineweight(线宽),在出现的对话框中,设置所需线宽,缺省线宽为0.25mm,并可用滑块调整屏幕上线宽显示比例,该命令为透明命令。也可单击对象属性工具栏工具图标layers,在图层特性管理对话框中如同设置颜色、线型一样来设置线宽。因此在绘图仪出图时,不用再调整笔宽或线宽。

3、 画曲线

---- 在绘制图样时,经常遇到画截交线、相贯线及其他曲线的问题。手工绘制很麻烦,要找特殊点和一定数量一般点,且连出的曲线误差大。用AutoCAD 2000绘制平面曲线或空间曲线却很容易。

---- 方法一:用Pline命令画2D图形上通过特殊点的折线,经Pedit命令中Fit或Spline曲线拟合,可变成光滑的平面曲线。用3Dpoly命令画3D图形上通过特殊点的折线,经Pedit命令中Spline曲线拟合,可变成光滑的空间曲线。

---- 方法二:用Solids命令创建三维基本实体(长方体、圆柱、圆锥、球等),再经Boolean(布尔)组合运算:交、并、差和干涉等获得各种复杂实体,然后利用下拉菜单View(视图)/3D Viewpoint(三维视点),选择不同视点来产生标准视图,得到曲线的不同视图投影。

4、 控制实体显示

---- AutoCAD 2000 常用键盘输入三个系统变量控制实体的显示。

ISOLINES:缺省时实体以线框方式显示,实体上每个曲面以分格线的形式表述。分格线数目由该系统变量控制,有效值为0—2047,初始值为4。分格线数值越大,实体越易于观察,但是等待显示时间加长。

DISPSILH:该变量控制实体轮廓边的显示,取值0或1,缺省值为0,不显示轮廓边,设置为1,则显示轮廓边。

FACETRES:该变量调节经HIDE(消隐)、SHADE(着色)、RENDER(渲染)后的实体的平滑度,有效值为0.01—10.0,缺省值为0.5。其值越大,显示越光滑,但执行HIDE、SHADE、RENDER命令时等待显示时间加长。通常在进行最终输出时,才增大其值。

5、 同时打开多个图形文件

---- 绘图过程中,用户需要同时观察多个图形文件,AutoCAD 2000提供了在一个窗口中同时打开多个图形文件的功能(见图5)。选择下拉菜单Window(窗口)并选择重叠、水平或垂直排列图形文件即可。还提供了一个图形文件中的图形可直接用鼠标拖到另一个图形文件中, 极大地方便了设计工作。

6、 修改图形属性

---- 绘图中,利用特性窗口,可容易方便地修改图形中某一对象的属性。用properties命令或选择下拉菜单 Tools(工具)/ Properties(特性),也可用热键Ctrl+1,打开Properties 对话框,按表选择修改项修改。

7、 设计中心管理

---- 用AutoCAD 2000进行设计工作, 借助全新的设计中心管理, 可方便地进行预览、选择、查找、利用已有的全部设计成果,即可从你的已有文件、局域网甚至互联网上获得所需的图形图像资源放到设计中心或直接拖至当前图形。可用adcenter命令或选择下拉菜单 Tools(工具)/ AutoCAD DesignCenter(AutoCAD设计中心),也可用热键Ctrl+1,打开设计中心管理窗口。

---- AutoCAD 2000不但提供了object ARX,具有面向对象特征的C++应用程序编程接口,还提供了Microsoft Visual Basic for Applications (VBA),可使开发人员用来开发相应模块,以定制和扩充AutoCAD功能。(请参阅AutoCAD帮助中的 ActiveX and VBA Developer"s Guide)。并比Autocad R14具有更强的三维造型、编辑修改功能和网络功能。

12.cad中特殊符号的输入

我们知道表示直径的“Ф”、表示地平面的“±”、标注度符号“°”都可以用控制码%%C、%%P、%%D来输入,但是如要输入其他符号怎么办呢?我们可以通过“字符映射表”来输入特殊字符,具体步骤如下:

1.输入“MText”命令,然后建立一个文本框,之后就会打开“Multiline Text Editor”对话框,在这个对话框中,我们可以看到右侧四个按钮中有一个是[Symbol]按钮;

2.单击这个按钮右下角的箭头,打开一个下拉列表,我们可以看到有“Degress %%d”、“Plus/Minus %%p”、“Diameter %%c”、“Non-breaking Space”、“Other”四个选项,选择前三个的某一选项可直接输入“°、”、“±”、“Φ”符号,这样就免去了我们记不住特殊控制码的苦处。

3.单击“Other”时,会打开“字符映射表”对话框,该对话框包含更多的符号供用户选用,其当前内容取决于用户在“字体”下拉列表中选择的字体,它的界面完全是我们所熟悉的中文界面,相信各位应该没有什么问题。

4.在“字符映射表”对话框中,选择要使用的字符,然后双击被选取的字符或单击“选择”按钮,再单击“复制”按钮,将字符拷贝到剪贴板上,点“关闭”返回原来的对话框,将光标放置在要插入字符的位置,用“Ctrl+V”就可将字符从剪贴板上粘贴到当前窗口中。

13.模拟空间与图纸空间介绍

Auto CAD有两个不同的空间:即模型空间和图纸空间(通过使用LAYOUT标签)。可能有很多CAD的高手对于这两个概念也不是很理解,那么,下面就让我们先从它们的特征开始了解一下吧:



 模型空间中视口的特征:

 1、在模型空间中,可以绘制全比例的二维图形和三维模型,并带有尺寸标注。

 2、模型空间中,每个视口都包含对象的一个视图。例如:设置不同的视口会得到俯视图、正视图、侧视图和立体图等。

 3、用VPORTS命令创建视口和视口设置,并可以保存起来,以备后用。

 4、视口是平铺的,它们不能重叠,总是彼此相邻。

 5、在某一时刻只有一个视口处于激活状态,十字光标只能出现在一个视口中,并且也只能编辑该活动的视口(平移、缩放等)。

 6、只能打印活动的视口;如果UCS图标设置为ON,该图标就会出现在每个视口中。

 7、系统变量MAXACTVP决定了视口的范围是2到64。



 图纸空间中视口的特征:

 1、状态栏上的PAPER取代了MODEL。

 2、VPORTS、PS、MS、和VPLAYER命令处于激活状态。(只有激活了MS命令后,才可使用PLAN、VPOINT和DVIEW命令)。

 3、视口的边界是实体。可以删除、移动、缩放、拉伸视口。

 4、视口的形状没有限制。例如:可以创建圆形视口、多边形视口等。

 5、视口不是平铺的,可以用各种方法将它们重叠、分离。

 6、每个视口都在创建它的图层上,视口边界与层的颜色相同,但边界的线型总是实线。出图时如不想打印视口, 可将其单独置于一图层上,冻结即可。

 7、可以同时打印多个视口。

 8、十字光标可以不断延伸,穿过整个图形屏幕,与每个视口无关。

 9、可以通过MVIEW命令打开或关闭视口;SOLVIEW命令创建视口或者用VPORTS命令恢复在模型空间中保存的视口。在缺省状态下,视口创建后都处于激活状态。关闭一些视口可以提高重绘速度。

 10、在打印图形且需要隐藏三维图形的隐藏线时,可以使用MVIEW命令>HIDEPLOT拾取要隐藏的视口边界,即可。

 11、系统变量MAXACTVP决定了活动状态下的视口数是64。



 通过上述的讲解,相信大家对这两个空间已经有了明确的认识,但切记:当我们第一次进入图纸空间时,看不见视口,必须用VPORTS或MVIEW命令创建新视口或者恢复已有的视口配置(一般在模型空间保存)。可以利用MS和PS命令在模型空间和LAYOUT(图纸空间)中来回切换。

14.[TAB]键在AutoCAD捕捉功能中的巧妙利用

当需要捕捉一个物体上的点时,只要将鼠标靠近某个或某物体,不断的按TAb键,这个或这些物体的某些特殊点(如直线的端点、中间点、垂直点、与物体的交点、圆的四分圆点、中心点、切点、垂直点、交点)就回轮换显示出来,选择需要的点左键单击即可以捕中这些点。

注意当鼠标靠近两个物体的交点附近时这两个物体的特殊点将先后轮换显示出来(其所属物体会变为虚线),这对于在图形局部较为复杂时捕捉点很有用。

另外,对于R14版的圆中心点、R14及R2000版的原切点、垂直在该直线的延长线上时的垂直点,仅使用自动捕捉(Object Snap)难以实现,若使用上述“按TAB键辅助捕捉”的方法,这几个点的捕捉将变得较为容易

15.可以利用 acad.lsp 编辑命令,提高工作效率

比如:

(DEFUN C:3 () (COMMAND "ZOOM" "0.50X") (PRINC))

我按3就 直接缩小屏幕了

再如:

(DEFUN C () (COMMAND "PURGE" "A" "*" "N") (PRINC))

16.cad中导如excel中的表格

1.选中excel中的表格,表格的边框要用细线,复制

2.在cad中在编辑中的选择性粘贴中选autocad图元

3.选择插入点,你会发现插入的表格线没有对齐,用反选选中全部的竖线(有很多横线也被选进来了,下一步我们将去选他们),按住shift正选表格,注意不要把竖线全部包在里面,那样竖线也要被你去选了,现在只剩下竖线了,move他门对齐,trim到左上角那根长出去的线,表格画好了,而且和你手动一根一根画线,再填数字的一模一样。

4.现在还不是完美的,因为字的大小和你的图没有统一,现在我们来解决这个问题。选择表格中的一个文字,看一下他的高度,用windows自带的计算器计算一下它和你想要的字的比例差多少,用scale缩放的你想要的文字大小。如果你还想设制文字的宽度系数,为了制作出和你在excel里面看到对齐方式一样的数据,那就把表格先定义为块,插入块的时候选择x方向的系数,就是文字的宽度系数,一切ok

2007.5.17 10:26 作者:蓝色海 收藏 | 评论:0

AUTOCAD中特殊字符输入解决方案

分类:CAD应用

 在工程图中,有时需要输入诸如“α”、“β”、“ω”之类的特殊字符。如何完成特殊字符的输入呢?

    在工程图中,有时需要输入诸如"α"、"β"、"ω"之类的特殊字符。我们通常采用的方法是使用"字符映射表"。但在一些电脑上,我们无法从AutoCAD中调出"字符映射表"。遇到这种情况时,如何完成特殊字符的输入呢?

   

    首先,我们注意一下电脑的提示:  "无法调用下列命令CharMap.Exe",这说明您所使用的电脑上没有"Charmap.exe"文件。您可以通过两种方式在您的电脑上安装此文件:

   

    (1)从其他装有"CharMap.Exe"文件的电脑上复制一份到您所使用的电脑的C:/Windows文件夹中。   

   

    (2)单击"开始",指向"设置",选择"控制面板"。在打开的"控制面板"中,双击"添加/删除程序"。在打开"添加/删除程序"对话框中,单击"Windows安装程序"选项卡,选择"系统工具"组件,单击"详细资料",在打开的"系统工具"对话框中,勾选"字符映射表",单击"确定"按钮。但如果"添加/删除程序"对话框中没有"系统工具"组件,那么就只能从Windows 98光盘中找到或从网上下载了。   

   

    此外,您还可以通过其他方法完成这些特殊字符的输入。   

   

    (1)利用剪贴板输入   

   

    ①打开WPS2000,选择"插入/符号/希腊字母",在打开的"希腊字母表"中,选择你想要的特殊字符,使之插入到当前的文件中。再利用剪贴板复制该字符到AutoCAD的"多行文本编辑器"中即可。利用WPS2000贴过来的这些特殊字符任何一种中文字体,这样我们就可以在完成中文和特殊字符的混合输入过程中无须更换字体。   

   

    ②打开Word2000,选择"插入/符号",在打开的"符号"对话框中有两个选项卡,选择"符号"选项卡。在字体下拉列表中,选择"Symbol"字体(Symbol 字体是一种符号字体,常用于数学公式中,它包含了大小写的希腊字母、数字、运算符、集合符号和其他符号),选择您想要的特殊符号,单击"插入"按钮,使其插入到当前的文档中。之后,复制其到AutoCAD的"多行文本编辑器"中(注意,此时在多行文本编辑器的字体下拉列表中只能选择"Symbol"字体,如果选择其他字体,符号会发生变化。   

   

    (2)利用键盘输入   

   

    在AutoCAD"多行文本编辑器"中的"字符"选项卡中选择"Symbol"字体,再敲击键盘上的"a,b,c……"各键,你就会发现:原来26个英文字母就对应了26个特殊字符。了解了这点就非常方便了,需要输入特殊字符时,在没有其他办法的情况下,我们通过键盘输入也能完成特殊字符的输入。

  评论这张
 
阅读(716)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017