CAD入门学习及提高教程 15个命令走天下

CAD入门学习及提高 15个命令走天下

1.基本概念,基本操作
2.快捷键及绘图准备
3.15个基本命令
4.为什么要记这15个命令
5.附我的自定义命令

一、 需要知道的概念,以及基本操作
1、CAD是由很多命令组成,命令的执行方式多种多样,基本上有两种,一种是先输入命令(或选择命令按钮)再执行操作,另外一种是先选择,然后在执行命令。有许多命令这两种操作都是可以的。
例:删除一个物体的时候可以先选择删除命令,然后再选择物体,也可以先把物体选中再选择删除命令,两种操作的结果都是一样的。(键盘输入E 空格 选择物体 空格或者选择物体 输入E 空格,结果都是一样的)
2、透明命令。 大部分命令执行的过程是单一的,也就是说在执行的过程中只能执行完,或者中途取消。但也有些命令是在一个命令的执行过程中可以执行另外一个命令,也就是说A命令执行的过程中可以执行B命令,B命令执行完后,继续执行A命令,直至结束。这样的命令叫“透明命令”
3、选择物体的方式。有两种一种是从左上到右下选择,一种是从右下到左上选择,两种方式的选择结果是不同的,第一种:左上到右下;只能选择到被拉出来的框完全包围的物体;第二种:右下到左上;凡是和虚框相交的所有物体(包括包围了的物体)。
4、相对坐标:相对于当前点(或者你制定的点)的位置,这个非常重要!!!比如你要画一条1000mm的线,选择命令,然后从屏幕上任意取一点,然后给一个方向(移动鼠标到你想的方向,如果是水平或者竖直的线,可按F8打开正交)输入1000回车(或者空格)就得到了一条1000mm的线,这是最简单的相对坐标。比如你想画一个1000X1000的正方形,那你就需要先选择命令,然后在屏幕上任意取一点,然后输入“@1000,1000”然后回车(或空格)就得到了一个正方形。“@”就代表了相对坐标。再有,假如你想画一条1000mm长和水平方向夹角37度的线,那么你就选择线命令,然后再屏幕上任意取一点,然后输入“@1000<37”回车。OK了。这两种方式必须要记住,必须的!
5、键盘操作:
a、在任何时候都可以直接在键盘上输入命令,并执行不需要在某个地方点一下再输入命令。
b、命令可以输入全名,也可以输入简写。
c、空格和回车的作用一样,是执行命令,也就说你输入完命令按空格或者回车就可以执行。
d、如果向继续上一个命令,那么可以直接按空格,不必重新输入命令或者选择按钮了。
6、鼠标操作:
左键,不用说了
右键:在执行命令的时候按右键表示确定,连续操作的时候按右键表示结束,整体来说有一些和空格类似,但还有右键的一些快捷。在没有命令执行的时候按鼠标右键,会有一个菜单,默认的第一个是执行上一个命令,其他的自己看。
滚轮:放大和缩小 双击滚轮:显示当前所有的图形,按住滚轮鼠标变成“小手”可以移动屏幕。
把鼠标翻过来,让激光或者滚轮朝上,那么鼠标就不能用了。呵呵!
二、快捷键以及绘图的基本准备
1、F8 打开/关闭 正交状态:打开正交状态,这时候只能画水平线或者数值线,移动或者复制物体的时候也只能水平移动或者数值移动。画直线的时候非常有用,所以要习惯用F8来切花,这非常重要。
2、F3 打开/关闭 自动捕捉:打开的时候,当把鼠标移动到物体上时会有各种形状的黄色的符号,不同的符号代表不同的位置,比如□代表端点 △代表中点,要熟记这些标记,这非常重要。
3、设置捕捉:屏幕下方有“对象捕捉”四个字, 在上边按鼠标右键 选择“设置”,可以看到各种符号的意义,选择你需要的,或者全部选择。点“确定”就设置好了捕捉。 按左键功能和F3一样,是打开和关闭自动捕捉的状态! 
4、快捷按钮的显示,假如你用另外一台电脑的时候突然发现他的CAD没有快捷按钮,或者没有标注按钮,那你可以自己调出来,是这样的,在黑色区域外围的灰色区域点鼠标右键会看到ACAD菜单 立面一大串,有的打√,有的没大,打勾的,说明屏幕上有,假如你没有标注的菜单,那你就找到标注在他上面点一下,标注就出来了。然后移动到你喜欢的位置就OK!

5、CTRL+S 保存 操作方式:按住CTRL不松开,点S键,比如用左手小指点CTRL键,用左手中指点S然后松开,要养成一个习惯,做完每一个操作都要习惯的保存一下,因为你不能保证下一刻电脑不死机,也不能保证下一刻不停电,也不能保证下一刻CAD不出现“致命错误”,假设你不保存,那么你可能半个小时或者更长时间的工作就白费了!所以,养成这个习惯很重要!当然你也可以点上边的保存按钮,但我觉得那样麻烦!养成习惯后你不会有这个操作的意识,呵呵,感觉不到!记住,这非常重要!!!

转载至:http://www.cadzj.com/n/31332.html

发表在 CAD技巧 | 留下评论

一位同学的学习笔记 初学CAD的人可以看看

网上找到的一份CAD学习笔记,每张图虽然没有讲详细绘图步骤,但将审图思路、绘图基本步骤和重点难点给列出来了,我觉得对初学者会有帮助,在此分享一下,前面几张图加上了我的注解。

第一部分

1-1    图 :


 

审图:本题主要是用相对坐标画图,各点的坐标都可以计算出来。

绘图步骤:先建立两个图层,一个绘图,一个作为尺寸标注。绘图时,从原点(0,0)开始画外框,从点(14,8)开始画内框,主要使用Line并且打开正交模式依次画出各个线段即可。接下来按原图进行尺寸标注。

重点难点:确定内框起点坐标、正交模式。

注解:作为初学者最好能掌握相对坐标的输入方法,如果要提高绘图速度,只需要打开正交,然后将光标定位为水平或竖直方向,然后输入直线的长度值就可以了。

1-2   图:

审图:本题使用相对坐标画图,需建立两个图层分别是绘图、尺寸标注图层;利用正交模式画水平线竖直线和利用极坐标追踪模式画斜线。

绘图步骤:先建立两个图层,一个绘图,一个尺寸标注。绘图时,从原点(0,0)开始画,主要使用Line、正交模式和极轴追踪模式,按照计算出各个点的坐标依次画出各段线段,画60°斜线时使用已知长度角度绘直线,142°斜线可由上端线开始绘制,最后完成绘图并进行尺寸标注。

重点难点:正交模式和极坐标追踪模式的使用、两斜直线的画法、角度的尺寸标注。

注解:如果掌握了极坐标的输入方式,@长度<角度的输入模式,也可以不用极轴,60度倒还可以将极轴角设置成30度,(52+90)=142度肯定没法用极轴了。

1-3   图:

审图:本题使用相对坐标画图,需建立两个图层分别是绘图、尺寸标注图层;计算各点的相对坐标,利用正交模式画出各段线段,内外框分别画出

