乐筑天下

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

[编程交流] 文本编辑lisp例程

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:05:03 | 显示全部楼层 |阅读模式
是否可以编写一个lisp例程,该例程将获取单行文本并将其向上或向下调整?当我起草一条线和标签是10-0,我想能够建立一个例程,通过绘图点击对象,并有它向下调整2,使其9-10。如果可能的话,有人有什么建议或想法吗?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 09:12:38 | 显示全部楼层
首先,请让版主将你的帖子移动到适当的部分。你的问题会得到更多的支持。
 
第二,标签是什么类型的实体?你说的是文本还是维度?
 
当做
米尔恰
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 09:22:16 | 显示全部楼层
你的日常生活将是:
 
  1. ;select entity to edit (ENTSEL)
  2. ;get the associated list of the entity (ENTGET)
  3. ;get the label content (ASSOC)
  4. ;convert that value to a double taking care of format (DISTOF)
  5. ;perform the math
  6. ;convert back the value to string taking care of format (RTOS)
  7. ;modify the associated list of the entity (SUBST)
  8. ;update the entity (ENTMOD)

 
请尝试遵循上述方案,并询问您的问题所在。祝你好运
 
当做
米尔恰
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 09:31:40 | 显示全部楼层
谢谢你的提示,米尔恰。移动线程。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:36:15 | 显示全部楼层
我猜你的意思是反转字符串。
 
  1. (defun c:TesT (/ ss sset lst e)
  2. ;; Tharwat 04. 08. 2011
  3. (prompt "\n Select Texts to reverse >> ...")
  4. (if (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT"))))
  5.    (while
  6.      (setq sset (ssname ss 0))
  7.       (setq lst (vl-string->list (cdr (assoc 1 (setq e (entget sset))))))
  8.       (entmod (subst (cons 1 (vl-list->string (reverse lst)))(assoc 1 e)  e ))
  9.       (ssdel sset ss)
  10.    )
  11.    (princ)
  12. )
  13. (princ)
  14. )

 
塔瓦特
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 09:44:10 | 显示全部楼层
 
抱歉@Tharwat,但在我看来,OP并不是在寻找反转字符串例程。
 
当做
米尔恰
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:54:20 | 显示全部楼层
 
你是说“调低”是10-0减2是9-10。那么10-1就是9-11?,如果“上升”,9-11将是10-1?
 
10-2到10-0?
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 10:04:09 | 显示全部楼层
@pBe:OP讨论的是英制值:10’-0”(10英尺,11英寸)减去2”(2英寸)将是9’-10”(9英尺,10英寸)。
 
  1. (rtos (- (distof "10'0"" 4) (distof "2"" 4)) 4)

 
(或者,也许我不明白你的问题?)
 
当做
米尔恰
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 10:08:00 | 显示全部楼层
 
我想你是对的,msasu。。我觉得比这更复杂
页码,即第9页,共10页或第13页,共19页,所以第一个和第二个数字会有很大的不同,
 
这将是一个有趣的代码编写
 
编辑:
虽然很奇怪,但试试看
 
  1. (defun c:Addless ( / DoTheMath strs str j intval)
  2. (defun AddSub (ent sym  num / strs g DoTheMath ft)
  3.      (setq strs (vla-get-textstring ent))
  4.      (setq g (read (strcat "(" (vl-string-subst " " "-" strs) ")")))
  5.      (setq DoTheMath (/
  6.                 ((eval (read sym))
  7.                       (+ (* (car g) 12.0)
  8.                          (cadr g))
  9.                       num) 12))(vla-put-textstring ent
  10.       (strcat (itoa (setq ft (fix DoTheMath))) "-"
  11.               (rtos (* (- DoTheMath ft) 12) 2 0)))
  12. )
  13.      (cond ((and
  14. (setq strs (ssget ":L" '((0 . "*TEXT"))))
  15.                (progn
  16.                      (initget 7)
  17.                      (setq IntVal (getint "\nEnter Value to Add\Subtact: "))
  18.                      )
  19.        (princ "\nPress [+/-] Any key to Exit")
  20. (while (member (setq j (grread nil 10)) '((2 45)(2 43)))
  21. (if (member j '((2 45) (2 43)))
  22.      (repeat (setq i (sslength strs))
  23.                           (setq str (vlax-ename->vla-object (ssname strs (setq i (1- i)))))
  24.                      (Addsub str (chr (cadr j)) IntVal))
  25.                    )
  26.                      )
  27.               )
  28.             )
  29.            )
  30.      (princ)
  31.       )      

 
注意到我做数学的方式有多混乱吗?
我想你大概明白了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:21 , Processed in 0.388024 second(s), 70 queries .

© 2020-2025 乐筑天下

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