乐筑天下

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

[编程交流] 更改所有文本

[复制链接]

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:03:08 | 显示全部楼层 |阅读模式
你好
 
我是新来的,我在这里找到了一些日常生活的帮助。我的问题是,我正在寻找lisp例程来选择所有文本并将其转换为我的标准(verdana)。上周五我的例行程序运行良好,它正确地转换了文本,但由于某种原因,今天我无法让它工作。
 
任何帮助都将不胜感激
 
(defun C:ALLTEXT(/entities len count ent ent\u data ent\u name new\u style\u name)
(命令“STYLE”“verdana”“verdana.ttf”“”“”“”)
(setq实体(ssget“X”'((0。“TEXT”))
len(sslength实体)
计数0
);setq公司
(虽然(
(setq ent(ssname实体计数)
ent_数据(entget ent)
ent\u名称(cdr(assoc 7 ent\u数据))
);setq公司
(setq新样式名称(cons 7“verdana”))
(setq ent_数据(subst new_style_名称(assoc 7 ent_数据)ent_数据))
(entmod ent_数据)
(setq计数(+计数1))
);虽然
;;;再次运行相同的例程,这次选择多行文字。
(setq实体(ssget“X”((0。“多行文字”))
len(sslength实体)
计数0
);setq公司
(虽然(
(setq ent(ssname实体计数)
ent_数据(entget ent)
ent\u名称(cdr(assoc 7 ent\u数据))
);setq公司
(setq新样式名称(cons 7“verdana”))
(setq ent_数据(subst new_style_名称(assoc 7 ent_数据)ent_数据))
(entmod ent_数据)
(命令“explode”ent)
(setq计数(+计数1))
);虽然
(普林斯)
);德芬
 
出现错误:错误:错误参数类型:lselsetp nil
 
有什么想法吗?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 15:08:43 | 显示全部楼层
确保所有图层都已打开,且没有冻结任何图层。试试常规。现在可以用了吗?
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:10:01 | 显示全部楼层
所有层当前都处于打开状态,没有冻结
 
仍然不工作
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 15:15:51 | 显示全部楼层
您没有对Lisp例程本身进行任何更改,对吗?问题可能是图纸本身吗?你能在另一张图上测试这个例程吗?
 
如果更改了例程,是否通过Visual Lisp编辑器运行它来验证功能?
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:17:41 | 显示全部楼层
没有对该例程本身进行任何更改
 
我改变了主意。mnu文件错误地对其进行了相应的修改,我试图使用此例程,但只是有问题,因为这让我现在非常困惑。
 
我试着在我的两个小时内完成这一程序。mnu自制工具栏,只需直接通过lisp(绕过)即可。mnu
 
我试着在几幅不同的画作中使用它,结果都是一样的
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:21:08 | 显示全部楼层
错误:错误的参数类型:lselsetp nil
 
通常意味着要处理的选择集为零。
 
确保在LISP中包含IF命令,以允许图形中不存在任何文本。
 
此外,如果使用多行文字而不是单行文字,则ssget函数的过滤器列表需要类似于:
 
  1. (list (cons 0 "TEXT,MTEXT"))

 
希望这有帮助
 
 
PS-请将您的代码附在
  1. [/ code] tags in future posts <p> </p><p>Lee</p>
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 15:22:53 | 显示全部楼层
李:是什么原因导致之前工作过的程序不起作用?
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 15:28:50 | 显示全部楼层
谢谢你的帮助,但还是设法解决了
在本部分中添加,而不是运行例程两次
并做了一些改动,尽管仍不确定问题是如何发生的
 
  1. (list (cons 0 "TEXT,MTEXT")) [/ code]
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:32:43 | 显示全部楼层
很抱歉
  1. tags [/ code] without the space
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:36:11 | 显示全部楼层
虽然编写速度快且未经测试,但它应该可以工作。
 
  1. (defun c:txtchng (/ ss)
  2. (vl-load-com)
  3. (if (and (tblsearch "STYLE" "VERDANA")
  4.       (setq ss (ssget "X" (list (cons 0 "TEXT,MTEXT")
  5.             (if (getvar "CTAB")(cons 410 (getvar "CTAB"))
  6.                (cons 67 (- 1 (getvar "TILEMODE"))))))))
  7.    (progn
  8.      (setq ss (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
  9.      (foreach e ss
  10.    (entmod (subst (cons 7 "VERDANA") (assoc 7 e) e))))
  11.    (princ "\n<!> No Text Found or Verdana Style Doesn't Exist <!>"))
  12. (princ))

 
说明无选择集、无文字样式以及多行文字和文字选项。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 21:16 , Processed in 0.781066 second(s), 72 queries .

© 2020-2025 乐筑天下

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