绘图步骤:先建立两个图层分别是绘图、尺寸标注图层;外框从两个方向(上、右)利用正交模式画,内框从点(10,6)开始,利用正交模式和相关线段尺寸画出;最后按照原图进行尺寸标注。

重点难点:利用正交模式、内框的左下点坐标、尺寸标注的连续标注。

注解:这张绘图应该没什么问题,主要目的应该是让大家了解图层的概念。

1-4    图:

审图:本题使用相对坐标画图,需建立两个图层分别是绘图、尺寸标注图层;计算各段线段的长度,水平、竖直线用正交模式画,斜线用极轴追踪模式并且在已知角度和长度的情况下绘出;内外框分别作图。

绘图步骤:先建立两个图层分别是绘图、尺寸标注图层;外框从点(0,0)开始,分别沿上、右两个方向画各线段,至于斜线段可使用极坐标追踪模式在已知角度和长度的情况下画出;内框从点(11,10)开始,上端线先画一条水平长点的直线,画相应斜线与其相交,再修剪即可;最后进行尺寸标注。

重点难点:各段线段的计算、斜直线的绘画(特别是由两条未知长度的直线相交时)、尺寸标注、角度标注。

1-5    图:

审图:需建立两个图层分别是绘图、尺寸标注图层,本题使用RECTANG命令绘制圆角矩形框,计算里框中三个矩形框的各坐标,

绘图步骤:建立两个图层分别是绘图、尺寸标注图层,使用RECTANG命令和相关坐标绘制圆角矩形框,分别用两点坐标法画三个矩形框,剪切多余的线段;进行尺寸标注。

重点难点:圆角矩形框画法、剪切多余线段、内框三个矩形每两个坐标的计算。

转载至:http://www.cadzj.com/n/33519.html

发表在 CAD技巧 | 留下评论

掌握CAD图形基本元素 轻轻松松进行绘图设计

AutoCAD最基本的功能就是绘图,而AutoCAD所有的图形都是由基本的图形元素所组成的。因此,使用AutoCAD绘图就要先用绘图命令绘制一些基本图形元素再对其进行编辑来获得所需图形。

在AutoCAD中绘制点、直线、辅助线、样条曲线、多线段等元素均有其方法。以下就来简单介绍一下图形的基本元素。

 

1点,在AutoCAD中作为对象而存在,与其他的对象没有任何区别,它同样具备了各种对象属性,而且可以被编辑,比如放大、缩小。

2直线,作为机械图形中最基本的图形元素,是用户在绘图过程中不可缺少的图形元素,应用广泛,非常重要。

3辅助线主要包括了射线和构造线。射线是一条只有起点,可以无限延伸的直线;构造线,也叫参照线,是一条没有起点与终点的无限长直线。

4样条曲线是指一条通过一组数据点的光滑曲线,因而它的形状主要是由数据点所控制。在绘制机械图形的过程中,一般被用于绘制剖视线和断裂线,在非机械图形的绘制中,一般是被用于绘制飞机、汽车、轮船轮廓线等。

5多线段是由一些相连的直线段和弧线所组成,它通常被用于绘制图形轮廓线以及一些特殊符号。

6图层,就像是一张张透明的纸被重叠在一起,而每个图层都具备了线型、线宽、颜色等基本属性。在AutoCAD中用户可以对图层进行创建和管理,利用图层工具栏控制图层状态,对图层进行隔离、合并等操作。同时,用户可以对图像进行随意的缩放和平移,以调整到最佳的位置与大小,更加方便、准确地进行绘图。另外,用户还应该掌握AutoCAD提供的多种观察图形的方法以便用户在绘制的过程中更好地观察图形。

转载至:http://www.cadzj.com/n/31358.html

发表在 CAD技巧 | 留下评论

CAD国标字体和标注设置的图文教程

CAD国标字体和标注设置的图文教程

文字样式的设置,AutoCAD中应优先考虑*.shx即AutoCAD的专用字体(SHX字体),少使用Windows下的TrueType字体(TTF字体)。下图是符合国标的文字样式。

Click here to open new window
图1
尺寸样式的设置:第一步设置公共参数,第二步分别设置各子样式的参数。
第一步:设置公共参数(1~5)
1,新建gb样式,在“直线和箭头”卡片上设置尺寸线、尺寸界线等参数如图。
图中起点偏移量为建筑图的标准,如果是机械图,可以按默认值不变。

Click here to open new window
图2
2,选择尺寸文字样式

Click here to open new window
图3
3,考虑标注比例因子
比例因子DIMSCALE取比例的倒数,如出图比例为1:50,DIMSCALE=50;如出图比例为1:100,DIMSCALE=100……,这是在模型空间出图的情况。如果利用布局,则选择“按布局(图纸空间)缩放标注”,不必指定DIMSCALE的值。

Click here to open new window
图4
4,单位可以是缺省值

Click here to open new window
图5
5,公共参数设置完毕,点击“确定”,返回上一级对话框,看到新建的gb样式。

Click here to open new window
图6
第二步:分别设置各子样式(6~14):线性标注、直径标注、半径标注、角度标注
6,设置线性尺性标子样式
紧接5继续“新建”,在“用于”下选择“线性标注”。


图7
7,点击“继续”,为线性标注设置参数。
对于建筑图,只需修改箭头为建筑标记,同时将箭头大小的值改小一些。此处的值为斜线的水平投影长度,国标要求斜线长2~3mm。
其他所有参数均按公共参数设置,如果为机械图,箭头及其大小也不必改。

Click here to open new window
图8
8,点击确定,看到gb样式下的线性标注子样式。

Click here to open new window
图9
9,设置直径标注子样式。
紧接8继续“新建”,在“用于”下选择“直径标注”,点击“继续”,为直径标注设置参数。先将文字对齐方式选为“ISO标准”,这样可以使直径尺寸成水平标注(这只是一种习惯)。

Click here to open new window
图10
10,对直径标注的文字及箭头位置作调整。

Click here to open new window

转载至:http://www.cadzj.com/n/31796.html

发表在 CAD技巧 | 留下评论

AutoCAD批处理打印详细图文操作教程

常常有人问到批处理打印的问题,似乎还没有一个较为系统介绍AutoCAD本身的批处理打印功能的。昨天在回答关于批处理打印问题时,正好截了几个批处理打印的图片。所以特把关于批处理打印的问题作一个较为详细的讲解,希望对想用批处理打印的朋友有所帮助。

AutoCAD自身的方法,前提是你得用好布局。因为一个批处理打印对于一个dwg文件一般只能打印模型空间中的一个区域(虽然多次选择不同的打印窗口,也可打多个区域,但明显没布局方便),但对于布局是没有限制的。

1. 比较正规的方法是,建立一个图纸集。在图纸集中,可以把一个项目的若干个dwg文件包含进来,而每个dwg文件可以选择其中的全部或部分布局。在图纸集中,可以选择发布到绘图仪、发布为PDF文件(2010前的版本需系统安装有PDF打印机)、发布为DWF文件,如图1。当然也可只选择图纸集中的一个或若干个布局来发布(批处理打印),如图2。用图纸集的方法不必打开dwg文件即可进行批处理打印。

