乐筑天下

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

[编程交流] 查找、剪切和粘贴文本字符串

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:16:09 | 显示全部楼层 |阅读模式
大家好,我对论坛和lisp编程是新手。
 
我需要一些帮助来编写在图形中执行以下操作的lisp:
1) 查找默认文本字符串(在本例中为“/”符号)
2) 剪切“/”符号后的整个文本字符串
3) 将其粘贴到原始文本字符串下方的行中
 
请参阅附图,图中右侧显示了所需结果的阴影区域。
我应该如何解决这个问题?我应该从哪里开始?
 
我正在使用AutoCad Electrical 2012
非常感谢!
081614ip1hgitxhptpz0ih.jpg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:49:00 | 显示全部楼层
试试这个。。。。
 
  1. (defun c:Test (/ ss)
  2. ;;; Tharwat 16. Nov. 2.12 www.cadTutor.com ;;;
  3. (if (setq ss (ssget '((0 . "*TEXT") (1 . "*/*"))))
  4.    ((lambda (i / e sn e st po p)
  5.       (while (setq sn (ssname ss (setq i (1+ i))))
  6.         (setq po (vl-position
  7.                    47
  8.                    (vl-string->list
  9.                      (setq st (cdr (assoc 1 (setq e (entget sn)))))
  10.                    )
  11.                  )
  12.         )
  13.         (setq p (polar (cdr (assoc 10 e))
  14.                        (+ (cdr (assoc 50 e)) (* pi 1.5))
  15.                        (* (cdr (assoc 40 e)) 1.2)
  16.                 )
  17.         )
  18.         (if (eq (cdr (assoc 0 e)) "TEXT")
  19.           (entmakex (list (assoc 0 e)
  20.                           (cons 1 (substr st (+ po 2)))
  21.                           (assoc 40 e)
  22.                           (cons 10 p)
  23.                           (cons 11 p)
  24.                           (assoc 50 e)
  25.                     )
  26.           )
  27.           (entmakex (list (assoc 0 e)
  28.                           '(100 . "AcDbEntity")
  29.                           '(100 . "AcDbMText")
  30.                           (cons 1 (substr st (+ po 2)))
  31.                           (assoc 40 e)
  32.                           (cons 10 p)
  33.                           (cons 11 p)
  34.                           (assoc 50 e)
  35.                     )
  36.           )
  37.         )
  38.         (entmod (subst (cons 1 (substr (cdr (assoc 1 e)) 1 po))
  39.                        (assoc 1 e)
  40.                        e
  41.                 )
  42.         )
  43.       )
  44.     )
  45.      -1
  46.    )
  47. )
  48. (princ "\n Written by Tharwat")
  49. (princ)
  50. )
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:38:20 | 显示全部楼层
你好Tharwat,
 
感谢您的及时回复,
我忘了提到这是一个与attrib块。文本是块属性的一部分(有没有办法不分解块?新复制的文本不必是块的一部分,它们可以保留为文本)
 
这是一个好的开始,谢谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 09:56 , Processed in 0.506132 second(s), 61 queries .

© 2020-2025 乐筑天下

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