sld文件
前段时间,有网友委托我帮他做一个家具的图库。
首先,做图库的方法有很多,最简单的是MFC拖控件然后自己把做好的bmp图贴进去就可以了,麻烦一点的是sld文件,最麻烦 是用blockview做。
下面先说说3种办法的区别:
首先,如果用MFC拖控件的办法,最简单也最方便,用static或者用picture控件,把bmp贴进去就好了,双击控件的时候,关闭 对话框,然后给cad发送命令就可以了,方便,简单。不好的地方在于自己做bmp图是有大有小的,bmp图贴到控件中的时候, 会有缩放,bmp本来就不是质量很高的图形文件,就会出现失真。
如果用blockview做,首先这个玩意是用来显示dwg图纸的,用这个做图库,一是有点杀鸡用牛刀的感觉,二是blockview这个 东西如果显示过多图纸,那么会很慢的。当然它显示的是dwg,所以不会失真。
那么看来最简单的是用sld来做图库了,cad本身也支持这个,搭配mnu菜单文件,就可以很好的实现图库功能,当然,用这 个做图库,最大的问题是需要你自己做一个完美的sld文件才行,不然也是很丑的。
下面先做sld文件:
在cad中,使用快捷命令 mslide可以制作sld文件
导出的sld命名为1.sld,接下来同样的办法,另做两个sld,令名2.sld和3.sld
将它们放进文件夹,接下来的操作就是把这3个sld存放在一个slb集合文件中,那么就需要使用cad本身的一个exe完成这个功能,这个exe名字是slidelib.exe,使用这个exe需要用命令行来配合使用。
将文件夹放进随意的一个磁盘里面。
然后打开cmd,并切换到这个test的位置。这一步就是用cd的命令切到G:\test里面而已。
然后用把下面这2行分别复制到cmd中 ,我在文件夹的文本文档.txt中保存了这两句话
dir *.sld /b >myslb"C:\Program Files\Autodesk\AutoCAD 2014\slidelib.exe" "house"<"myslb"
第一行的用处是将所有的sld文件的名字打包进myslb文件中,执行完这个命令后会生成一个myslb文件,然后打开里面看到的就是3行,一行一个名字,比如一行是1.slb,二行是2.slb。
第二行的作用是将myslb里面的slb打包到house中,当然也会生成house.slb文件,它会自动包含这3个文件。第二行的第一个字符串表示的是你的slidelib.exe的全路径,第二个是表示你要生成的slb文件名,第3个是里面包含sld文件的文件名
做到这一步,其实已经做了很大一部分工作了,接下来我们把house.slb文件放到我们的cad支持搜索的路径下,比如support下。
接下来,该写菜单文件用于我们显示自己做的slb文件了。
创建一个sample.mnu的文件,然后写下这些内容。下面简单解释一下
***MENUGROUP=SIMPLE_GROUP给这个菜单取一个组名,就想cad里面自定义的ACAD组的菜单一样
***POP301是一个菜单项,如果你熟悉mnu那就很好说了,这一个菜单项是我用来演示菜单命令怎么做***POP305是专门用来显示下面的的IMAGE组的
这个可以直接写关键点在于后面的***IMAGE
【3D OBJECTS】表示的是显示slb文件的哪个对话框的标题是这个,可以自己改,比如改成“私人家具显示”
[house(1,圆形)]^C^C_ai_box
house表示的是你的那个slb文件的名字,括号内有两个参数,1表示house.slb里面有一个1.sld,这里写他的名字,圆形表示提示,括号外面
^C^C_ai_box表示像cad发一个_ai_box的命令,这就需要你自己写插件去配合将这个图画进cad了,是直接画,还是做块插入,还是其他的,怎么方便怎么来。好了,我们来看一下最后显示的结果
使用menuload来加载sample.mnu菜单文件,菜单就会显示出来,然后点击3d图库,下面有一个启动,点这个菜单就会有我们的图库管理窗口出现了
这就达到了我们想要的效果,简单,方便!如果有不懂的可以联系我的qq:1012612235