2. 不建立图纸集也可进行批处理打印,那就是直接在图形文件中批处理打印。发出批处理打印命令后,AutoCAD会自动把当前所有打开的dwg的所有布局和每个dwg文件当前显示的模型空间都选择进来,生成一个批处理打印图纸列表。当然如果你在模型空间中打印过并把设置“应用到布局”过,模型空间就会以这个设置来作为打印对象。可以把不需要打印的布局从打印图纸列表中移去,强烈建议把模型空间移去,因为模型空间即使进行了打印设置,你也不会去记住是打印的哪一部分,且大多数人没有将打印设置“应用到布局”的习惯。如图3。图3中去掉“自动加载所有打开的文件”,则只会加载当前图形文件。把选择好的图纸列表保存下来,下次打印些图纸时,直接打开保存好的图纸列表文件(dsd文件)就行了。如图4。打开图纸列表文件时,可以选择是否包括当前打开的图形文件。图纸列表也可以加载没有打开的图形文件,如图5。把一个项目中的所有图形文件添加进来,移去不需打印的图纸(布局),然后保存图纸列表。效果和图纸集相类似,也就是殊道同归吧。图纸列表同样可以选择发布到绘图仪还是发布为PDF文件或DWF文件。

说图纸集的方法比较正规,是因为它更方便容易处理批处理打印问题,如可以在在图纸集中创建若干选择集,如一个项目中分不同的专业创建不同的选择集,批处理打印时,有选择地打印某一个选择集。一个专业也可以根据需要来创建选择集,如化工工艺设计图,按设备布置图、管道布置图、条件图等分别创建选择集。批处理打印时可方便地选择某个选择集来打印。

批处理打印其实并不难,没有太高深的问题,但批处理打印以之为基础的布局却还是得花点功夫才能真正掌握的。建议有志用好布局和批处理打印的坛友花点功夫先钻一下布局的问题,然后再来研究批处理打印就很容易了。布局掌握到什么程度算是真正的掌握和用活了?个人以为,能在页面管理器中随意调用已命名的页面设置名称,即能满足当前布局想要的效果(包括选用什么打印机、图幅、打印样式等),而不必一个个去设置,直观地说,创建一个理想的新布局(当然指新布局与当前图形已有的布局完全不同——不同的打印机、不同的图幅、 不同的打印样式等,甚至通过AutoCAD中心也找不到类似的布局,否则复制或在AutoCAD中心中调用即可),所花时间不会超过1分钟。那么,恭喜你,你对布局的了解可以说达到了娴熟的程度。

图1. 批处理打印-打印图纸集1-全部打印


 

图2. 批处理打印-打印图纸集-部分打印


 

图3. 批处理打印-打印图纸列表1-所有打开文件


 

图4. 批处理打印-打印图纸列表2-保存的图纸列表


 

图5. 批处理打印-打印图纸列表3-添加图纸

转载至:http://www.cadzj.com/n/36895.html

发表在 CAD技巧 | 留下评论

CAD尺寸标注样式设置详细图文教程

尺寸标注可是cad制图当中的重要组成部分,也是直接影响图纸整体美观度的重要因素,因此,如果要想图纸显得更加美观、工整的话,学好尺寸标注是非常关键的。
一般情况下,默认的尺寸标注是很小的,都是需要我们自己去调整到适合图形的参数,其实尺寸标注也就是那么几处地方,通常情况下主要设置好直线、符号和剪头、文字、主单位四个元素就行了。
1、使用快捷键“D”打开尺寸标注样式管理器窗口,点击修改按钮
2、进入到修改标注样式窗口,逐次对直线、符号和剪头、文字、主单位设置即可。

直线主要设置参数:

符号和剪头主要设置参数:

文字主要设置参数:



主单位主要设置参数:



如果说一个图纸当中需要标注不同的标注样式,大家可以新建一个标注样式,设置成自己喜欢的标注格式,然后再对进行需要标注成这个样式的标注归类到新建的样式下,然后选择置为当前即可。

转载至:http://www.cadzj.com/n/36896.html

发表在 CAD技巧 | 留下评论

AutoCAD字体乱码的三种解决方法

AutoCAD字体乱码的三种解决方法

刚才同学在打开CAD的时候,遇到了大量乱码,双击后在编辑窗口中显示正常。这是一个常见问题,是dwg图创建者和使用者字体不一致造成的,只需要对字体稍加改动即可解决问题。总结起来,大致有以下三种方法:
1、在当前发生乱码的文档中,新输入若干字符,此时该字符显示为正常汉字。此后,使用特性匹配工具(传说中的格式刷),以正常显示的文字为源,令乱码字符与正常文字特性匹配即可。此法优点是便于操作和理解,缺点是在有大量乱码的情况下效率较低。但是,如果所有文字都在一个图层中,则可以将非文本图层关闭,用框选的方式特性匹配即可瞬间匹配所有文字。
2、在当前文档中,修改文字样式。创建新样式,设置字体为txt.shx,大字体为gbcbig.shx。完成后确认,回到绘图界面,在工具栏中更换当前文字样式为刚才创建的那个,OK,字体更改过来。
3、将文档关闭,重新打开,在打开过程中遇到字体选择对话框的时候,直接选择gbcbig.shx即可。
OK,问题解决,非常容易,又到吃饭的时间了…
 

关于CAD字体乱码的相关文章:

解决打开图纸出现CAD字体乱码的现象

CAD字体乱码怎么办?CAD中字体出现乱码

转载至:http://www.cadzj.com/n/29731.html

发表在 CAD技巧 | 留下评论

直线的画法和圆弧连接的画法详解

CAD中直线的画法和圆弧连接的画法详解

直线的画法

一、直线命令的调用方法及格式

1、调用方法

1)在命令行输入命令“Line

2)点击绘图工具条

3)点击绘图主菜单下的直线子菜单

2、命令格式

调用直线命令后,命令行给出提示如下:

Specify first point: (指定第一点)

Specify next point orUndo:(指定下一点或输入U取消上一点)

Specify next point orClose/Undo:(指定下一点或输入U取消上一点或输入C封闭)

 

二、绘制直线的方法  

1、坐标输入法(了解)
  AutoCAD
绘图系统中坐标点的输入方式有以下几种:

1)绝对坐标

输入一个点的绝对坐标的格式为(X,Y,Z),在系统默认的状态下,绘图区左下角有一个图标,若仅输入X,Y则系统默认z值为零。

2)相对坐标

输入一个点的相对坐标的格式为(@ΔX, ΔY, ΔZ),即输入X,Y,Z三个方向相对于前一点的坐标增量。
3)极坐标
 输入一个点的极坐标的格式为(R<θ<φ),R为线  长, θ为相对X轴的角度, φ为相对XY平面的角度。
4)相对极坐标   

输入一个点相对极坐标的格式为(@R<θ<φ)。

 

2、用辅助画线工具画水平、竖直及倾斜的线段直线

一般来说,用坐标来画线,速度较慢,多数情况下,我们并不采用这种方式画线,而是利用AutoCAD的辅助画线工具进行画线。

1)打开正交功能画水平、竖直线段

