不大会写这种b类型的lisp
胡弄了一个小时,才算搞定
程序如下
用的时候,dwgs.txt里面应该是类似k:seen2.dwg的字样
版主说的问题主要出现在information这一段,其他的块,层,文字式样都
是没有问题的。
原问题的出错的地方在于其information段与layerprint等段不一样
它采用了(setq linesel (ssget “X” ‘((0 . “LINE”))))这种语句
而其他的子程序采用的是 (setq layersel (la-get-layers doc))
(lax-for layerObj layersel)
这样子的L语句,因此information段出现了在当前图形内进行找线
找文字的做法。
现在我主要是修改成为(setq mSpace (la-get-ModelSpace doc))
(LAX-FOR entry mSpace)
的L写法,这样子就不会导致文件空间的混乱
试了一下,大概是没有问题的。
不知道在楼主那里如何
楼上改过的程序有两个问题,
1、不能将文件路径中的“\”改成“”;
2、不能将新打开的文件设成当前文件,否则程序将会中断,得点击那个运行程序的文件才能继续。
第一个问题比较奇怪,我在Lisplink中是\的,来了这边变成单个,可能是格式问题,容我改过
查了一下,我原来用的是php代码,有这个bug,现在改成code代码,就可以了
第二个问题我并没有改到,原程序似乎也有如此问题(不知道在楼主那里是否没有,
如若没有,倒是有点想不通)
仔细查了一下,是 (la-actiate doc)的问题,把它去掉应该就可以了
二楼的程序重新修改过了,楼主看看是不是已经可以:)
我前面说得那两个问题我都已经改过了。
现在的问题就是文字样式,不完全正确,有的时候这个图形的文字样式会出现上一个图形文件的文字样式,(很少出现,但是我碰到了)。
老是打开图形,执行的速度比较慢,有没有不打开的图形就能获得上面说到的信息的方法??
:)不想打开图形的话,我认为可以用什么软件批量转化为DXF
直接用LISP对DXF文本进行查询就可以
要是懂的DWG的格式,应该也可以这样作吧
不打开图形的方法要使用ObjectDBX,LUCAS发过很多很好的例子
EACHY,估计我一时半会也学不会,还是麻烦你给我做一个吧。先谢谢你了。
写了一部分,用ObjectDBX就没有 SSGET 了,只能 lax-for Modelspace。剩下的工作你自己先修改了。
声明:本程序只是一个思路,并不能运行,包括错误。
下午抽时间写完了,要是会B的话是不是可以写个EXE文件,不用启动CAD就能写出需要的信息:)
EACHY,单个双击文件的时候可以导出图形文件的信息,选择全部文件的时候不执行,也没有错误信息。
你有先建立”d:\output” 这个目录吗?
我建立了这个目录。执行结果却没有出来。
命令:GetInfo