我有什么?
我在一个绘图中有很多文本,我需要获取所有文本值,并放入一个“.csv”文件。。。我知道如何提取,但是,我在“ssget”lsp cmd中遇到了一个问题。。。(setq l1 (ssget "x" '((0 . "TEXT") (8 . "testlayer"))))
这对我有什么回报?
我怎么能拿“文字”做一个“写行”呢?? 您的代码将返回层上所有文本的选择集,名称为:testlayer。
要收集所有多行文字和文字:
您需要迭代该集合,或者将其转换为列表以将内容写入文件。
类似这样的内容会将其转换为文本字符串列表:
(mapcar
(function
(lambda (x)
(cdr (assoc 1 (entget x)))))
(mapcar 'cadr (ssnamex l1)))
好的,我试着从自己那里得到这个想法。再次感谢李的帮助。我真的很喜欢你,伙计。
没问题,伙计,如果你对我发布的任何东西还有任何问题,尽管问 好的,看一看,如果我做对了。。。
(mapcar;return a list, using a list in the fuction
(function;optimizing the function
(lambda (x);define the function above
(cdr (assoc 1 (entget x)));return the text of the entity("x" means ALL entitys?)
);end lambda
);end function
(mapcar 'cadr (ssnamex l1));i dont understand that part...;end mapcar
);end main mapcar
嗯,我不知道如何在这个Lisp程序的地方插入我的“写行”。它正在返回一个“空白文件”。。。。 看看这个:
4 哇!很好,你让我再次思考函数。。。我还有很多东西要学。。。因此,第一个mapcar将“x”设置为写入,第二个选择文本本身,第三个选择“3”实体参数,顺序为(-1,0,1…),这是吗?
非常感谢李
如果你2014年来到巴西(世界杯足球赛),告诉我。 我处理这个问题的方法比你的平均Lisp程序要复杂得多;但如果你能理解这些方法,从长远来看,你会过得更好。
我处理的不是在集合中洗牌,而是选择集中所有实体的列表,并使用Mapcar对每个实体应用一个函数。
当试图理解操作时,请反向操作。
i、 e.第一步是:
这将创建我们要使用的初始列表。
该列表包含选择集中的实体名称,以及有关如何获取这些名称的其他信息。
我们需要从该列表中提取所有实体名称,因此我们将函数cadr应用于列表中的每个元素,以获取实体名称:
因此,现在我们有一个要处理的实体名称列表:
我们现在需要提取每个实体中包含的文本字符串,因此我们可以定义我们的函数来实现这一点:
在上面,我们定义了一个匿名函数lambda来执行对列表的操作。
在本例中,它接受一个项(x),并从该项中检索文本字符串。
因此,就像我们使用mapcar应用cadr一样,我们现在可以将新创建的函数lambda应用到列表中(我们之前的列表以红色突出显示):
现在我们有一个应用lambda函数的结果列表,也就是说,我们现在有一个文本字符串列表:
因此,我们现在可以以相同的方式定义另一个匿名函数,将这些字符串写入文件:
上述函数获取每个字符串(x),并将其写入存储到变量:(ofile)的文件中。
因此,我们可以再次使用mapcar将此函数应用于我们的列表:
如果你不明白我贴的东西,就问一下,我会尽量给你解释得更好。
干杯
李
是的,我从后面理解。除息的。我会尽量利用这些操作符来修复信息。这是先进的!!你是一个好人李,在这里,帮助大家,帮助我。非常感谢你!!我真的很想学习如何制作Lisp,它很有趣,思考并尝试制作一些东西,它在屏幕上很神奇!!
非常感谢,大哥。
没问题,我很高兴你能理解我的解释
李
页:
[1]