单击状态栏上的按钮,就打开了正交模式。在正交模式下光标只能沿水平或竖直方向移动。画线时,若同时把正交模式打开,用鼠标确定方向,输入一个长度即可,格式为(R),R为线长,AutoCAD就自动画出水平或竖直线段。

 例题:在AUTOCAD中画出下列图形。

 查看更多精彩图片

 

 画图步骤如下:

1 启动LINE命令,同时将正交模式打开;

2 在屏幕上任意点击一点,确定A点;

3 将鼠标向下移动并输入线段AB的长度50,确定B点;

4 将鼠标向右移动并输入线段BC的长度30,确定C点;

5 将鼠标向上移动并输入线段CD的长度20,确定D点;

6 将鼠标向右移动并输入线段DE的长度40,确定E点;

7 将鼠标向上移动并输入线段EF的长度30,确定F点;

8 将鼠标向左移动并输入线段FA的长度70,完成图形的绘制。

 

2)利用旋转命令、修剪命令、延伸命令、偏移命令和对象捕捉来画倾斜和平行线段。

先对上述命令作如下解释:

①旋转命令—–该命令用于将图形旋转一个角度。其命令为“Rotate”图标为 查看更多精彩图片,点击旋转命令后,命令行的提示如下:

Current positive angle in UCS:ANGDIR=counterclockwise ANGBASE=0

Select  objects:(选取要旋转的对象)

Specify  base  point:(指定旋转的基准点)

Specify  rotation  angle  or Reference: (旋转的角度)

 

②修剪命令—–用一条线或几条线作剪刀,将与其相交的一条线或几条线剪去一部分。其命令为“Trim”,图标为查看更多精彩图片 ,点击修剪命令后,命令行的提示如下:

Current settings: Projection=UCS Edge=None

Select cutting edges

Select objects:(选择裁剪边界)

Select objects:

在该提示下可以继续选取裁剪边界,直接按回车键,命令行继续给出提示:

Select object to trim or Project/Edge/Undo:(选择要剪掉的线段)

 

③延伸命令——用一条线或几条线作边界,将一条线或几条线延长至该边界。其命令为“Extend”,图标为查看更多精彩图片 ,点击延伸命令后,命令行的提示如下:

Current settings: Projection=UCS  Edge=<Current>

Select boundary edges…

Select objects:(选取对象作为延伸的边界)

在该提示下可以选择多条延伸边界,回车结束边界的选取,命令继续给出提示。

Select object to extend or Project/Edge/Undo:(选择需被延伸的对象)

 

④偏移命令——将所选图形按设定的点或距离再等距的复制一个。其命令为“Offset”,图标为 查看更多精彩图片,偏移命令的操作过程如下:

指定偏移距离或〔通过(T)〕:

选择要偏移的对象或〈退出〉:

指定点以确定偏移所在一侧:

