乐筑天下

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

[编程交流] 将文本添加到现有文本

[复制链接]

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:35:32 | 显示全部楼层 |阅读模式
好的,我发现这个lisp例程能够在现有文本的前缀或后缀处添加文本。它还在新文本和旧文本之间添加了一个空格。
 
(旧文本3“GW的示例-此lisp(E)3”GW中的新文本)
 
有没有办法删除它正在添加的空间?
 
  1. (defun c:PST (/ PreSuf Str ent Cstr)
  2. (vl-load-com)
  3. (initget "PS")
  4. (setq PreSuf (getkword "\nChoose [Prefix/Suffix]  <Prefix>: "))
  5. (if (not PreSuf)
  6.    (setq PreSuf "S")
  7. )
  8. (while (not str)
  9.    (setq str (getstring T "\nEnter String: "))
  10.    (cond ((and (eq str "")
  11. (princ "Null Input Try again")
  12. (setq str nil)
  13.    )
  14.   )
  15.    )
  16. )
  17. (while (and (setq ent (car (nentsel "\nSelect Text/Attribute: ")))
  18.       (member (cdr (assoc 0 (entget ent)))
  19.        '("TEXT" "MTEXT" "ATTRIB")
  20.       )
  21. )
  22.    (setq ent  (vlax-ename->vla-object ent)
  23.   Cstr (vla-get-textstring ent)
  24.    )
  25.    (vla-put-textstring
  26.      ent
  27.      (if (eq PreSuf "S")
  28. (strcat Cstr " " str)
  29. (strcat str " " Cstr)
  30.      )
  31.    )
  32. )(princ)
  33. )
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:41:15 | 显示全部楼层
  1. (if (eq presuf "S")
  2. (strcat cstr [b][color="red"]" "[/color][/b] str)
  3. (strcat str [b][color="red"]" "[/color][/b] cstr)
  4. )
回复

使用道具 举报

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:50:40 | 显示全部楼层
太神了谢谢你指出这一点!!这个网站太棒了
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:55:35 | 显示全部楼层
你也会发现这篇文章很有帮助。
回复

使用道具 举报

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:59:36 | 显示全部楼层
 
Mac先生!谢谢你这么做。我必须承认,你的网站总是我寻找可能有用的东西的第一个地方。
 
这是我最先读到的几本书之一,一开始我是。。。老实说,我迷失了方向,不知所措。但是,回头看几次,这肯定会有所帮助。
 
另一个注意事项是:您是否碰巧有或知道要加载到Autocad中的某些内容在打开图形时会有一个时间开始?如果你的网站上有什么东西,就说出来,我会找的。(我在那里找到了很多很酷的工具)但总而言之,谢谢你!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:03:50 | 显示全部楼层
这可能有助于打开和关闭dwg。
Productivity_Analysis_工具。lsp
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:13:16 | 显示全部楼层
 
不客气,我希望这会有所帮助。
 
 
我不知道你说的是什么意思:
 
您是指与AutoCAD中程序的计划任务等效的任务吗?
回复

使用道具 举报

18

主题

81

帖子

63

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:14:21 | 显示全部楼层
 
老实说,我不确定那到底是什么。但我在想一个计时器之类的东西。原因是我的公司在每个项目上花费的时间太多了。
 
打开autocad文件时,如果文件名中有作业编号,则会将其记录到一个文件中,仅针对该作业编号或源文件夹中的任何cad文件,以便您可以更仔细地记录时间。由于每个out项目都有不同的作业编号,请记录打开autocad时使用图形名称(即文件上的作业编号)的时间。
 
这可能完全牵强,但前几天我在想这个。我有一个logitec G13键盘。我附上了一个屏幕截图的秒表是在那。我可以用它,但很难记住每次都要停下来走走。windows 10也有一个在那里,只是想它会真的很酷,有一个用于autocad。这可以记录你花在工作上的时间。
163537uf8lvz5h7x87a0n5.jpg
163539uxshs1399wsuswbo.png
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:24:29 | 显示全部楼层
作为一个通用的pref/suff函数,我一直喜欢这种方法:
  1. (defun pstxt ( p txt s )
  2. (strcat (cond (p)("")) txt (cond (s)("")))
  3. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:26:26 | 显示全部楼层
 
在我看来,用空字符串调用pstxt比提供nil更有用——考虑一下getstring在null输入上返回一个空字符串。
 
但是,似乎没有必要为单个字符串串联单独定义函数:(pstxt p txt s)与(strcat p txt s)没有什么不同
 
@dnovember99,你关于绘图时间记录系统的帖子对于这个线程来说是离题的,理想情况下应该属于一个新的线程-版主可以为你移动它们。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:06 , Processed in 0.414242 second(s), 74 queries .

© 2020-2025 乐筑天下

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