xq4u 发表于 2011-8-31 21:57:38

原创:纯 Lisp 生成 Block 转 Lisp 的源代码

本帖最后由 xq4u 于 2011-9-1 20:48 编辑

很早就看了 Gu_xl 版主的帖子:《原创实用工具:Block 自动转为Lisp源代码》,这想法我以前也有,而且写过一个lisp,不过最初的不支持嵌套块和标注、表格、填充图案,看了 Gu_xl 版主的帖子后,将原来写的 lisp 完善了一下,现在可以支持嵌套块和标注、表格、填充图案,但不支持动态块,因为本人对动态块的结构不了解,盼高手指点迷津。生成的 Block 的 Lisp 源码为用纯 lisp 生成,在对应的图形文件的目录下,每个块对应一个 Lisp 文件。说实话,Gu_xl 版主生成的源码太高深,看不懂,因为本人对 vlisp 不太了解,呵呵,不过笨人有笨办法。程序写的比较粗糙,未经过多调试,现附上来献丑,恳请大家多提宝贵的意见。
使用方法,键入命令: AllBltoLsp ;在图形文件的目录下,图块全部自动生成 Lisp 程序文件源码。
By xq4u 2011-9-1 更新


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 xq4u的微博

wzg356 发表于 2022-12-6 20:27:46

菜鸟初来乍到 发表于 2022-12-6 17:21
生成的lsp文件之后,怎么通过这个文件重新生成块呀?我菜鸟,不懂这个

g版那个更成熟,搜“图块转lisq”,我帖子也有一个

菜鸟初来乍到 发表于 2022-12-6 22:16:42

wzg356 发表于 2022-12-6 20:27
g版那个更成熟,搜“图块转lisq”,我帖子也有一个

好的,我去看看,感谢分享

菜鸟初来乍到 发表于 2022-12-6 17:21:26

生成的lsp文件之后,怎么通过这个文件重新生成块呀?我菜鸟,不懂这个

hpy 发表于 2011-9-1 08:18:39

程序如何使用呀,为何键入命令: AllBltoLsp 后没有任何反应呢?

xq4u 发表于 2011-9-1 15:28:23

hpy 发表于 2011-9-1 08:18 static/image/common/back.gif
程序如何使用呀,为何键入命令: AllBltoLsp 后没有任何反应呢?

加载了没有,先把文件拖到CAD中加载,再键入命令试试。

hpy 发表于 2011-9-1 17:32:18

知道这个程序怎么用了:首先必须把图以块的形式插入,然后再使用该程序就可以把块生成lsp文件。
这个程序还是很好用的,不过不知程序能不能改进一下:
1.最好能提示一下生成的lsp文件是放在哪个目录下,使用该程序时开始根本不知生成的lsp文件在哪儿,后来偶然才发现是在我的文档这个目录里。
2.生成的lsp文件不知能不能直接就用块的文件名,而不加上EntmakeList和Drawing这个前后缀。
3.程序有一个小缺陷,生成的lsp加载后重新生成块时必须要先建立块中的图层,并且加载所需线型。否则会出现错误,丢失图层、线型。
错误表现为:
错误:线型 DASHED 未定义,位于图层表记录 3错误: 线型 CENTER 未定义,位于图层表记录 2
程序如果能根据lsp中的图层、线型信息自动建立图层、加载所需线型就好了。

xq4u 发表于 2011-9-1 20:45:11

hpy 发表于 2011-9-1 17:32 static/image/common/back.gif
知道这个程序怎么用了:首先必须把图以块的形式插入,然后再使用该程序就可以把块生成lsp文件。
这个程序还 ...

hpy 先生,非常感谢您的测试,对文件已做如下修改:
1、生成完后会在命令栏提示生成文件的目录,在 dwg 文件的同名文件夹下,若 dwg 图形为新建未保存的图形,则此目录一般在<我的文档>文件夹下。
2、文件名已做简化,直接用块名命名。
3、对于您说的第3点,我试过了,创建块时,是可以生成图层和线型的,不需要先建立块中的图层、加载所需线型。请问下,您用的 CAD 版本是多少,还有,能否把您测试用的 dwg 文件发下我试试看。

    ◆还有需要说明的一点是:如果块中有用高版本(CAD2008以上)生成的表格,保存成低版本文件,在低版本的CAD中运行时,会出错。

hpy 发表于 2011-9-2 08:28:07

我测试的CAD版本为CAD2008,如果在一个新的绘图环境中重新创建块时,就会出现我说的第3点。生成lsp文件的绘图环境中如果执行purge命令把图层、线型、块等清理掉,重新创建块时,也会出现第3点的情况。也就是说,生成的lsp加载后重新生成块时必须要有块中的图层,线型,如果没有,则必须先建立,否则会出现错误提示,而丢失块中的图层、线型。

flowerson 发表于 2013-5-29 15:49:58

版主可否索求源码啊?动态块确实有问题。

sageman 发表于 2013-12-7 21:49:53

学习一下。

肤色人生 发表于 2015-6-30 16:05:23

不好意思,请问生成的LISP怎么调用

肤色人生 发表于 2015-7-10 14:47:51

填充有问题,在2016下测试,填充比例变了,能否改进一下
页: [1] 2
查看完整版本: 原创:纯 Lisp 生成 Block 转 Lisp 的源代码