⑤对象捕捉——-对象捕捉不是命令,而是辅助性工具,利用各种对象捕捉,可以确保绘图过程中能准确的选中我们所需要的点。单击状态栏上的对象捕捉按钮,就打开了对象捕捉模式。在对象捕捉模式下光标可以捕捉线段的端点、中点等。(可以对对象捕捉进行设置,其方法为:用鼠标右键单击对象捕捉按钮,弹出对象捕捉设置对话框。

 

 

转载至:http://www.cadzj.com/n/29861.html

发表在 CAD技巧 | 留下评论

一位前辈对CAD的见解和经验之谈

第一章 工作目标篇(最高层面)

我们为什么要画图:——-

不管你是用什么软件绘制或表达,有些废话我必须强调一下:画图时要时时刻刻记住自己的目的是什么?图纸是一种直观、准确、醒目、易于交流的表达形式。所以我们最后完成的东西一定是能够很好的帮助我们表达自己的设计思想、表达一个规划师的观点,或者暴露一些我们想给大家展示的问题。

有了这个前提,我们就不难理解为什么大多数有价值的图纸其实是手绘的设计思路的原稿,因为它原始、纯粹、简洁,与设计者的脑袋更接近。

好的计算机绘制的图纸是什么样子的——

鄙人认为:”“醒目、简洁、准确”(请大家体会一下排位次序)是好的计算机绘制图纸的标准。要让一套图纸保持大体风格统一,每张又有鲜明的特色。A3大小让人2米外轻度近视也能看见你要表达的主题内容,A1大小要让人在10米外灯光不足也能分辨个十之六七,不至于把工业区和居住区搞混淆,也不会把小学看成加油站。

要达到这个目的,需要有一些好的工作方法和习惯来支撑,无论是一个人搞定一个项目所有图纸还是一个工作小组合作,为了高效、高质量完成图面表达,都需要一些好的工作框架。

第二章 工作方法篇(战略层面)

作为项目负责人,必须作好三件事情 (每个都跟画图息息相关):把握设计思路、控制图纸深度、明确工序分工。如果您是画图崽,碰到了一个疑似神仙大师的项目负责人(方案不做只吹,临汇报前一天通通搞定),那就有的你改的了

比方说是一个比较简单的控规,象这种情况不要花太多时间在后期photo身上,因为有的你改的。应当以完成cad总平面为第一要务,总平面要充分体现老板的疑似天才的设计思想,与老板多多交流cad的总平面,得到充分肯定后,大家以此为基础分开绘制相应图纸。

项目进行到每个阶段都对应不同的图纸深度要求。假如分为三个阶段:初步方案—-初稿—-会审稿,画图前我们会大致估计一下要出哪些图纸,不到会审稿我一般不出photo(哈哈,让甲方有一个渐入佳境的感觉,哇,您们的图纸越来越漂漂啦……)。初步方案我只出现状、分析图和总平面,初稿基本都有,但都是cad的,而且不带分图则。会审稿就用photo处理一下,带上花花稍稍的一些东西和分图则,ok啦。

在大家充分了解总体设计思路的前提下,画道路和总平面的人的水准基本决定了整个项目的进度和计算机绘制图纸的质量。项目改动最多的也是道路和总平面。因此,我们首先有如下的准备工作:

由道路或总平面(一般是我,因为我经常被项目负责人疑似很NB)制定标准文件(很厉害的标准文件哦):

1、符合A3或A1长宽比的统一的图框,图框文件中必须命名好字体样式(text style)和标注样式(dim style),强烈建议所有字体只用宋体,标题黑体!免得别人看见问号,为交流和打印增添麻烦。

2、统一割好的地形图,251号颜色。

3、严密的分层体系!!!

友人认为多此一举,我认为这是最关键最重要的最难的!!无数次我的大好青春被别人混乱分层的cad和psd文件所白白消耗,无数次我整理着毫无规律的电子文件。我不想过这样的生活了,下面我简单介绍一下我的尝试:

autocad(R14)没有什么图纸能够复杂过总平面,下面我以控规总平面为例:

大致思路:

第一规则:cad的分层顺序以数字开头第一队,以字母开头的第二队,以汉字开头的按汉语拼音排序第三队。

第二规则:图纸里的东西包括以下内容:字、标注、图框、河流及山体及用地的色块填充以及他们的线框,道路边线、中心线、规划界限行政边界或其他界限、分析性边界、色块,必须的不能删掉但可以冻住的辅助性线条。他们必须根据各自用途大致分布在相近的命名区域,名字必须容易选择(比方说二类工业用地我用M2,先把鼠标指向长长的复杂的层列表,键盘输入m就到啦M区了!!)

第三规则:层的命名规则要简单,明了,方便不同专业的人。大家都能够迅速理解,绝对不会误解。

利用以上规则,我设想了以下的命名方式:

a、0层不允许放任何东西,是做块用的!

b、有关要求大家一定优先看到的特殊的东西,比如地形图,在前面加0,保证这些层在层列表的最上方。dwg的地形图名字叫做0map,假如是外部引用的栅格图象,可以叫做0image。然后在0map层上插地形,在0image层上外部引用图象。统一的图框也可以叫“0图框”。

转载至:http://www.cadzj.com/n/1120.html

发表在 CAD技巧 | 留下评论

AutoCAD绘制建筑施工图入门小技巧

现就本人几年来使用AutoCAD的几点小技巧介绍给大家,希望对初学者有所帮助。

  学习的捷径

  1、专业训练中心:找一个有实力的专业AutoCAD补习班或训练中心。

  2、教材丛书:找对合适的教材是非常重要的。

  3、多认识AutoCAD高手:也许你的四周就有AutoCAD熟练用户,甚至是AutoCAD高手,我们就要主动去结识请教,并且保持沟通与联系,以备不时之需!也许他们轻轻一出手,就能解决你的苦恼,甚至让你的功力大增,减少摸索的时间。

  学习应注意的事项

  1、不要闭门造车,多看、多学、多充电,才不会成为“井底之蛙”。

  2、广结善缘,多认识一些AutoCAD高手,找到高手当*山,才能缩短自己的学习摸索时间。如果能适时地解决各种疑难杂症,则整个学习将更顺畅,实力将更上一层楼。

  3、古人云:“老师领入门修行在自身”,学习贵在坚持,不能“三天打鱼,二天晒网”,只有长时间的锻炼,才能够熟能生巧。

  基本要求

  需要掌握的重点命令(快捷命令)

  绘图命令

  L, *LINE(直线)              PL, *PLINE(多段线)

  REC, *RECTANGLE(矩形)       C, *CIRCLE(圆) 

  A, *ARC(圆弧)                 DIV, *DIVIDE(等分) 

  MT, *MTEXT(多行文本)        B, *BLOCK(块定义) 

  IN, *INSERT(插入块)         BH, *BHATCH(填充) 

  修改命令

  CO, *COPY(复制)             MI, *MIRROR(镜像) 
  AR, *ARRAY(阵列)            O, *OFFSET(偏移) 
  RO, *ROTATE(旋转)           M, *MOVE(移动) 
  E, DEL键 *ERASE(删除)       X, *EXPLODE(分解) 
  TR, *TRIM(修剪)             EX, *EXTEND(延伸) 
  S, *STRETCH(拉伸)           SC, *SCALE(比例缩放) 
  BR, *BREAK(打断)            F, *FILLET(倒圆角)

PE, *PEDIT(多段线编辑)      ED, *DDEDIT(修改文本)

  常用功能键

  【F1】 *HELP(帮助)           【F2】 *(文本窗口) 
  【F3】 *OSNAP(对象捕捉)      【F8】 *ORTHO(正交)

  其他命令

  由于这些命令不常用,而且英文单词难记,所以不需要去记住它,只要熟悉这些命令在AutoCAD软件所在的位置就可以了。这就需要我对AutoCAD界面十分熟悉。一般可分两种途径找到。

  1、下拉式菜单栏     绘图/修改/标注/其他     相应的命令

  2、运用桌面上的快捷键。

转载至:http://www.cadzj.com/n/436.html

发表在 CAD技巧 | 留下评论

一个七年CAD绘图员画图的心声

画了六七年的规划图(学生时代也算哦),现在做项目的负责人了。不知道以后还会有多长时间自己亲自画图,特把自己的一些经验教训和心得告诉大家,让大家分享一下(工作六年以下的)或呕吐一下(限比我高很多的高手)。 
东西比较杂,从大的工作方法到很细微的操作都有,有不成熟的地方请赐教! 

第一章 工作目标篇(最高层面) 

我们为什么要画图:——-??? 

不管你是用什么软件绘制或表达,有些废话我必须强调一下:画图时要时时刻刻记住自己的目的是什么?图纸是一种直观、准确、醒目、易于交流的表达形式。所以我们最后完成的东西一定是能够很好的帮助我们表达自己的设计思想、表达一个规划师的观点,或者暴露一些我们想给大家展示的问题。 
有了这个前提,我们就不难理解为什么大多数有价值的图纸其实是手绘的设计思路的原稿,因为它原始、纯粹、简洁,与设计者的脑袋更接近。 

好的计算机绘制的图纸是什么样子的——??? 

鄙人认为:”“醒目、简洁、准确”(请大家体会一下排位次序)是好的计算机绘制图纸的标准。要让一套图纸保持大体风格统一,每张又有鲜明的特色。A3大小让人2米外轻度近视也能看见你要表达的主题内容,A1大小要让人在10米外灯光不足也能分辨个十之六七,不至于把工业区和居住区搞混淆,也不会把小学看成加油站。 

要达到这个目的,需要有一些好的工作方法和习惯来支撑,无论是一个人搞定一个项目所有图纸还是一个工作小组合作,为了高效、高质量完成图面表达,都需要一些好的工作框架。 
第二章 工作方法篇(战略层面) 

作为项目负责人,必须作好三件事情(每个都跟画图息息相关):把握设计思路、控制图纸深度、明确工序分工。如果您是画图崽,碰到了一个疑似神仙大师的项目负责人(方案不做只吹,临汇报前一天通通搞定),那就有的你改的了。比方说是一个比较简单的控规,象这种情况不要花太多时间在后期photo身上,因为有的你改的。应当以完成cad总平面为第一要务,总平面要充分体现老板的疑似天柴的设计思想,与老板多多交流cad的总平面,得到充分肯定后,大家以此为基础分开绘制相应图纸。 
项目进行到每个阶段都对应不同的图纸深度要求。假如分为三个阶段:初步方案—-初稿—-会审稿,画图前我们会大致估计一下要出哪些图纸,不到会审稿我一般不出photo(哈哈,让甲方有一个渐入佳境的感觉,哇,您们的图纸越来越漂漂啦……)。初步方案我只出现状、分析图和总平面,初稿基本都有,但都是cad的,而且不带分图则。会审稿就用photo处理一下,带上花花稍稍的一些东西和分图则.

转载至:http://www.cadzj.com/n/2404.html

发表在 CAD技巧 | 留下评论

CAD教程:三视图加一个模型的画法

先画一个三维模型
     用设计视图的工具设计四个视图,注意主视图与模型图用UCS,左视图与俯视图用投影 得到(不是用视口工具)
     用设计轮廓工具选中主视图的模型设计轮廓
     用设计图形工具选中除模型外的三个视图
     在图层中关闭VOPRTS图层,设置带有HID后辍的图层线形为虚线并调整线型比例
     然后标注
     请看效果
抽风箱.jpg

转载至:http://www.cadzj.com/n/1674.html

发表在 CAD技巧 | 留下评论

CAD教程:圆的绘制方法和编辑技巧

圆是一个经常使用和绘制的图形,在利用图板进行手工绘图时代,人们深刻体会到“不以规矩,无以成方圆”的道理。在利用AutoCAD等CAD软件进行计算机辅助设计的今天,设计的新思维、新方法改变了人们的传统理念,本文系统介绍了在AutoCAD中圆的绘制方法和编辑技巧,笔者对简单的圆的绘制经过了长时间的钻研,对AutoCAD的功能进行了深入的挖掘,他的经验对广大工程技术人员提高绘图效率有一定作用。

    工程技术人员在利用AutoCAD进行工程设计时,圆的绘制方法是必须掌握的基本技能。笔者先后利用软件AutoCAD R12、AutoCAD R14、AutoCAD 2000、AutoCAD 2002、AutoCAD 2004和AutoCAD 2005从事工程设计,深入探讨和摸索了绘制圆的各种方法以及圆的线宽设置编辑技巧,运用这些方法和技巧将有助于提高AutoCAD的应用水平。

一、圆的绘制方法和编辑技巧

1.以“圆”绘“圆”(命令:Circle,快捷命令:C)

在AutoCAD“绘图”下拉菜单中,列出了6种“圆”的绘制方法,简述如下:

(1)利用圆心和半径绘圆:用鼠标点取绘图命令,然后根据提示操作;
(2)利用圆心和直径绘圆:用鼠标点取绘图命令,然后根据提示操作;
(3)以两点确定直径绘圆:用鼠标点取绘图命令,然后根据提示操作;
(4)以三点确定直径绘圆:用鼠标点取绘图命令,然后根据提示操作;
(5)以确定半径与两个图形对象相切绘圆:用鼠标点取绘图命令,然后根据提示操作;
(6)利用圆心和半径绘圆:用鼠标点取绘图命令,然后根据提示操作。

    提出问题:采用上述6种方法绘制的圆,皆为非多义线而绘制的,都是线宽为0素线的细线圆,在AutoCAD R12和AutoCAD R14版本中,在状态栏无线宽工具条设置,必须采用特殊技巧将0素线细线圆变为0.5mm宽线圆;在AutoCAD 2000以后至AutoCAD 2005的版本中,虽然有线宽设置显示,但显示不真实,线宽显示有放大现象,在图形对象较多的图面影响编辑者视觉。将0素线细线圆变为0.5mm精确设置的宽线圆,编辑技巧有如下2种:

    (1)0素线细线圆变为0.5mm宽线圆的技巧之一:凡利用上述方法绘制的0素线细线圆,利用Break(或Br)命令将圆断开后,再利用修改命令Pedit(或Pe)将断开后的圆封闭(或输C后回车),再在命令行输W后回车,在命令行输0.5后回车,即可实现,见图1。

图1
①用Circle命令绘圆;
②用Break命令断开圆;
      ③用Pedit命令选项C封闭圆;
               ④用Pedit命令的选项W改0.5mm宽线圆。
 

    (2)0素线细线圆变为0.5mm宽线圆的技巧之二:凡利用上述方法绘制的0素线细线圆,利用Offset(或O)命令设置偏移距离0.5后回车,然后利用Hatch(或H)命令中的Solid图案填充后,即可实现,见图2。

图2
①用Circle命令绘圆;
         ②用Offset命令内偏移圆0.5mm;
              ③用Hatch命令中Solid图案选择圆环;
            ④用Hatch命令中Solid图案填充圆。

2.以“圆环”绘“圆”(命令:Donut, 快捷命令:Do)

    在AutoCAD“绘图”下拉菜单中,列出了“圆环或填充圆”的绘制方法,即:在命令行输入Donut(或Do)命令,输入圆环的内径和外径半径后,再指定圆环的中心点位置即可。如要绘制线宽为0.5mm的圆,编辑技巧有如下3种:

    (1)利用Donut(或Do)命令绘制线宽为0.5mm圆方法之一:根据提示分别输入圆环内直径和外直径,只是在输入外直径时,要加上1mm,即可实现,见图3。

图3 用Donut命令绘圆

    (2)利用Donut(或Do)命令绘制线宽为0.5mm圆方法之二:根据提示分别输入相同的圆环内直径和外直径数值,然后利用修改命令Pedit(或Pe)选择圆环后,在命令行输W后回车,再输0.5后回车,即可实现,见图4。

图4
①用Donut命令绘圆;
              ②用Pedit命令选项W改0.5mm宽线圆。

    (3)利用Donut(或Do)命令绘制线宽为0.5mm圆方法之三:根据提示分别输入相同的圆环内直径和外直径数值,然后利用Offset(或O)命令,设置内偏移距离0.5后回车,然后利用Hatch(或H)命令中的Solid图案填充后,即可实现,见图5。

图5
①用Donut命令绘圆;
          ②用Offset命令内偏移圆0.5mm;
               ③用Hatch命令中Solid图案填充圆环。

3.以“多边形”绘“圆”(命令:Polygon 快捷命令:Pol)

    在AutoCAD“绘图”下拉菜单中,列出了“正多边形”的绘制方法,即:在命令行输入Polygon(或Pol)命令后,将默认设置的正4边形设置为最大的正1024边形、或者将默认设置的正4边形设置为正8边形。将0素线细多边形变为0.5mm精确设置的宽线圆,编辑技巧有如下3种(注意的是:采用此种方法绘制的圆,打印显示效果非常圆滑):

    (1)0素线细多边形变为0.5mm宽线圆的技巧之一:凡利用上述方法绘制的0素线细多边形,利用修改命令Pedit(或Pe)选择细多边形再输0.5后回车,即可实现,见图6。

图6
①用Polygon命令绘圆;
            ②用Pedit命令选项W改0.5mm宽线圆。

    (2)0素线细多边形变为0.5mm宽线圆的技巧之二:凡利用上述方法绘制的0素线细多边形,利用Offset(或O)命令设置偏移距离0.5后回车,然后利Hatch(或H)命令中的Solid图案填充后,即可实现,见图7。

图7
①用Polygon命令绘圆;
        ②用Offset命令内偏移圆0.5mm;
             ③用Hatch命令中Solid图案填充圆环。

    (3)0素线细多边形变为0.5mm宽线圆的技巧之三:凡利用上述方法绘制的0素线细多边形,利用修改命令Pedit(或Pe)选择细多边形再输0.5后回车,即可实现,见图8。

图8
①用Polygon命令绘正八边形;
②用Pedit命令选项F拟合为圆;
③眯edit命令选项W改0.5mm宽线圆。

转载至:http://www.cadzj.com/n/1528.html

发表在 CAD技巧 | 留下评论

CAD教程:沿指定的方向作圆弧切线

如果要沿指定的方向画圆的切线,如图2-1图所示,该如何作图呢?此时,用LINE命令及切点捕捉(TAN)是无法画出这条切线的,但用户可用XLINE及OFFSET命令画出指定方向的切线,作图过程如下:
  命令: _xline 指定点或 [水平(H)/垂直(V)/角度(A)/二等分(B)/偏移(O)]:
  //使用选项“角度(A)”
  输入构造线的角度 (0) 或 [参照(R)]: 60 //输入角度值
  指定通过点: cen于 //捕捉斜线的通过点B,如图2-1左图所示
  指定通过点: //按Enter键结束
  命令: offset //画平行线
  指定偏移距离或 [通过(T)] <80.0000>: 65 //输入平移的距离
  选择要偏移的对象或 <退出>: //选择线段A
  T指定点以确定偏移所在一侧: a
  
 

  图2-1 沿指定方向画切线

  提示:上图中的线段A也可利用LINE命令的角度覆盖方式进行绘制。

转载至:http://www.cadzj.com/n/1673.html

发表在 CAD技巧 | 留下评论

用颜色控制AutoCAD的输出线宽

WZCJ.GPost

留下评论

1.0.9新版本支持15,16

1.0.9新版本支持CAD2015,CAD2016

好长时间没有精力去更新CAD好帮手了,不过现在15,16也出来有一段时间了。

今天抽了些时间更新了一下

支持CAD2015和CAD2016,不过部分功能还是不支持的

如屏幕菜单,去教育版。

去教育版是15以上默认带的功能,所以开发包中也去掉了。

如果使用中遇到问题,欢迎给我留言。

下载地址:http://www.cadgj.com/files/HaoBangShou_1.0.9.exe

发表在 CAD好帮手发布 | 12条评论

C#调用C++DLL

在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传递和返回字符串是,现总结一下,分享给大家

C#调用C++一般分为两种方式

静态调用和动态调用,两种方式各有利弊,下文会一一论述。

【一】C++中公布方法供DotNet调用

extern “C”
{
 void WINAPI  Test1(LPCTSTR str)
 {
  AfxMessageBox(str);
 }
 void WINAPI Test2(LPTSTR str)
 {
  lstrcpy(str,_T(“我是测试的cadgj.com”));
 }
}

在.def文件中增加两行

    Test1
    Test2

这样方法Test1和Test2就分别被公布出来了,可以由外部调用。

【二】C#调用

(1)静态方法

通过DllImport实现

如需调用上面公开的方法Test1,只需要在相应的类中申明

[DllImport(“InvokeDll.dll”,EntryPoint=”Test1″,CharSet=CharSet.Unicode)]
        public static extern void Test1(string str);

就可以直接调用C++的方法Test1。

利:使用非常方便,代码简洁。

弊:DllImport导入的DLL的路径必须是已知的,必须部署在exe文件同目录下。或者部署在system32目录下,如果是其它路径则必须使用全路径,比较不灵活。

(2)动态方法

通过Kernel32.dll中提供的方法LoadLibrary,FreeLibrary加载和释放C++的dll然后通过GetProcAddress得到函数指针。通过Marshal.GetDelegateForFunctionPointer转换成委托。

然后调用委托即可。

利:和静态方法相反,部署灵活,可以讲引用的C++ dll放置在任何地方,但是如果这个C++的dll也引用了其它dll,可能需要先加载这些引用的dll,不然单纯的放在dll一起,因为您启动的exe的程序目录不在同一个地方。

弊:使用较为繁琐,所有方法必须转换成委托。

二者的运行效率没有做具体的测试,但是实现机理类似,DllImport可以视为一种DotNet提供的简化版调用,所以我认为二者的运行效率应该相差不大。有兴趣的朋友可以测试一下。

 关于C#和C++的类型对应请参见文章:C#与C++之间类型的对应

下面贴上DotNet的全套代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;

namespace InvokeTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        [DllImport(“InvokeDll.dll”,EntryPoint=”Test1″,CharSet=CharSet.Unicode)]
        public static extern void Test1(string str);
        [DllImport(“InvokeDll.dll”, EntryPoint = “Test2”, CharSet = CharSet.Unicode)]
        public static extern void Test2(StringBuilder sb);
        private void button1_Click(object sender, EventArgs e)
        {
            // 静态调用
            Test1(“测试cadgj.com”);
            StringBuilder sb = new StringBuilder(200);
            Test2(sb);
            MessageBox.Show(sb.ToString());
        }

        private void button2_Click(object sender, EventArgs e)
        {
             //动态调用
            InvokeDllInvoke.DllFileName = Path.Combine(Application.StartupPath, “InvokeDll.dll”);
            InvokeDllInvoke.InitModule();
            InvokeDllInvoke.Test1(“测试cadgj.com”);
            StringBuilder sb = new StringBuilder(200);
            InvokeDllInvoke.Test2(sb);
            MessageBox.Show(sb.ToString());
            InvokeDllInvoke.UnInitModule();
        }
    }
    public class DLLWrapper
    {
        ///<summary>
        /// API LoadLibrary
        ///</summary>
        [DllImport(“Kernel32”)]
        public static extern int LoadLibrary(String funcname);
        ///<summary>
        /// API GetProcAddress
        ///</summary>
        [DllImport(“Kernel32”)]
        public static extern int GetProcAddress(int handle, String funcname);
        ///<summary>
        /// API FreeLibrary
        ///</summary>
        [DllImport(“Kernel32″)]
        public static extern int FreeLibrary(int handle);
        ///<summary>
        /// 通过非托管函数名转换为对应的委托
        ///</summary>
        ///<param name=”dllModule”>通过 LoadLibrary 获得的 DLL 句柄</param>
        ///<param name=”functionName”>非托管函数名</param>
        ///<param name=”t”>对应的委托类型</param>
        ///<returns>委托实例,可强制转换为适当的委托类型</returns>
        public static Delegate GetFunctionAddress(int dllModule, String functionName, Type t)
        {
            int address = GetProcAddress(dllModule, functionName);
            if (address == 0)
                return null;
            else
                return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
        }
        ///<summary>
        /// 将表示函数地址的 intPtr 实例转换成对应的委托
        ///</summary>
        public static Delegate GetDelegateFromIntPtr(IntPtr address, Type t)
        {
            if (address == IntPtr.Zero)
                return null;
            else
                return Marshal.GetDelegateForFunctionPointer(address, t);
        }
        ///<summary>
        /// 将表示函数地址的 int  转换成对应的委托
        ///</summary>
        public static Delegate GetDelegateFromintPtr(int address, Type t)
        {
            if (address == 0)
                return null;
            else
                return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
        }
    }
    public static class InvokeDllInvoke
    {
        /// <summary>
        /// DLL文件名称
        /// </summary>
        public static string DllFileName = “”;
        /// <summary>
        /// DLL实例
        /// </summary>
        private static int hModule = -1;
        /// <summary>
        /// 初始化实例
        /// </summary>
        /// <returns></returns>
        public static bool InitModule()
        {
            if (hModule > 0)
            {
                return true;
            }
            hModule = DLLWrapper.LoadLibrary(DllFileName);
            if (hModule == 0)
                return false;
            return true;
        }
        /// <summary>
        /// 卸载实例
        /// </summary>
        /// <returns></returns>
        public static bool UnInitModule()
        {
            if (hModule == 0)
                return false;
            DLLWrapper.FreeLibrary(hModule);
            hModule = 0;
            return true;
        }
        private delegate void DTest1([MarshalAs(UnmanagedType.LPWStr)] string str);
        private delegate void DTest2([MarshalAs(UnmanagedType.LPWStr)] StringBuilder sb);
        public static void Test1(string str)
        {
            DTest1 d = (DTest1)DLLWrapper.GetFunctionAddress(hModule, “Test1”, typeof(DTest1));
            if (d == null)
                return;
            d(str);
        }
        public static void Test2(StringBuilder sb)
        {
            DTest2 d = (DTest2)DLLWrapper.GetFunctionAddress(hModule, “Test2”, typeof(DTest2));
            if (d == null)
                return;
            d(sb);
        }
    }
}

