科学网

 找回密码
  注册

tag 标签: AutoCAD

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

如何生成在AutoCAD中可直接加载的3D等高线
czhou28 2017-2-1 23:00
如何生成在 AutoCAD 中可直接加载的 3D 等高线 在 MapInfo/Discover 中加载具有 3D 性质的等高线很容易。但是对于 AutoCAD 如何实现呢?注意分如下几步: 1 、下载 DEM 或者等高线。使用 GlobalMapper 或者 91 卫图下载即可。本文使用 91 卫图下载( 下载选用 WGS84 经纬度坐标 )。 GlobalMapper上各种来源的DEM较多,我发现不少精度有问题,不同地区需要验证; 91 卫图的DEM精度好一些,但是91卫图的坐标就是BJ54 西安80 WGS84等国内常用的几种。 2 、下载后用 GlobalMapper 打开。 打开时选择坐标如图,即 WGS 84 经纬度格式。此时 一定不要改 Central Longitude (就让它缺省为 0 即可),也不要改成 UTM WGS 84 方 里网坐标(此处如改成 UTM 方里网,以后显示则不正确 。 打开后如下图,即显示 WGS 84 经纬度 3 、 Tools Configure 把坐标修改成 UTM WGS 84 坐标 左图为修改前 右图为修改后 这时等高线坐标主显示为 UTMWGS84 方里网。见下图 4 、 File ExportVector Format 输出为 DWG 格式,如果输出为 dxf 格式则在 AutoCAD 中不显示 3D 等高线。 选择输出 AutoCAD 版本和包含 Projection 投影文件且 Creat 3D Feature Using Loaded Elevation Data 5 、直接在 AutoCAD 中打开第四步生成的 dwg 文件即可,打开后如下图。
个人分类: MapInfo/Discover|3969 次阅读|0 个评论
AutoCAD与L-edit软件“合作”
热度 2 fxd185 2012-11-19 17:08
最近需要做一块光刻版,cell为圆,圆心位置不具有平移对称性,但具有一定的旋转对称性。这就增加了一定的难度,Ledit在做旋转及对称操作时不太方便。经过几天的摸索与实践,现总结经验如下。 1,AutoCAD在平面及三维制图具有相当的优势,做旋转,平移,镜像,阵列操作非常方便。所以先利用CAD制作圆,当圆的数量超过几十万个时,对计算机性能要求比较高。利用图层及基本操作制作好版图,另存为.dxf格式文件。 2,利用linkCAD软件将.dxf文件转换为GDSⅡ格式文件。linkCAD是一款非常好用的图形格式转换软件。 3,利用Ledit将GDSⅡ格式导入,即生成版图,再利用Ledit里的复制操作。 但是有个问题,当CAD中的圆转变为Ledit里时,并不是圆,而是多线段,因为圆就是一定数量的多线段组成的。这就会使几M的CAD文件变为几百M的tdb文件。解决这个问题如下: a, 利用工程桩自动编号并提取坐标程序gczbhg6.VLX把CAD里的圆心坐标统计出来,存为txt文件。 b,在Ledit里画个圆,利用copy命令结合txt文件,即可做出圆,而并非多线段,这样会使tdb文件小些。 我做的版图圆的数量比较多,做图过程中出现过许多问题,但最终都逐一解决。尽管耗时较多,但学到了不少东西。
个人分类: 科研生活|18174 次阅读|3 个评论
[转载]AutoCAD的颜色表
majian 2012-5-29 16:58
AutoCAD Color Index (ACI) RGB equivalents From:http://www.isctex.com/acadcolors.php The table below contains hexadecimal and decimal RGB codes for the 256 colors in the AutoCAD Color Index (numbers 0-255). The information contained in this table was obtained from this site . The coded colors are shown in the ACI number cell for each row. Note that these are not "Netscape-friendly" colors and will probably dither. Hexadecimal AutoCAD ColorIndex # Decimal Red Green Blue Red Green Blue 0 0 0 0 0 0 0 FF 0 0 1 255 0 0 FF FF 0 2 255 255 0 0 FF 0 3 0 255 0 0 FF FF 4 0 255 255 0 0 FF 5 0 0 255 FF 0 FF 6 255 0 255 FF FF FF 7 255 255 255 41 41 41 8 65 65 65 80 80 80 9 128 128 128 FF 0 0 10 255 0 0 FF AA AA 11 255 170 170 BD 0 0 12 189 0 0 BD 7E 7E 13 189 126 126 81 0 0 14 129 0 0 81 56 56 15 129 86 86 68 0 0 16 104 0 0 68 45 45 17 104 69 69 4F 0 0 18 79 0 0 4F 35 35 19 79 53 53 FF 3F 0 20 255 63 0 FF BF AA 21 255 191 170 BD 2E 0 22 189 46 0 BD 8D 7E 23 189 141 126 81 1F 0 24 129 31 0 81 60 56 25 129 96 86 68 19 0 26 104 25 0 68 4E 45 27 104 78 69 4F 13 0 28 79 19 0 4F 3B 35 29 79 59 53 FF 7F 0 30 255 127 0 FF D4 AA 31 255 212 170 BD 5E 0 32 189 94 0 BD 9D 7E 33 189 157 126 81 40 0 34 129 64 0 81 6B 56 35 129 107 86 68 34 0 36 104 52 0 68 56 45 37 104 86 69 4F 27 0 38 79 39 0 4F 42 35 39 79 66 53 FF BF 0 40 255 191 0 FF EA AA 41 255 234 170 BD 8D 0 42 189 141 0 BD AD 7E 43 189 173 126 81 60 0 44 129 96 0 81 76 56 45 129 118 86 68 4E 0 46 104 78 0 68 5F 45 47 104 95 69 4F 3B 0 48 79 59 0 4F 49 35 49 79 73 53 FF FF 0 50 255 255 0 FF FF AA 51 255 255 170 BD BD 0 52 189 189 0 BD BD 7E 53 189 189 126 81 81 0 54 129 129 0 81 81 56 55 129 129 86 68 68 0 56 104 104 0 68 68 45 57 104 104 69 4F 4F 0 58 79 79 0 4F 4F 35 59 79 79 53 BF FF 0 60 191 255 0 EA FF AA 61 234 255 170 8D BD 0 62 141 189 0 AD BD 7E 63 173 189 126 60 81 0 64 96 129 0 76 81 56 65 118 129 86 4E 68 0 66 78 104 0 5F 68 45 67 95 104 69 3B 4F 0 68 59 79 0 49 4F 35 69 73 79 53 7F FF 0 70 127 255 0 D4 FF AA 71 212 255 170 5E BD 0 72 94 189 0 9D BD 7E 73 157 189 126 40 81 0 74 64 129 0 6B 81 56 75 107 129 86 34 68 0 76 52 104 0 56 68 45 77 86 104 69 27 4F 0 78 39 79 0 42 4F 35 79 66 79 53 3F FF 0 80 63 255 0 BF FF AA 81 191 255 170 2E BD 0 82 46 189 0 8D BD 7E 83 141 189 126 1F 81 0 84 31 129 0 60 81 56 85 96 129 86 19 68 0 86 25 104 0 4E 68 45 87 78 104 69 13 4F 0 88 19 79 0 3B 4F 35 89 59 79 53 0 FF 0 90 0 255 0 AA FF AA 91 170 255 170 0 BD 0 92 0 189 0 7E BD 7E 93 126 189 126 0 81 0 94 0 129 0 56 81 56 95 86 129 86 0 68 0 96 0 104 0 45 68 45 97 69 104 69 0 4F 0 98 0 79 0 35 4F 35 99 53 79 53 0 FF 3F 100 0 255 63 AA FF BF 101 170 255 191 0 BD 2E 102 0 189 46 7E BD 8D 103 126 189 141 0 81 1F 104 0 129 31 56 81 60 105 86 129 96 0 68 19 106 0 104 25 45 68 4E 107 69 104 78 0 4F 13 108 0 79 19 35 4F 3B 109 53 79 59 0 FF 7F 110 0 255 127 AA FF D4 111 170 255 212 0 BD 5E 112 0 189 94 7E BD 9D 113 126 189 157 0 81 40 114 0 129 64 56 81 6B 115 86 129 107 0 68 34 116 0 104 52 45 68 56 117 69 104 86 0 4F 27 118 0 79 39 35 4F 42 119 53 79 66 0 FF BF 120 0 255 191 AA FF EA 121 170 255 234 0 BD 8D 122 0 189 141 7E BD AD 123 126 189 173 0 81 60 124 0 129 96 56 81 76 125 86 129 118 0 68 4E 126 0 104 78 45 68 5F 127 69 104 95 0 4F 3B 128 0 79 59 35 4F 49 129 53 79 73 0 FF FF 130 0 255 255 AA FF FF 131 170 255 255 0 BD BD 132 0 189 189 7E BD BD 133 126 189 189 0 81 81 134 0 129 129 56 81 81 135 86 129 129 0 68 68 136 0 104 104 45 68 68 137 69 104 104 0 4F 4F 138 0 79 79 35 4F 4F 139 53 79 79 0 BF FF 140 0 191 255 AA EA FF 141 170 234 255 0 8D BD 142 0 141 189 7E AD BD 143 126 173 189 0 60 81 144 0 96 129 56 76 81 145 86 118 129 0 4E 68 146 0 78 104 45 5F 68 147 69 95 104 0 3B 4F 148 0 59 79 35 49 4F 149 53 73 79 0 7F FF 150 0 127 255 AA D4 FF 151 170 212 255 0 5E BD 152 0 94 189 7E 9D BD 153 126 157 189 0 40 81 154 0 64 129 56 6B 81 155 86 107 129 0 34 68 156 0 52 104 45 56 68 157 69 86 104 0 27 4F 158 0 39 79 35 42 4F 159 53 66 79 0 3F FF 160 0 63 255 AA BF FF 161 170 191 255 0 2E BD 162 0 46 189 7E 8D BD 163 126 141 189 0 1F 81 164 0 31 129 56 60 81 165 86 96 129 0 19 68 166 0 25 104 45 4E 68 167 69 78 104 0 13 4F 168 0 19 79 35 3B 4F 169 53 59 79 0 0 FF 170 0 0 255 AA AA FF 171 170 170 255 0 0 BD 172 0 0 189 7E 7E BD 173 126 126 189 0 0 81 174 0 0 129 56 56 81 175 86 86 129 0 0 68 176 0 0 104 45 45 68 177 69 69 104 0 0 4F 178 0 0 79 35 35 4F 179 53 53 79 3F 0 FF 180 63 0 255 BF AA FF 181 191 170 255 2E 0 BD 182 46 0 189 8D 7E BD 183 141 126 189 1F 0 81 184 31 0 129 60 56 81 185 96 86 129 19 0 68 186 25 0 104 4E 45 68 187 78 69 104 13 0 4F 188 19 0 79 3B 35 4F 189 59 53 79 7F 0 FF 190 127 0 255 D4 AA FF 191 212 170 255 5E 0 BD 192 94 0 189 9D 7E BD 193 157 126 189 40 0 81 194 64 0 129 6B 56 81 195 107 86 129 34 0 68 196 52 0 104 56 45 68 197 86 69 104 27 0 4F 198 39 0 79 42 35 4F 199 66 53 79 BF 0 FF 200 191 0 255 EA AA FF 201 234 170 255 8D 0 BD 202 141 0 189 AD 7E BD 203 173 126 189 60 0 81 204 96 0 129 76 56 81 205 118 86 129 4E 0 68 206 78 0 104 5F 45 68 207 95 69 104 3B 0 4F 208 59 0 79 49 35 4F 209 73 53 79 FF 0 FF 210 255 0 255 FF AA FF 211 255 170 255 BD 0 BD 212 189 0 189 BD 7E BD 213 189 126 189 81 0 81 214 129 0 129 81 56 81 215 129 86 129 68 0 68 216 104 0 104 68 45 68 217 104 69 104 4F 0 4F 218 79 0 79 4F 35 4F 219 79 53 79 FF 0 BF 220 255 0 191 FF AA EA 221 255 170 234 BD 0 8D 222 189 0 141 BD 7E AD 223 189 126 173 81 0 60 224 129 0 96 81 56 76 225 129 86 118 68 0 4E 226 104 0 78 68 45 5F 227 104 69 95 4F 0 3B 228 79 0 59 4F 35 49 229 79 53 73 FF 0 7F 230 255 0 127 FF AA D4 231 255 170 212 BD 0 5E 232 189 0 94 BD 7E 9D 233 189 126 157 81 0 40 234 129 0 64 81 56 6B 235 129 86 107 68 0 34 236 104 0 52 68 45 56 237 104 69 86 4F 0 27 238 79 0 39 4F 35 42 239 79 53 66 FF 0 3F 240 255 0 63 FF AA BF 241 255 170 191 BD 0 2E 242 189 0 46 BD 7E 8D 243 189 126 141 81 0 1F 244 129 0 31 81 56 60 245 129 86 96 68 0 19 246 104 0 25 68 45 4E 247 104 69 78 4F 0 13 248 79 0 19 4F 35 3B 249 79 53 59 33 33 33 250 51 51 51 50 50 50 251 80 80 80 69 69 69 252 105 105 105 82 82 82 253 130 130 130 BE BE BE 254 190 190 190 FF FF FF 255 255 255 255
个人分类: 技术|5312 次阅读|0 个评论
趣味AutoCAD 绘图(三)
mdymww 2012-4-11 19:40
趣味 AutoCAD 绘图 ( 三 ) 怎么用最简单方法绘制如下图? 分析: A ) AUTOCAD 绘图中使用 PLINE 命令时,可以直线与弧同时绘制; B )也可以采用透明命令( ′ CAL ); C )可以使用 pi( π ) 。 第一步 第二步 第三步 重复第二步多次。 此法最简单。
个人分类: 生活点滴|169 次阅读|0 个评论
趣味AutoCAD 绘图(二)
mdymww 2012-4-10 22:04
趣味 AutoCAD 绘图(二) 怎么采用最少的步骤绘制下图,类似标准跑道? 分析: A ) AutoCAD 绘图中使用 FI ( Fillet )命令时,有一个特例,当半径为零时,会出现一个有趣的现象; B )许多的曲线可以经过编辑而成为多义线,多义线的偏移非常好用; C ) ’ 透明命令的使用 , “ ’Cal ”的应用。 第一步 第二步 第三步 第四步 第五步 再重复第五步就完成了。
个人分类: 生活点滴|172 次阅读|0 个评论
[转载]趣味AutoCAD 绘图(一)
mdymww 2012-4-10 19:24
趣味 AutoCAD 绘图(一) 1) 怎么绘制如下立体图? 分析: A ) AutoCAD 绘图中使用 EXT ( Extrude )命令时,只能有一个角度; B )现在是四个角度,分别是 1 、 3 、 5 、 7, 肯定是不能直接绘制; C )可以考虑使用布尔代数。 2 )第一步 3 )第二步 4 )第三步 5 )第四步 设计使用布尔代数步骤 6 )第五步 SUBTRACT 后 完成
个人分类: 生活点滴|184 次阅读|0 个评论
截取给定平面坐标范围内的Google earth图片。
entropy 2012-3-23 15:04
截取给定平面坐标范围内的Google earth图片。
不讨论知道了 WCS 坐标,那你就输入吧。 Google 有专门的读取程序吧,或者去编辑 KMZ 文件。直接用 Getscreen 截图就行了。 给定平面坐标图 X.dwg ,如何截取对应 Google earth 图片。要求是截出图来,还要把线画上。 以前的方法是把 X.dwg 的坐标读取出来,再转换成 WCS 坐标,输入到 Google earth 中。差距也不大 100 米左右,位置就差不多了。截图。再输入到 Arcgis 里,通过地物配准。加上线图层出图。 缺点,还是不知道正确的 WCS 坐标,不知道 kml ,别人不能共享。 有时截小了就得重新来。 如果 4 个点行,如果 1000 个点呢?工作量太大,有些曲线点更多。 没有边界坐标,配准时利用的是图片中间的地物,使得图片变形不均匀,我的棋盘井项目就存在这样的问题。 1 用到软件 Arcgis/AutoCAD/Google earth/GetScreen. 2 整理平面坐标图 设 X 包括 A 、 B 、 *n 部分。 整理 CAD 文件中平面图 X ,保留中的可能在 Google earth 中看到的矿界、等高线、道路、建筑等地物,剔除冗余信息(一定要保留矿界信息和标志地物)。 3 转出 shp 在 Arcgis 中打开 X.dwg ,导出,形成 A.shp 文件,加上坐标系。保证在此坐标下显示上正确的。即文件的坐标与软件中的坐标是一致的。 4 找校正标准 4.1 概述 如果知道 X 中某地物 A 的 WCS 坐标,直接进 Google earth ,画出 A.kml ,它就是校正标准。 如果不知道任何 WCS 坐标,就得找标志性地物,即 Google earth 和 X 上都有的地物。总之要有一个联系平面坐标与 WCS 坐标下图片的东西。 A 地物在 X 中,即有平面坐标,又有 WCS 坐标,能联系。标志地物 B 必须在平面坐标中有坐标,在 WCS 的图片上有图像。二者可以通过 Arcgis 配准。 A 和标志地物 B 带动整个 X 。 4.2 导出为 KML 从 Arcgis 中用“ Layer to KML ”工具,把平面坐标 X 输出为 Google earth 的位置文件 X.kml 。 4.3 找标志性地物 在 Google earth 打开 X.kml ,界线 X 也出来了(但大致位置差 100 多米)。 如果没有,停止吧 ! 如果有,断续 ! 5 截图 - 标准图片 把 A.kml 或 X.kml 边界设成黄色或其他什么色,在 Google 中截图。已知 WCS 的截成 A.bmp ,有标志性地物的 X.bmp 。其中的 A 地物和 X 中的标志性地物就是校正标准。 6 配准标准图片 Arcgis 中利用 X.shp 配准 A.bmp 或 X.bmp 。 配准他们的同时,与 A 在同一平面的其他 X 也配准了,当然配准 X.bmp 的结果也是这样的。 7 复制中间文件 复制一个 X.shp 为 X1.shp ,作为中间文件。 8 偏移 X.shp 文件 Arcgis 中加载截图 A.bmp 、 X1.shp 或 X.bmp 与 X1.shp 。 根据 A.bmp ,调整 X1.shp 。 或者根据 X.bmp 上的标志地物,调整 X1.shp 。 这就是为什么要有 A 地物 WCS 信息 注意 X1.shp 已经不能作为设计文件使用,仅仅是取得卫星图的中间工具。原来的 x.shp 才能用于设计。 这个图就是第一次截图的结果 x.bmp ,是配准到 x.shp 上的,图中红线即 x.shp 。蓝线是偏移了的 X1.shp 。 1 输出偏移的 X.shp 为 KML 从 Arcgis 中用“ Layer to KML ”工具,输出为 Google earth 的位置文件, X1.kml 。 2 截图 用 Google earth 打开 X1.kml 。 用 GetScreen 截图,得到 X1.bmp 。 这里下载软件和使用说明: http://bbs.sciencenet.cn/home.php?mod=spaceuid=44407do=blogid=548103 下图上用 X1.kml 截的图,完美了。 1 小结 同样上通过部分校正整体,传统方法是校正栅格图,本方法是校正矢量图,后者变形更均匀。
6553 次阅读|0 个评论
[转载]AutoCAD Mechanical 常用快捷键
arcechen 2012-3-19 21:33
AutoCAD Mechanical 常用快捷键 F1: 获取帮助 F2: 实现作图窗和文本窗口的切换 F3: 控制是否实现对象自动捕捉 F4: 数字化仪控制 F5: 等轴测平面切换 F6: 控制状态行上坐标的显示方式 F7: 栅格显示模式控制 F8: 正交模式控制 F9: 栅格捕捉模式控制 F10: 极轴模式控制 F11: 对象追 踪式控制 Ctrl+1: 对象特性 Ctrl+N: 新建 Ctrl+O: 打开 Ctrl+P: 打印 Ctrl+S: 保存 Ctrl+8: 快速计算器 CTRL+SHIFT+S:另存为 Ctrl+C: 将选择的对象复制到剪切板上 Ctrl+v: 粘贴剪贴板上的内容 Ctrl+X: 剪切所选择的内容 Ctrl+Y: 重做 Ctrl+Z: 取消前一步的操作 ***绘图*** L: 直线 XL:射线 AMS:对称线 PL:多段线 PE:多段线编辑 SPL:样条曲线 A: 三点圆弧 REC:矩形 POL:正多边形 C: 圆 EL:椭圆 DO:圆环 CL:中心线 CS:十字中心线 H: 自定义填充 ***修改*** RO:旋转 M: 移动 AL: 对齐 CO:复制 MI:镜像 AR: 阵列 O: 偏移 EX:延伸 TR:修剪 S: 拉伸 SC: 缩放比例 BR:打断 DIV:等分 PO:点 F: 倒圆角 CHA:倒角 **标注** PD:增强标注 DAN:角度标注 DAU:自动尺寸标注/半标注 **其它** T: 文本 E: 删除 X:分解 U: 恢复上一次操做 AV: 打开视图对话框 TABLE:插入表格 G: 对相组合 I: 插入块 B: 定义块 D: 尺寸资源管理器 ST: 打开字体设置对话框 W: 定义块并保存到硬盘中 V: 设置当前坐标 SE: 打开对相自动捕捉对话框 DI: 测量两点间的距离 **CAD空格键常用技巧** 选中图型基点 一下空格-----移动 二下空格-----旋转 三下空格-----缩放 四下空格-----镜相 鼠标滚轮缩放 鼠标中键拖动平移 鼠标中键双击zoom e 左键双击实体属性编辑 **ACM命令** BAL:放置引出序号 CB:过孔中心线 CLIN:绘制构造线 CLOO:构造线开/关 CR:增强操纵器 HIOO:隐藏线开/关 PAR:创建零件参照 PROO:零件参照图层开/关 PC:增强复制 PED:增强编辑 PER:增强删除 PRC:增强调用 PSS:增强捕捉设置1-4 STOO:标准件图层开/关 TIOO:标题栏图层开/关 V1:左上(显示图框左上角) V2:右上(显示图框右上角) V3:左下(显示图框左下角) V4:右下(显示图框右下角) V5:圆心(显示图框正中心) VAL:显示全部(显示整个图框)
2890 次阅读|0 个评论
[转载]解析DXF图形文件格式
majian 2012-2-14 16:39
来源: http://hi.baidu.com/kailern/blog/item/a9510df6be07be29720eecb0.html 一、 DXF 文件格式分析 DXF 文件由标题段、表段、块段、实体段和文件结束段5部分组成,其内容如下。 ☆标题段(HEADER)标题段记录AutoCAD系统的所有标题变量的当前值或当前状态。标题变量记录了AutoCAD系统的当前工作环境,如SNAP捕捉当前状态、栅格间距式样、当前图层层名及线型、颜色等。 ☆表段(TABLES)表段共包含4个表,每个表又包含可变数目的表项。这些表在文件中出现的顺序是线型表(LTYPE)、图层表(LAYER)、字样表(STYLE)、视图表(VIEW)。 ☆块段(BLOCK)块段记录了所用块的块名,当前图层层名、块的种类、块的插入基点及组成该块的所有成员。块的种类分为图形块、带有属性的块和无名块三种。无名块包括用HATCH命令生成的剖面线和用DIM命令所完成的尺寸标准。 ☆实体段(ENTITIES)实体段记录了每个实体的名称、所在图层及其名字、线型、颜色等。 ☆文件结束段(EOF OF FILE) DXF 文件的结束标志。 一个 DXF 文件由若干个组构成,每个组占两行,第一行为组的代码,第二行为组值。组代码相当于数据类型的代码,它由CAD图形系统所规定,而组值为具体的数值,二者结合起来表示一个数据的含义和值。例如,代码10代表一个点的X坐标,占一行,而其第二行4.5425则是点X坐标的具体数值,二者结合表示一点,其X坐标值为4.5425。 (1)组代码和组值的类型组代码为一个非负的不超过三位的整数,而组值由组代码的类型决定。例如: 代码0~9组值类型为字符型。 代码10~59组值类型为实型。 代码60~79组值类型为整型。 代码999表示解释行。 (2)组代码的含义每个组代码均有规定的含义,有些代码含义是固定的,而有些组代码则因应用场合不同而有多个含义,应具体分析。另外,一些代码是备用的,目前版本尚未用到,现将他们的含义举例介绍如下。 0:表示一个事物的开始,如一个块、表、图层、实体等。 1:字符型数据的值,如TEXT的字符串、文件名、属性值等。 2:一个事物的名字,如段、表、块、线型、视图等的名字。 3~5:字符型数据的值,如文件名、线型说明等。 6:线型名(固定类型)。 8:图层名(固定类型)。 关于实体的坐标与相应的组代码10~18、20~28、30~38的用法应根据实体所用到点的数量,按组代码个位的0、1、2、……的顺序使用。例如LINE的起点组代码为10、20、30,而11、21、31为其终点。其他类似。 DXF 文件的结构相当复杂,完整读取 DXF 文件也是一项异常繁琐的工程。在实际应用中,为了提取图形的实体信息,可以省略 DXF 文件中的许多项,只要获取其中的层表、块段和实体段,就可以完成相应几何图形的描述。在层表中说明每一层的颜色、线型,在块段中说明块所在的层、属性及其在图形中的位置,在实体段中说明直线的起点、终点及圆的圆心、半径等几何信息和各实体所在的层。根据实体所在的层,在层表中搜索每一层的颜色、线型并将其添加到实体对象中。在利用CAD进行绘图时,需将变量参数DIMASO设为ON,以保证块段中定义的尺寸块为一个整体,并可被正确无误地获取。根据尺寸类型名、尺寸定义的起点、终点坐标与实体类型名、实体空间坐标是否匹配,对实体对象进行尺寸附加。在绘图时,如对自定义的粗糙度、形位公差等块不进行“EXPLODE”炸开操作,也可通过增加相应读取函数提取其属性。 下面举例说明实体段在 DXF 文件中的格式。 圆弧(ARC) 0(开始)ARC(圆弧) 8(层的组码) W1(层名为“W1”) 10(圆弧圆心的X坐标组码) 7.0(圆弧圆心的X坐标组值) 20(圆弧圆心的Y坐标组码) 9.0(圆弧圆心的Y坐标组值) 30(圆弧圆心的Z坐标组码) 0.0(圆弧圆心的Z坐标组值) 40(圆弧的半径组码) 25.0(圆弧的半径值) 50(圆弧的起始角度组码) 90.0(圆弧的起始角度值) 51(圆弧的终止角度组码) 180.0(圆弧的终止角度组值) 若实体的线型用BYLAYER,颜色为256(即BYLAYER),基面高度和厚度为零,其格式可简化。 对于其他图形实体的格式描述(LINE、CIRCLE、TEXT等),这里就不再一一详述了。    二、几何图形实体信息的提取 生成 DXF 文件必须首先进入图形编辑环境,在命令(Command)提示下键入DXFOUT,回答所需的一个文件名后,即把内部压缩格式的图形数据转换为ASCⅡ的数据并写入相应 DXF 文件(以 DXF 为扩展名)中,供应用程序提取并处理实体数据。    三、几何图形描述的数据结构 通过对CAD系统的 DXF 图形交换文件进行分析,可以得到描述零件的全部几何图形元素。为简化问题,设定组成零件内外轮廓的图形元素只包括点、直线和圆弧,并分别用下列数据结构表示。 点:class POINT { float x;float y;float z;}虚基类:class SHAPE{ //由虚基类派生出直线、圆弧,便于链表操作public: virtual void showEntity()=0;//表示此函数在派生类中必须定义……//在此定义其他虚函数} 直线:class LINE:public SHAPE,public POINT{ public://直线类由两个基类SHAPE和POINT派生而来POINT start_point;//直线起点POINT end_point;//直线终点……//在此定义其他内部变量和函数}圆弧:class ARC:public SHAPE,public POINT{ public://圆弧类由两个基类SHAPE和POINT派生而来POINT center_point;//圆弧圆心POINT start_point;//圆弧起点POINT end_point;//圆弧终点float radius;//圆弧半径……//在此定义其他内部变量和函数}结点:struct Node //定义结点,便于链表内部删除,增加和修改{SHAPE *Item;//内容域Node *llink;//左指针Node *rlink;//右指针} 链表:class LIST { //链表类private: Node *head;//结点头指针public: LIST();//构造函数,进行变量初始化void~LIST();//析构函数,释放内存void addEntity(SHAPE *);//定义增加图形元素的函数……//在此定义其他函数}由此,回转体零件的几何图形元素不难用上述数据结构以线性链表进行存储。完整的特征识别系统不仅仅包含几何信息,还要包括加工工艺信息,而常用的几何造型CAD系统并不提供后者。为此,我们在AutoCAD系统中定义了一套工艺信息块,其全部以图形文件块的形式存储,这些信息包括:形状公差(直线度、平面度、圆度、圆柱度、线轮廓度和面轮廓度)、位置公差(平行度、垂直度、倾斜度、同轴度、对称度、位置度、圆跳动和全跳动)、表面粗糙度和基准等。
个人分类: 技术|10006 次阅读|0 个评论
[转载]ArcGIS实现与AutoCAD轻松互操作
geoallan 2011-10-14 19:50
过去,在AutoCAD中无法轻松获取地理信息,因为获取数据会打乱CAD的工作流程。最近,ESRI推出了一款免费程序,可以使CAD在保持原有工作流程的同时,更好地分享和使用AutoCAD文件中的地理信息内容。用户可以在AutoCAD的环境中直接调用ArcGIS Server发布的企业级数据和影像;还可以在ArcGIS中使用AutoCAD生产的数据。   通过该应用程序,用户可以通过网络浏览和查询企业级GIS信息。这些ArcGIS Server发布的海量信息可来自于政府或企业站点。这为CAD设计师和工程师们提供了设计所需的环境、基础设施等重要信息。此外,该程序无需转换底层的GIS数据,就可以在AutoCAD中直接访问ArcGIS Server所发布的地图,并可以把地图服务的内容自动导入到AutoCAD中。它还能够支持ArcGIS Server的缓存地图服务和有安全机制的地图服务;以及通过ArcGIS Online获取额外的免费地图。 ArcGIS实现与AutoCAD轻松互操作   另外,ESRI还开发了一个新的数据编码方法。这个数据编码方法在遵循现有CAD标准的同时,可以让用户像GIS一样对CAD数据的组织和归属进行创建、操作和定义。同时它还提供了许多工具,使用户可以按照标准的AutoCAD文件格式去创建和编辑GIS要素类,并为任意AutoCAD实体添加属性,还可以用专门的应用程序接口来搭建基于CAD的GIS应用程序。用这种数据编码方法优化过的AutoCAD文件能够直接用于ArcGIS以及AutoCAD的应用程序中。   该应用程序与AutoCAD 2007/2008/2009、ArcGIS Server 9.2及其以上版本都兼容。想下载这个免费应用程序或了解更多信息请参阅www.esri.com/autocadapp。观看演示视频:http://vid01.esri.com/winmmedia/autocad_09.wmv
个人分类: 地理信息科学|4004 次阅读|0 个评论
一个在AutoCAD里添加菜单的类,用COM接口实现(转载)
huguanhu 2009-11-10 12:06
AddCADFrameMenu.h文件如下: /**/ /* ------------------------------------------------------------------------- 作者:RackyYe 该类封装了在AuToCAD上添加菜单及子菜单的方法,使用COM接口实现 大家可以任意修改,添加新功能,希望大家能多交流 Email:yeguixi@126.com -------------------------------------------------------------- 使用方法: CAddCADFrameMenumenu; menu.AddMenu(我的菜单); menu.AddSubMenu(弹出对话框,_DLG); menu.AddSubMenu(绘制线条,_DRAWL); menu.AddSubMenu(*Line);//加*号表示是二级子菜单 menu.AddSubMenu($CIRCLE,_CIRCLE);//加$号表示二级子菜单下的菜单条 menu.AddSubSeparator(); menu.AddSubMenu($PLINE,_PLINE);//加$号表示二级子菜单下的菜单条 menu.AddSeparator(); menu.AddSubMenu(选择文件夹,_SELFOLDER); menu.AddSubMenu(*TEXT);//加*号表示是二级子菜单 menu.AddSubMenu($MTEXT,_TEXT);//加$号表示二级子菜单下的菜单条 menu.CreateMenus(); -------------------------------------------------------------- ---------------------------------------------------------------------------- */ #if !defined(AFX_ADDCADFRAMEMENU_H__153847F5_DE2C_4B6E_83E8_5BE9FE780CD8__INCLUDED_) #define AFX_ADDCADFRAMEMENU_H__153847F5_DE2C_4B6E_83E8_5BE9FE780CD8__INCLUDED_ #if _MSC_VER1000 #pragma once #endif // _MSC_VER1000 #include afxtempl.h #include acad15.h typedef struct CADMenu ... { char name ; char order ; } CADMenu; class CAddCADFrameMenu ... { public : CAddCADFrameMenu(); virtual ~ CAddCADFrameMenu(); // 创建菜单 void CreateMenus(); // 添加菜单 void AddMenu( const char * menuName); // 添加子菜单,menuName-菜单名--为分隔符,command要加空格 void AddSubMenu( const char * menuName, const char * command = NULL); // 添加分隔符 void AddSeparator(); // 添加二级子菜单分隔符 void AddSubSeparator(); static bool IsMenuExist(IAcadPopupMenu * pMnu, long index, const char * mnuname,IAcadPopupMenus * mnus); // 菜单是否存在,避免二次加载addbyzhengzhilin static bool GetAcadApplication(IAcadApplication * pAcadApp); static bool GetAcadMenuGroup(IAcadMenuGroup ** pVal,LPCTSTRmenuname); static bool GetLastMenuFromMenubar(CString sMenu); static void ClearMenu(IAcadPopupMenus * mnus,LPCTSTRmenuname); static bool GetAcadApplication(LPDISPATCH * pVal); static bool GetAcadMenuGroup(IAcadMenuGroup ** pVal); static void CleanUpMenus(); // 创建了Menu一定要调用这个函数 private : class CCADMenuArray: public CArray CADMenu * ,CADMenu * ... { public : int AddMenu(CADMenu menu); int AddMenu( const char * menuName, const char * command); ~ CCADMenuArray(); } ; CArray CCADMenuArray * ,CCADMenuArray * m_menus; int m_menuCount; // 菜单个数 CStringArraym_TopMenuNames; // 菜单名 } ; #endif // !defined(AFX_ADDCADFRAMEMENU_H__153847F5_DE2C_4B6E_83E8_5BE9FE780CD8__INCLUDED_) AddCADFrameMenu.cpp文件如下: /**/ /* ------------------------------------------------------------------------- 作者:RackyYe 该类封装了在AuToCAD上添加菜单及子菜单的方法,使用COM接口实现 大家可以任意修改,添加新功能,希望大家能多交流 Email:yeguixi@126.com -------------------------------------------------------------- */ #include stdafx.h #include resource.h #include AddCADFrameMenu.h #include acad15_i.c #ifdef_DEBUG #undef THIS_FILE static char THIS_FILE ; } } int CAddCADFrameMenu::CCADMenuArray::AddMenu(CADMenu menu) ... { CADMenu * pMenu = new CADMenu; sprintf(pMenu - name,menu.name); sprintf(pMenu - order,menu.order); return Add(pMenu); } int CAddCADFrameMenu::CCADMenuArray::AddMenu( const char * menuName, const char * command) ... { if ( sizeof (menuName) 63 ) ... { #ifdef_DEBUG acutPrintf( menuName'%s'长度超出范围 ,menuName); #endif return - 99 ; } if ( sizeof (command) 63 ) ... { #ifdef_DEBUG acutPrintf( command'%s'长度超出范围 ,command); #endif return - 99 ; } CADMenu * pMenu = new CADMenu; sprintf(pMenu - name,menuName); if (command != NULL) sprintf(pMenu - order,command); return Add(pMenu); } CAddCADFrameMenu::CCADMenuArray:: ~ CCADMenuArray() ... { for ( int i = 0 ;i m_nSize;i ++ ) ... { if (GetAt(i) != NULL) ... { deleteGetAt(i); } } } void CAddCADFrameMenu::AddSubMenu( const char * menuName, const char * command) ... { RXASSERT(menuName != NULL); if (m_menuCount == 0 ) ... { #ifdef_DEBUG acutPrintf( 添加子菜单%s前没有调用AddMenu添加一个菜单条目!无法添加子菜单 ,menuName); #endif return ; } m_menus - AddMenu(menuName,command); } void CAddCADFrameMenu::AddSeparator() ... { m_menus - AddMenu( -- , ); } void CAddCADFrameMenu::AddSubSeparator() ... { m_menus - AddMenu( $-- , ); } void CAddCADFrameMenu::AddMenu( const char * menuName) ... { m_TopMenuNames.Add(menuName); CCADMenuArray * pArr = new CCADMenuArray; m_menuCount = m_menus.Add(pArr) + 1 ; } bool CAddCADFrameMenu::GetAcadApplication(LPDISPATCH * pVal) ... { LPDISPATCHpDispatch = acedGetAcadWinApp() - GetIDispatch(TRUE); if (pDispatch == NULL) return false ; * pVal = pDispatch; return true ; } bool CAddCADFrameMenu::GetAcadApplication(IAcadApplication * pAcadApp) ... { LPDISPATCHpDisp = NULL; if ( ! GetAcadApplication( pDisp)) return false ; HRESULThr = S_OK; hr = pDisp - QueryInterface(IID_IAcadApplication,(LPVOID * ) pAcadApp); if (FAILED(hr)) return false ; return true ; } bool CAddCADFrameMenu::GetLastMenuFromMenubar(CString sMenu) ... { IAcadApplication * pAcad = NULL; if ( ! GetAcadApplication(pAcad)) return false ; IAcadMenuBar * pMenuBar = NULL; IAcadPopupMenu * pPopUpMenu = NULL; pAcad - get_MenuBar( pMenuBar); pAcad - Release(); long numberOfMenus; pMenuBar - get_Count( numberOfMenus); // 得到菜单栏上面的最后一个菜单 BSTRname; VARIANTvIndex; vIndex.vt = VT_I4; vIndex.lVal = numberOfMenus - 1 ; pMenuBar - Item(vIndex, pPopUpMenu); pMenuBar - Release(); pPopUpMenu - get_NameNoMnemonic( name); pPopUpMenu - Release(); sMenu.Format( %S ,name); // debug大写,用于转化LPWSTR类型字符串 SysFreeString(name); return true ; } bool CAddCADFrameMenu::GetAcadMenuGroup(IAcadMenuGroup ** pVal,LPCTSTRmenuname) ... { IAcadApplication * acadApp = NULL; HRESULThr = S_OK; if ( ! GetAcadApplication(acadApp)) return false ; LPDISPATCHpTempDisp = NULL; IAcadMenuGroups * mnuGrps = NULL; long cnt = 0 ,cntmnu = 0 ; // 得到菜单组集 hr = acadApp - get_MenuGroups( mnuGrps); if (FAILED(hr)) ... { acadApp - Release(); return false ; } acadApp - Release(); mnuGrps - get_Count( cnt); // 得到菜单组 IAcadMenuGroup * mnuGrp = NULL; IAcadPopupMenus * mnus = NULL; IAcadPopupMenu * pPopUpMenu = NULL; VARIANTvtName,vtMenu; vtName.vt = VT_I4; vtMenu.vt = VT_I4; BSTRmnuName; bool found = false ; for ( long i = 0 ;i cnt;i ++ ) ... { vtName.lVal = i; hr = mnuGrps - Item(vtName, mnuGrp); if (FAILED(hr)) ... { return false ; } mnuGrp - get_Menus( mnus); mnus - get_Count( cntmnu); for ( long j = 0 ;j cntmnu;j ++ ) ... { vtMenu.lVal = j; hr = mnus - Item(vtMenu, pPopUpMenu); if (FAILED(hr)) continue ; pPopUpMenu - get_Name( mnuName); pPopUpMenu - Release(); CStringsMenuName(mnuName); SysFreeString(mnuName); sMenuName.Replace( , ); // debug if (sMenuName.CompareNoCase(menuname) == 0 ) ... { found = true ; * pVal = mnuGrp; break ; } } mnus - Release(); if (found) ... { break ; } else ... { mnuGrp - Release(); } } mnuGrps - Release(); return found; } bool CAddCADFrameMenu::GetAcadMenuGroup(IAcadMenuGroup ** pVal) ... { IAcadApplication * acadApp = NULL; HRESULThr = S_OK; if ( ! GetAcadApplication(acadApp)) return false ; LPDISPATCHpTempDisp = NULL; IAcadMenuGroups * mnuGrps = NULL; long cnt = 0 ; // 得到菜单组集 hr = acadApp - get_MenuGroups( mnuGrps); if (FAILED(hr)) ... { acadApp - Release(); return false ; } acadApp - Release(); mnuGrps - get_Count( cnt); // 得到菜单组 IAcadMenuGroup * mnuGrp = NULL; VARIANTvtName; vtName.vt = VT_I4; BSTRgrpName; bool found = false ; for ( long i = 0 ;i cnt;i ++ ) ... { vtName.lVal = i; hr = mnuGrps - Item(vtName, mnuGrp); if (FAILED(hr)) continue ; hr = mnuGrp - get_Name( grpName); CStringcgrpName(grpName); SysFreeString(grpName); if (cgrpName.CompareNoCase( Acad ) == 0 ) ... { found = true ; * pVal = mnuGrp; break ; } else ... { mnuGrp - Release(); } } mnuGrps - Release(); return found; } void CAddCADFrameMenu::CreateMenus() ... { CMDIFrameWnd * pMainFrame = acedGetAcadFrame(); pMainFrame - LockWindowUpdate(); // 得到菜单栏上面的最后一个菜单 CStringsName; if ( ! GetLastMenuFromMenubar(sName)) return ; sName.Replace( , ); // debug IAcadMenuGroup * mnuGrp = NULL; if ( ! GetAcadMenuGroup( mnuGrp,sName)) return ; // 得到所有菜单组 IAcadPopupMenus * mnus = NULL; IAcadPopupMenu * mnu = NULL; IAcadPopupMenuItem * mnuitem = NULL; HRESULThr = S_OK; hr = mnuGrp - get_Menus( mnus); long cnt = 0l ; hr = mnus - get_Count( cnt); int i = 0 ; int j = 0 ; int k = 0 ; VARIANTindex; VariantInit( index); V_VT( index) = VT_I4; CArray IAcadPopupMenu * ,IAcadPopupMenu * MnuAdrs; long lIndex = 0 ; WCHARMenuName ; for (i = 0 ;i m_menuCount;i ++ ) ... { CStringtmpMenu = m_TopMenuNames ; tmpMenu.Replace( , ); if (IsMenuExist(mnu,lIndex,tmpMenu,mnus)) // 处理二次加载 ... { V_I4( index) = lIndex; } else ... { MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,m_TopMenuNames , - 1 ,MenuName, 256 ); mnus - Add(MenuName, mnu); V_I4( index) = cnt ++ ; } MnuAdrs.Add(mnu); mnu - InsertInMenuBar(index); } IAcadPopupMenu * MenuItem = NULL; int subMenuNum = 0 ; CCADMenuArray * Menus; WCHARszSubMenu ; WCHARszSubMenuMacro ; CStringMenusName; CStringMenusorder; for (j = 0 ;j m_menuCount;j ++ ) ... { Menus = m_menus.GetAt(j); subMenuNum = Menus - GetSize(); for (k = 0 ;k subMenuNum;k ++ ) ... { mnu = MnuAdrs.GetAt(j); if ( ! strcmp( -- ,Menus - GetAt(k) - name)) ... { V_I4( index) = k; mnu - AddSeparator(index, mnuitem); } else ... { V_I4( index) = k; MenusName = Menus - GetAt(k) - name; Menusorder = Menus - GetAt(k) - order; MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,MenusName, - 1 ,szSubMenu, 256 ); MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,Menusorder, - 1 ,szSubMenuMacro, 256 ); if (strcspn(Menus - GetAt(k) - name, * ) (size_t)MenusName.GetLength()) ... { MenusName.TrimLeft( ' * ' ); MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,MenusName, - 1 ,szSubMenu, 256 ); hr = mnu - AddSubMenu(index,szSubMenu, MenuItem); } else if (strcspn(Menus - GetAt(k) - name, $ ) (size_t)MenusName.GetLength()) ... { MenusName.TrimLeft( ' $ ' ); if (MenusName.Compare( -- ) == 0 ) // 添加子菜单的分隔符 ... { hr = MenuItem - AddSeparator(index, mnuitem); } else ... { MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,MenusName, - 1 ,szSubMenu, 256 ); hr = MenuItem - AddMenuItem(index,szSubMenu,szSubMenuMacro, mnuitem); } } else ... { hr = mnu - AddMenuItem(index,szSubMenu,szSubMenuMacro, mnuitem); } } } } for (i = 0 ;i MnuAdrs.GetSize();i ++ ) ... { MnuAdrs - Release(); } mnuitem - Release(); mnus - Release(); mnuGrp - Release(); pMainFrame - UnlockWindowUpdate(); stcMyTopMenuNames.Copy(m_TopMenuNames); // 将顶级菜单名存入静态数组中,卸载时使用 return ; } bool CAddCADFrameMenu::IsMenuExist(IAcadPopupMenu * pMnu, long index, const char * mnuname,IAcadPopupMenus * mnus) ... { ASSERT(mnus != NULL); long cnt = 0l ; HRESULThr = mnus - get_Count( cnt); bool found = false ; int curMenuIndex =- 1 ; BSTRtempName; #ifdef_DEBUG acutPrintf( IsMenuExistcnt=%ld ,cnt); #endif // IAcadPopupMenu * toolsMenu = NULL; for ( long i = 0 ;i cnt;i ++ ) ... { VARIANTvtName; VariantInit( vtName); V_VT( vtName) = VT_I4; V_I4( vtName) = i; hr = mnus - Item(vtName, toolsMenu); if (FAILED(hr)) return false ; hr = toolsMenu - get_NameNoMnemonic( tempName); CStringmnuName(tempName); #ifdef_DEBUG acutPrintf( %d,%s ,i,mnuName); #endif if (mnuName.Compare(mnuname) == 0 ) ... { index = i; pMnu = toolsMenu; return true ; } } pMnu = NULL; return false ; } void CAddCADFrameMenu::CleanUpMenus() ... { IAcadMenuGroup * mnuGrp = NULL; for ( int i = 0 ;i stcMyTopMenuNames.GetSize();i ++ ) ... { CStringsMenu = stcMyTopMenuNames.GetAt(i); sMenu.Replace( , ); if ( ! GetAcadMenuGroup( mnuGrp,sMenu)) ... { #ifdef_DEBUG acutPrintf( 没有找到%s所属的菜单组,无法卸载。 ,sMenu); #endif // mnuGrp-Release(); continue ; } // 得到所有菜单组 IAcadPopupMenus * mnus = NULL; HRESULThr = S_OK; hr = mnuGrp - get_Menus( mnus); ClearMenu(mnus,sMenu); mnus - Release(); mnuGrp - Release(); } stcMyTopMenuNames.RemoveAll(); } void CAddCADFrameMenu::ClearMenu(IAcadPopupMenus * mnus,LPCTSTRmenuname) ... { long cnt = 0l ; HRESULThr = mnus - get_Count( cnt); // nowgetToolsmenu IAcadPopupMenu * toolsMenu = NULL; BSTRtempName; VARIANTvtName; VariantInit( vtName); bool found = false ; for ( long i = 0 ;i cnt;i ++ ) ... { vtName.vt = VT_I4; vtName.lVal = i; hr = mnus - Item(vtName, toolsMenu); if (FAILED(hr)) return ; hr = toolsMenu - get_NameNoMnemonic( tempName); CStringmnuName(tempName); SysFreeString(tempName); if (mnuName.CompareNoCase(menuname) == 0 ) ... { found = true ; break ; } } if ( ! found) ... { acutPrintf( 没有找到菜单:%s ,menuname); return ; } hr = toolsMenu - get_Count( cnt); VARIANTvIndex; vIndex.vt = VT_I4; vIndex.lVal = cnt; IAcadPopupMenuItem * cmd1 = NULL; while (cnt -- ) ... { vIndex.lVal = cnt; hr = toolsMenu - Item(vIndex, cmd1); hr = cmd1 - Delete(); cmd1 - Release(); } toolsMenu - RemoveFromMenuBar(); toolsMenu - Release(); mnus - RemoveMenuFromMenuBar(vtName); return ; }
个人分类: 生活点滴|6028 次阅读|0 个评论
AutoCAD中绘制对象的实际打印大小的计算
wcz3 2009-8-23 10:55
AutoCAD中绘制对象的实际打印大小的计算 要利用AutoCAD打印出符合国标的图纸,必须了解所绘制对象的尺寸以及系统设置对打印的影响。注意,这里(米制)的打印尺寸是指以毫米为单位,而绘制尺寸或设置值是指图形单位,布局视口的缩放比例是指在布局中某视口中视图的缩放比例。 1. 图形对象 如果在布局中建立视口后按布局打印,则绘制在模型空间里的图形对象(一般是按1:1绘制在模型空间里),其最后打印出图形大小的计算公式为: 实际打印尺寸=对象绘制尺寸打印比例布局中视口的缩放比例   (1) 如果是在模型选项卡中打印,或者对于绘制在图纸空间里的图形对象,其最后打印出图形大小与任何视口的缩放比例无关。即计算公式为: 实际打印尺寸=对象绘制尺寸打印比例 (2) 2. 文字对象 当文字绘制在模型空间,其在布局最后打印出字高的计算公式为: 实际打印字高=对象绘制字高打印比例布局中视口的缩放比例   (3) 同样,如果是在模型选项卡中打印,或者对于绘制在图纸空间的文字,则不考虑任何视口的缩放比例。 3. 尺寸标注对象 当尺寸标注绘制在模型空间,标注样式按使用全局标注比例,则与尺寸标注外观大小有关的一些要素在布局打印的计算公式为:   实际打印的尺寸要素大小 =      尺寸要素设置值打印比例全局标注比例布局中视口的缩放比例 (4) 若在模型选项卡中打印,或者对于在图纸空间标注的尺寸标注,也不考虑任何视口的缩放比例。 但如果在标注样式中选择按布局(图纸空间)缩放标注,则: 实际打印的尺寸要素大小 =尺寸要素设置值打印比例 (5) 例:假如在模型空间中绘制有一条1000图形单位的直线、一个高度为5图形单位的文字、一个按全局标注比例(DimScale)=2而箭头大小(DimAsz)=4图形单位标注的尺寸标注等对象。如果按布局打印,打印比例是1:1,在布局中某视口的缩放比例为1:2,则在该视口的上述对象的打印大小为:线条长500毫米,文字高度2.5毫米,尺寸标注的箭头长为4毫米。但若是在模型选项卡中打印,或这些对象 绘制在图纸空间,打印比例是1:1,则线条长度=1000毫米,文字高=5毫米,箭头长=8毫米。
个人分类: 教学|6106 次阅读|1 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-1 16:08

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部