一个导出图形的线,文本,图块,图层,文字样式的程序问题

不大会写这种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写法,这样子就不会导致文件空间的混乱
试了一下,大概是没有问题的。
不知道在楼主那里如何

标签: , ,

12 条评论 发表在“一个导出图形的线,文本,图块,图层,文字样式的程序问题”上

  1. 匿名 说道:

    楼上改过的程序有两个问题,
    1、不能将文件路径中的“\”改成“”;
    2、不能将新打开的文件设成当前文件,否则程序将会中断,得点击那个运行程序的文件才能继续。

  2. 匿名 说道:

    第一个问题比较奇怪,我在Lisplink中是\的,来了这边变成单个,可能是格式问题,容我改过
    查了一下,我原来用的是php代码,有这个bug,现在改成code代码,就可以了
    第二个问题我并没有改到,原程序似乎也有如此问题(不知道在楼主那里是否没有,
    如若没有,倒是有点想不通)
    仔细查了一下,是 (la-actiate doc)的问题,把它去掉应该就可以了
    二楼的程序重新修改过了,楼主看看是不是已经可以:)

  3. 匿名 说道:

    我前面说得那两个问题我都已经改过了。
    现在的问题就是文字样式,不完全正确,有的时候这个图形的文字样式会出现上一个图形文件的文字样式,(很少出现,但是我碰到了)。
    老是打开图形,执行的速度比较慢,有没有不打开的图形就能获得上面说到的信息的方法??

  4. 匿名 说道:

    :)不想打开图形的话,我认为可以用什么软件批量转化为DXF
    直接用LISP对DXF文本进行查询就可以
    要是懂的DWG的格式,应该也可以这样作吧

  5. 匿名 说道:

    不打开图形的方法要使用ObjectDBX,LUCAS发过很多很好的例子

  6. 匿名 说道:

    EACHY,估计我一时半会也学不会,还是麻烦你给我做一个吧。先谢谢你了。

  7. 匿名 说道:

    写了一部分,用ObjectDBX就没有 SSGET 了,只能 lax-for Modelspace。剩下的工作你自己先修改了。
    声明:本程序只是一个思路,并不能运行,包括错误。

  8. 匿名 说道:

    下午抽时间写完了,要是会B的话是不是可以写个EXE文件,不用启动CAD就能写出需要的信息:)

  9. 匿名 说道:

    EACHY,单个双击文件的时候可以导出图形文件的信息,选择全部文件的时候不执行,也没有错误信息。

  10. 匿名 说道:

    你有先建立”d:\output” 这个目录吗?

  11. 匿名 说道:

    我建立了这个目录。执行结果却没有出来。

  12. 匿名 说道:

    命令:GetInfo