发表在 C# | 标签为 , , | 留下评论

c# 图像旋转

#region 图片旋转函数
        /// <summary>
        /// 以逆时针为方向对图像进行旋转
        /// </summary>
        /// <param name=”b”>位图流</param>
        /// <param name=”angle”>旋转角度[0,360](前台给的)</param>
        /// <returns></returns>
        public static Bitmap Rotate(Bitmap b, int angle)
        {
            angle = angle % 360;
            //弧度转换
            double radian = angle * Math.PI / 180.0;
            double cos = Math.Cos(radian);
            double sin = Math.Sin(radian);
            //原图的宽和高
            int w = b.Width;
            int h = b.Height;
            int W = (int)(Math.Max(Math.Abs(w * cos – h * sin), Math.Abs(w * cos + h * sin)));
            int H = (int)(Math.Max(Math.Abs(w * sin – h * cos), Math.Abs(w * sin + h * cos)));
            //目标位图
            Bitmap dsImage = new Bitmap(W, H);
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(dsImage);
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //计算偏移量
            Point Offset = new Point((W – w) / 2, (H – h) / 2);
            //构造图像显示区域:让图像的中心与窗口的中心点一致
            Rectangle rect = new Rectangle(Offset.X, Offset.Y, w, h);
            Point center = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
            g.TranslateTransform(center.X, center.Y);
            g.RotateTransform(360 – angle);
            //恢复图像在水平和垂直方向的平移
            g.TranslateTransform(-center.X, -center.Y);
            g.DrawImage(b, rect);
            //重至绘图的所有变换
            g.ResetTransform();
            g.Save();
            g.Dispose();
            //dsImage.Save(“yuancd.jpg”, System.Drawing.Imaging.ImageFormat.Jpeg);
            return dsImage;
        }
        #endregion 图片旋转函数

 

