乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 99|回复: 9

[编程交流] 我有什么?

[复制链接]

13

主题

75

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 14:26:10 | 显示全部楼层 |阅读模式
我在一个绘图中有很多文本,我需要获取所有文本值,并放入一个“.csv”文件。。。我知道如何提取,但是,我在“ssget”lsp cmd中遇到了一个问题。。。
 
  1. (setq l1 (ssget "x" '((0 . "TEXT") (8 . "testlayer"))))

 
这对我有什么回报?
 
我怎么能拿“文字”做一个“写行”呢??
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:36:08 | 显示全部楼层
您的代码将返回层上所有文本的选择集,名称为:testlayer。
 
要收集所有多行文字和文字:
 
您需要迭代该集合,或者将其转换为列表以将内容写入文件。
 
类似这样的内容会将其转换为文本字符串列表:
 
  1. (mapcar
  2. (function
  3.    (lambda (x)
  4.      (cdr (assoc 1 (entget x)))))
  5. (mapcar 'cadr (ssnamex l1)))
回复

使用道具 举报

13

主题

75

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 14:46:05 | 显示全部楼层
好的,我试着从自己那里得到这个想法。再次感谢李的帮助。我真的很喜欢你,伙计。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:51:57 | 显示全部楼层
 
没问题,伙计,如果你对我发布的任何东西还有任何问题,尽管问
回复

使用道具 举报

13

主题

75

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 14:57:50 | 显示全部楼层
好的,看一看,如果我做对了。。。
 
 
  1. (mapcar;return a list, using a list in the fuction
  2.    (function;optimizing the function
  3.      (lambda (x);define the function above
  4. (cdr (assoc 1 (entget x)));return the text of the entity("x" means ALL entitys?)
  5. );end lambda
  6.      );end function
  7.    (mapcar 'cadr (ssnamex l1));i dont understand that part...;end mapcar
  8.    );end main mapcar

 
嗯,我不知道如何在这个Lisp程序的地方插入我的“写行”。它正在返回一个“空白文件”。。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:59:55 | 显示全部楼层
看看这个:
 
  1. 4
回复

使用道具 举报

13

主题

75

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 15:08:55 | 显示全部楼层
哇!很好,你让我再次思考函数。。。我还有很多东西要学。。。因此,第一个mapcar将“x”设置为写入,第二个选择文本本身,第三个选择“3”实体参数,顺序为(-1,0,1…),这是吗?
 
 
非常感谢李
 
如果你2014年来到巴西(世界杯足球赛),告诉我。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:19:31 | 显示全部楼层
我处理这个问题的方法比你的平均Lisp程序要复杂得多;但如果你能理解这些方法,从长远来看,你会过得更好。
 
我处理的不是在集合中洗牌,而是选择集中所有实体的列表,并使用Mapcar对每个实体应用一个函数。
 
当试图理解操作时,请反向操作。
 
i、 e.第一步是:
 
这将创建我们要使用的初始列表。
 
该列表包含选择集中的实体名称,以及有关如何获取这些名称的其他信息。
 
我们需要从该列表中提取所有实体名称,因此我们将函数cadr应用于列表中的每个元素,以获取实体名称:
 
因此,现在我们有一个要处理的实体名称列表:
 
我们现在需要提取每个实体中包含的文本字符串,因此我们可以定义我们的函数来实现这一点:
 
在上面,我们定义了一个匿名函数lambda来执行对列表的操作。
 
在本例中,它接受一个项(x),并从该项中检索文本字符串。
 
因此,就像我们使用mapcar应用cadr一样,我们现在可以将新创建的函数lambda应用到列表中(我们之前的列表以红色突出显示):
 
现在我们有一个应用lambda函数的结果列表,也就是说,我们现在有一个文本字符串列表:
 
因此,我们现在可以以相同的方式定义另一个匿名函数,将这些字符串写入文件:
 
上述函数获取每个字符串(x),并将其写入存储到变量:(ofile)的文件中。
 
因此,我们可以再次使用mapcar将此函数应用于我们的列表:
 
如果你不明白我贴的东西,就问一下,我会尽量给你解释得更好。
 
干杯
 
回复

使用道具 举报

13

主题

75

帖子

62

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 15:19:44 | 显示全部楼层
 
 
是的,我从后面理解。除息的。我会尽量利用这些操作符来修复信息。这是先进的!!你是一个好人李,在这里,帮助大家,帮助我。非常感谢你!!我真的很想学习如何制作Lisp,它很有趣,思考并尝试制作一些东西,它在屏幕上很神奇!!
 
非常感谢,大哥。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:28:38 | 显示全部楼层
 
没问题,我很高兴你能理解我的解释
 
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 00:04 , Processed in 1.124364 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表