明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5676|回复: 14

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

  [复制链接]
发表于 2011-8-31 21:57:38 | 显示全部楼层 |阅读模式
本帖最后由 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 更新


该贴已经同步到 xq4u的微博

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

我的程序中部分实体无法用Vlisp生成的,也是采用entmake方法,譬如wipeout对象等!  发表于 2011-8-31 22:59

评分

参与人数 2威望 +1 明经币 +3 收起 理由
自贡黄明儒 + 1 赞一个!
Gu_xl + 1 + 2 赞一个!我的程序中部分实体无法用Vlisp生成.

查看全部评分

本帖被以下淘专辑推荐:

  • · 实用|主题: 10, 订阅: 2
发表于 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文件之后,怎么通过这个文件重新生成块呀?我菜鸟,不懂这个
发表于 2011-9-1 08:18:39 | 显示全部楼层
程序如何使用呀,为何键入命令: AllBltoLsp 后没有任何反应呢?
 楼主| 发表于 2011-9-1 15:28:23 | 显示全部楼层
hpy 发表于 2011-9-1 08:18
程序如何使用呀,为何键入命令: AllBltoLsp 后没有任何反应呢?

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

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

    ◆还有需要说明的一点是:如果块中有用高版本(CAD2008以上)生成的表格,保存成低版本文件,在低版本的CAD中运行时,会出错。
发表于 2011-9-2 08:28:07 | 显示全部楼层
我测试的CAD版本为CAD2008,如果在一个新的绘图环境中重新创建块时,就会出现我说的第3点。生成lsp文件的绘图环境中如果执行purge命令把图层、线型、块等清理掉,重新创建块时,也会出现第3点的情况。也就是说,生成的lsp加载后重新生成块时必须要有块中的图层,线型,如果没有,则必须先建立,否则会出现错误提示,而丢失块中的图层、线型。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-5-29 15:49:58 | 显示全部楼层
版主可否索求源码啊?动态块确实有问题。
发表于 2013-12-7 21:49:53 | 显示全部楼层
学习一下。
发表于 2015-6-30 16:05:23 | 显示全部楼层
不好意思,请问生成的LISP怎么调用
发表于 2015-7-10 14:47:51 | 显示全部楼层
填充有问题,在2016下测试,填充比例变了,能否改进一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 04:26 , Processed in 0.194124 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表