public static Bitmap rotateImage(Bitmap b, float angle)
{
    //create a new empty bitmap to hold rotated image
    Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
    //make a graphics object from the empty bitmap
    Graphics g = Graphics.FromImage(returnBitmap);
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
    //move rotation point to center of image
    g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
    //rotate
    g.RotateTransform(angle);
    //move image back
    g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
    //draw passed in image onto graphics object
    g.DrawImage(b, new Point(0, 0));
    return returnBitmap;
}

 

 
public static Bitmap RotateImage(Bitmap image, float rotateAtX, float rotateAtY, float angle, bool bNoClip)
{
    int W, H, X, Y;
    if (bNoClip)
    {
        double dW = (double)image.Width;
        double dH = (double)image.Height;

        double degrees = Math.Abs(angle);
        if (degrees <= 90)
        {
            double radians = 0.0174532925 * degrees;
            double dSin = Math.Sin(radians);
            double dCos = Math.Cos(radians);
            W = (int)(dH * dSin + dW * dCos);
            H = (int)(dW * dSin + dH * dCos);
            X = (W – image.Width) / 2;
            Y = (H – image.Height) / 2;
        }
        else
        {
            degrees -= 90;
            double radians = 0.0174532925 * degrees;
            double dSin = Math.Sin(radians);
            double dCos = Math.Cos(radians);
            W = (int)(dW * dSin + dH * dCos);
            H = (int)(dH * dSin + dW * dCos);
            X = (W – image.Width) / 2;
            Y = (H – image.Height) / 2;
        }
    }
    else
    {
        W = image.Width;
        H = image.Height;
        X = 0;
        Y = 0;
    }

    //create a new empty bitmap to hold rotated image
    Bitmap bmpRet = new Bitmap(W, H);
    bmpRet.SetResolution(image.HorizontalResolution, image.VerticalResolution);

    //make a graphics object from the empty bitmap
    Graphics g = Graphics.FromImage(bmpRet);

    //Put the rotation point in the “center” of the image
    g.TranslateTransform(rotateAtX + X, rotateAtY + Y);

    //rotate the image
    g.RotateTransform(angle);

    //move the image back
    g.TranslateTransform(-rotateAtX – X, -rotateAtY – Y);

    //draw passed in image onto graphics object
    g.DrawImage(image, new PointF(0 + X, 0 + Y));

    return bmpRet;
}

