cmnull 发表于 2009-8-30 16:42:00
Help 文件上面的原话:<br/> <br/>Selection <br/>sets consume AutoCAD temporary file slots, so AutoLISP is not permitted to have <br/>more than 128 open at one time. If this limit is reached, AutoCAD cannot create <br/>any more selection sets and returns nil to all <em class="codeEmphasisStrong">ssget</em> calls. To close an <br/>unnecessary selection set variable, set it to nil.<br/><br/>大意是:选择集会消耗 AutoCAD 的临时文件容量。所以 AutoCAD 限制最多 128 个活跃的选择集。如果达到了这个限度,就不能再创建新的选择集了,所有新的 ssget 调用都会返回 nil。要关闭不需要的选择集,将选择集变量设置为 nil 即可。<br/><br/>楼主可能将选择集都存入了全局变量中,他们不能被系统自动释放而累计到最大限度吧<br/><br/>不知道如果将选择集存放在函数局部变量中,函数调用结束时,选择集会不会被自动被释放呢?狂刀无痕 发表于 2009-8-30 18:14:00
选集不要搞太多,用完及时清空,必要的时候把实体名列表保存以备反复调用masterlong 发表于 2009-8-30 21:52:00
<p>不知如何解决</p><p>刚开的图运行程序也会这样吗?</p><p></p><p>不过代码可以简化</p><p>(ssget '((0 . "text,insert,....")) )</p>
页:
1
[2]