乐筑天下

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

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

[复制链接]

28

主题

77

帖子

64

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 19:53:55 | 显示全部楼层 |阅读模式

我是新来的,希望有人能帮助我
我写了这个LISP,并从其他LISP中复制了一些东西
 
我需要的是,在RECT的底部,它将自动写入RECT的维度。
它下面应该写着U.K.=。。。
 
代码如下:
  1. (defun c:rmid (/ pt1)
  2.    
  3. (setq
  4.    w (getdist "\nWidth: ")   
  5.    l (getdist "\nLength: ")
  6.    pt1 (getpoint "\nSpecify mid point: ")
  7.    )
  8. (setq
  9.    p2 (list (+ (car pt1) (* 0.5 w))(+ (cadr pt1) (* 0.5 l)))
  10.    p3 (list (- (car pt1) (* 0.5 w))(- (cadr pt1) (* 0.5 l)))
  11.    )
  12.    (setvar "osmode" 0)
  13.    (setvar "cmdecho" 0)
  14.    (command "rectang" p2 p3
  15.    )
  16.    (setq OldCmdEcho (getvar "cmdecho")) ;save cmdecho state
  17.    (setvar "cmdecho" 0) ;this hide command
  18.    (setq Htxt (getdist "\nText height: ")
  19.    angTxt 0
  20.    DeltaYtxt (* 2.0 Htxt)
  21.    )
  22.    (while (/= (setq txt (getstring "\nText: " T)) "") ;T=True is for input text with space, if omit T then Text cannot space
  23.    (command "_text" "_Justify" "_TL" p3 Htxt angtxt txt)
  24.    ;New position for next txt
  25.    (setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))
  26.    )
  27.    (setvar "osmode" 703);your favourite osnap
  28.    (setvar "cmdecho" oldCmdEcho) ;restore original state for cmdecho
  29. (princ)
  30. )
回复

使用道具 举报

7o7

0

主题

93

帖子

93

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 20:06:38 | 显示全部楼层
这是你想要的吗?
  1. (defun c:rmid (/ pt1)
  2. (setq w (getdist "\nWidth: ")
  3.                         l (getdist "\nLength: ")
  4.                         pt1 (getpoint "\nSpecify mid point: ")
  5. )
  6. (setq        p2 (list (+ (car pt1) (* 0.5 w))(+ (cadr pt1) (* 0.5 l)))
  7.                         p3 (list (- (car pt1) (* 0.5 w))(- (cadr pt1) (* 0.5 l)))
  8. )
  9. (setvar "osmode" 0)
  10. (setvar "cmdecho" 0)
  11. (command "rectang" p2 p3)
  12. (setq OldCmdEcho (getvar "cmdecho")) ;save cmdecho state
  13. (setvar "cmdecho" 0) ;this hide command
  14. (setq Htxt (getdist "\nText height: ")
  15.                         angTxt 0
  16.                         DeltaYtxt (* 2.0 Htxt)
  17. )
  18. (command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat "Width = " (rtos w)))
  19. (setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))
  20. (command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat "Length = " (rtos l)))
  21. (setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))       
  22. (command "_text" "_Justify" "_TL" p3 Htxt angtxt  "U.K.=" )
  23. (setvar "osmode" 703);your favourite osnap
  24. (setvar "cmdecho" oldCmdEcho) ;restore original state for cmdecho
  25. (princ)
  26. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:21:34 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

28

主题

77

帖子

64

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 20:34:55 | 显示全部楼层
谢谢,太好了。。。
我稍微改变了输出,所以现在它显示的是300/400/200的DIM,而不是像你做的那样的列表
我现在需要的是,它将我的输入识别为“文本”,而不是数字,这样当我给出200时,它将显示200而不是200.00,当我写+12.00时,它应该显示+12.00而不仅仅是12.00
 
  1. (defun c:test (/ pt1)
  2. (setq w (getdist "\nWidth: ")
  3.                         l (getdist "\nLength: ")
  4.                         h (getdist "\nHeight: ")
  5.                         uk (getdist "\nUK: ")
  6.                         pt1 (getpoint "\nSpecify mid point: ")
  7. )
  8. (setq        p2 (list (+ (car pt1) (* 0.5 w))(+ (cadr pt1) (* 0.5 l)))
  9.                         p3 (list (- (car pt1) (* 0.5 w))(- (cadr pt1) (* 0.5 l)))
  10. )
  11. (setvar "osmode" 0)
  12. (setvar "cmdecho" 0)
  13. (command "rectang" p2 p3)
  14. (setq OldCmdEcho (getvar "cmdecho")) ;save cmdecho state
  15. (setvar "cmdecho" 0) ;this hide command
  16. (setq Htxt (getdist "\nText height: ")
  17.                         angTxt 0
  18.                         DeltaYtxt (* 2.0 Htxt)
  19. )
  20. (command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat (rtos w) "/" (rtos l) "/" (rtos h)))
  21. (setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))       
  22. (command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat "U.K.=" (rtos UK))))
  23. (setvar "osmode" 703);your favourite osnap
  24. (setvar "cmdecho" oldCmdEcho) ;restore original state for cmdecho
  25. (princ)
  26. )
回复

使用道具 举报

28

主题

77

帖子

64

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 20:45:46 | 显示全部楼层
谁能帮帮我吗?
解决这个问题?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:56:20 | 显示全部楼层
Rtos W查看Rtos W 2 0等检查帮助以获取额外标志
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 01:06 , Processed in 0.351429 second(s), 64 queries .

© 2020-2025 乐筑天下

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