本帖最后由 作者 于 2009-12-11 10:14:14 编辑
要解决的问题: 道路专业在进行整条道路汇报的时候,dwg体积相当大一般能到100~200M,,一般机器运行运行起来很吃力,而编辑起来更加困难。 要求: 显示效果基本与原图一致,不缩小显示范围,减少内存占用。 解决思路: 将地形分块,以外部参照的形式加载进图纸,随时通过命令控制参照图像的 load与unload,从而控制内存的占用。 主要用的的东西: atabase.WblockCloneObjects,AttachXref,Group,SendStringToExecute,Xrecord的写与读等。 其中好多东西都是没有想到别的办法而使用的,例如用SendStringToExecute+group 的方法实现对外部参照边界的编辑,以及使用文件来记录参照图块的名字。 还有像Xrecord的写于读不是程序必须的,只是多一种控制显示与否的方法而已,而且不知道Xrecord记录的东西是否保险。 我控制图像显示的方法是用 vba编写的,在附件里面含有。lsp文件配合dvb文件使用形成命令 “XS”“BXS”,相信大家都知道怎么用。 存在的问题很多了,大家一看也就发现了。例如分割出来的小块图纸相互有重叠,还有…… 程序是在studio08+AutoCAD10下面做的,执行命令前,在要分割的图上画矩形框,框的图层要求为“FF",然后运行命令”tttt“(为了避免一种出错的可能,也可能不起作用),然后是“FFFF”进行分图,然后采用“CCCC”进行版本转换(也算是存在问题,但不得不多此一举);然后用 “iiii”(四个“爱”)将分块图拼接在一起。然后就可以使用 “XS”“BXS”,进行控制了。(如果是autocad2010)用“XXXX”或“VVVV”也能进行控制。 特别感谢 雪山飞狐 等群友对我的帮助!还请大家对程序多多指正。(程序写的比较乱,请大家费心了) 第一次发贴难免有些语无伦次,请大家谅解! I'm C#道路 IN "群" |