masterlong 发表于 2011-11-26 00:51:39

【lisp小挑战·分解属性块】

C大的LISP大挑战到第4季了
他的挑战侧重于数学方面的考量
对论坛大多数人来说有点冷门
所以出个对日常工作有点实用价值的题目玩玩

R14开始的附赠程序包里
有个程序BURST用来炸开属性快的同时
保证块内属性值不变
这个程序有个问题
当选择了大量块的时候
或许是因为内存被占用太多
其执行速度会显著降低
比如选100个块耗时0.5秒
选1000个块耗时要100秒
选10000个块耗时要几个小时

本挑战的题目就是
改进该程序
使得
分解当前图纸内的所有块
包括嵌套块
不包括无名块和多重块
最后purge所有垃圾

附件1是测试用的dwg
内含6664个块
我自己的改进程序执行时间大约在4分钟


附件2是burst(原始版).lsp


这个程序的意义
现在的甲方都会要求提供电子版图纸
给他们原版的总是心里不爽
所以要处理一下下啦

jh3030912 发表于 2023-9-28 14:18:13

楼主这个可以完善一下可以分解多重块吗?或者调用自定义的lisp命令

caoyin 发表于 2023-10-4 04:57:40

用自己的burst,测试楼主文件,用时三十几秒

jh3030912 发表于 2023-9-24 16:17:20

这个很好使用,解决了多块分解慢的问题

狂刀lxx 发表于 2011-11-26 01:28:31

包括嵌套块
不包括无名块和多重块

---- 想问你对 嵌套块 和 多重块 是如何界定的?

masterlong 发表于 2011-11-26 03:59:18

嵌套块是指块内有块
多重块是指DXF70/71不为0的块

不包括多重块的原意是指图中不存在这样的块
原题不够严谨补充说明一下

cabinsummer 发表于 2011-11-26 06:53:52

如果是挑战,为何不公布你改进的程序?是想借此机会参考其它人的思路吧?

masterlong 发表于 2011-11-26 08:46:36

C大也忒太小看人了撒
这么说吧
你的挑战是考量数学
我的挑战是编程的思路
这个程序十年间我前后有过7、8次的重写
现在就公布源码
会把有心参与的人的思路给限制住的
这样吧
放上源码的加密RAR
等合适的时候公布密码好了

masterlong 发表于 2011-11-26 09:07:18

明经高手很多菜鸟也很多
我属于不高不菜的中鸟一只
所用的程序99%都是自己打造
编程只考虑自己的需要
也正因为如此
程序向来不够严谨
很少加上出错处理机制
小的BUG也懒于修正
所以向来羞于示人
不过在明经的358贴可以作证
我不是个敝帚自珍的人

vlisp2012 发表于 2011-11-26 09:14:03

都是高人啊,学习了!

masterlong 发表于 2011-11-26 10:40:33

不太赞同C大的话
编程思路有时很重要的
它和编程的水平或技巧无关

举个不太恰当的例子
一个人机交互的程序
是否能够记忆上次的输入
对使用者来说差别可是很大的

masterlong 发表于 2011-11-27 13:06:01

C大这又是何必呢
这里是技术论坛
但是多数都是业余爱好者
大家有兴趣的是
能对自己的工作有帮助的东西
所以太高深的东西曲高和寡那是自然的

wqq8081 发表于 2011-12-3 13:43:22

太高深的东西
页: [1] 2
查看完整版本: 【lisp小挑战·分解属性块】