发表在 C# | 标签为 , | 留下评论

truetable11.0免费版

下载:truetable11pj

truetable11.0说明
默认安装,装好之后,将TrueTable 11.0I(AutoCAD)文件夹中所有内容把安装文件下的全部替换,再导入注册表
1). 将CAD中的表格或文本输出到Excel
2). 将CAD中的表格或文本输出到文本文件(TXT)或csv文件
3). 直接输出CAD中的任意表格,即使这些表格是复杂实体
4). 将Excel表格导入CAD
5). 将文本文件(TXT)或CSV文件导入CAD
6). 同时将多个CAD表格输出到Excel文件
7). 可以精确定义CAD表格尺寸,包括文字高度、文字宽度系数、行高、列宽
8). 可以设置表格外框,网格,文本的颜色
9). 按Excel表格或Excel文件更新CAD表格
10). 如果输入的表格太长,自动将表格分片,并能设置表头,表尾
11). 支持文本水平、垂直排列,共9种对齐方式
12). 支持自动换行,上、下标,文本旋转,竖直文本,多行文本
13). 具有文本自动替换功能,能使CAD中的特殊符号在Excel中正确显示,如将”%%c”替换为”Φ”%
14). 支持Excel的隐藏行、列
15). 支持表格倒置,即输出、输入表格时颠倒表格顺序
16). 5种表格插入方式: 表格四个角点以及指定窗口
17). 对CAD中的文本进行统计
18). 批量输出MST,SFCAD,TWCAD材料表
19). 材料表自动计算,钢结构用钢量统计
truetable11.0安装:
安装TrueTable11.0前,先将TrueTable以前的版本反安装,再执行install.exe进行安装

truetable11.0注册:

在CAD中选择”TrueTable”菜单,点击”注册”,或者输入命令”tt_reg”

1.在cad2006中,完美使用,若进行替换后就不用在输入注册码。
2.将CAD的表格数据导出需要按下图进行设置

3.不能识别汉字,需要将有标题行的汉字与表格错开,否则truetable11会提示不能识别256列。

truetable11.0 注册码:4CAA126D41E55407861496D2F2A2059A
用户名: JSHNGJ

发表在 CAD实用软件 | 标签为 , , | 留下评论

arx2015使用acedCommand报错

arx2015使用acedCommand报错

是因为arx 2015已经将acedCommand函数升级为acedCommandS函数

使用该函数需要添加头文件”acedCmdNF.h”

发表在 ObjectArx | 留下评论