乐筑天下

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

[编程交流] 需要一个简单的lisp

[复制链接]

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 08:06:37 | 显示全部楼层 |阅读模式
有人能帮我吗
 
-抓住要点
-选择要移动到新位置的第一个文本
-选择第二个文本以移动到新位置
 
谢谢
 
编辑:重复。它的庞大计划
090642r5tqpptnnggtpt4g.png
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:11:08 | 显示全部楼层
一种解决方案:
 
  1. (defun C:MoveLabels( / thePoint label1st label2nd moveSet entList)
  2. (while (and (setq thePoint (getpoint "\nInsertion point: "))
  3.             (setq label1st (car (entsel))
  4.                   label2nd (car (entsel))))
  5. (progn
  6.   (foreach moveSet (list (list label1st 300.0   0.0)
  7.                          (list label2nd 300.0 400.0))
  8.   (setq entList  (entget (car moveSet)))
  9.   (entmod (subst (list '10 (+ (car thePoint) (cadr moveSet)) (+ (cadr thePoint) (caddr moveSet)) (caddr thePoint))
  10.                  (assoc 10 entList)
  11.                  entList))
  12.   )
  13. )
  14. )
  15. (princ)
  16. )

 
当做
米尔恰
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 08:16:24 | 显示全部楼层
 
太好了谢谢
 
在工作时重复使用
  1. (defun C:MoveLabels( / thePoint label1st label2nd moveSet entList)
  2. (while
  3.   (if (and (setq thePoint (getpoint "\nInsertion point: "))
  4.          (setq label1st (car (entsel))
  5.                label2nd (car (entsel))))
  6. (progn
  7.   (foreach moveSet (list (list label1st 300.0   0.0)
  8.                          (list label2nd 300.0 400.0))
  9.   (setq entList  (entget (car moveSet)))
  10.   (entmod (subst (list '10 (+ (car thePoint) (cadr moveSet)) (+ (cadr thePoint) (caddr moveSet)) (caddr thePoint))
  11.                  (assoc 10 entList)
  12.                  entList))
  13.   )
  14. )
  15. )
  16.   )
  17. (princ)
  18. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:20:02 | 显示全部楼层
不客气!
已经注意到重复请求-您可以检查修订版。不过,你的零钱也可以。
 
当做
米尔恰
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 08:24:37 | 显示全部楼层
 
试图避免UCs更改
但不起作用
  1. (defun C:Mll ( / thePoint label1st label2nd moveSet entList)
  2. (while t
  3.   (if (and (setq thePoint (getpoint "\nInsertion point: "))
  4.          (setq label1st (car (entsel))
  5.                label2nd (car (entsel))))
  6. (progn
  7.    (setq thePoint (trans thePoint 1 0))
  8.   (foreach moveSet (list (list label1st 300.0   0.0)
  9.                          (list label2nd 300.0 400.0))
  10.   (setq entList  (entget (car moveSet)))
  11.   (entmod (subst (list '10 (+ (car thePoint) (cadr moveSet)) (+ (cadr thePoint) (caddr moveSet)) (caddr thePoint))
  12.                  (assoc 10 entList)
  13.                  entList))
  14.   )
  15. )
  16. )
  17.   )
  18. (princ)
  19. )

090643vmok2b03kllf4l0l.png
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:27:09 | 显示全部楼层
应在计算位移后转置点(假设UCS与参考对齐):
 
  1. (defun C:MoveLabels( / thePoint label1st label2nd moveSet entList)
  2. (while (and (setq thePoint (getpoint "\nInsertion point: "))
  3.             (setq label1st (car (entsel))
  4.                   label2nd (car (entsel))))
  5. (progn
  6.   (foreach moveSet (list (list label1st 300.0   0.0)
  7.                          (list label2nd 300.0 400.0))
  8.   (setq entList  (entget (car moveSet)))
  9.   (entmod (subst (cons '10 (trans (list (+ (car thePoint) (cadr moveSet)) (+ (cadr thePoint) (caddr moveSet)) (caddr thePoint)) 1 0))
  10.                  (assoc 10 entList)
  11.                  entList))
  12.   )
  13. )
  14. )
  15. (princ)
  16. )

 
当做
米尔恰
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 08:30:50 | 显示全部楼层
 
谢谢Mircea
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:33:05 | 显示全部楼层
只需使用我用红色(X)、蓝色(Y1)和绿色(Y2)着色的值来匹配您的情况。
 
问候,
米尔恰
回复

使用道具 举报

15

主题

68

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
76
发表于 2022-7-6 08:39:51 | 显示全部楼层
 
对不起,米尔恰,
我想我之前不是很清楚。
不希望选择点,而是选择多段线。
文本始终位于多段线的右下角。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:41:13 | 显示全部楼层
只需选择右下角
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:17 , Processed in 0.491845 second(s), 86 queries .

© 2020-2025 乐筑天下

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