乐筑天下

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

[编程交流] 两次点击之间的角度

[复制链接]

9

主题

25

帖子

16

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 17:02:37 | 显示全部楼层 |阅读模式
在我的主LISP中,提示用户在屏幕上选择2个点,我想根据这2次点击旋转文本。我试着让它保持简单,并在插入文本后运行TORIENT命令,但它总是给我一个错误,即TORIENT是一个未知的命令。。。。有什么想法吗?
 
  1. (defun getTextData (lineObj textVal)
  2.   (setq pt1 (getpoint "\nSelect Insertion Point: "))
  3.   (setq ro1 (getpoint "\nRotation: Specify first point:  "))
  4.   (setq ro2 (getpoint "Specify second point:"))
  5.   
  6.   (entmake (list '(0 . "TEXT")
  7.      '(8 . "DR_PJ_L") ; Change this for different Layer
  8.      (cons 10 pt1)
  9.      (cons 40 0.3) ; Change this for different height
  10.      (cons 1 textVal)
  11.      '(50 . 0.0) ; Text rotation
  12.      '(7 . "ANNO TEXT_") ; change this for different Text Style
  13.      '(71 . 0)
  14.      '(72 . 0)
  15.      '(73 . 0)
  16.      ) ;_  end list
  17.   ) ;_  end entmake
  18.   (setq e (entlast))
  19.   (command "_chprop" e "" "A" "Yes" "") ; Change text to annotative
  20.   (command "_torient" e ro1 ro2)
  21. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:13:34 | 显示全部楼层
我建议您对代码进行以下修改:
  1. (defun gettextdata ( lineobj str / ang ins txt )
  2.    (if
  3.        (and
  4.            (setq ins (getpoint "\nSpecify insertion point: "))
  5.            (setq ang (getangle "\nSpecify rotation: " ins))
  6.            (setq txt
  7.                (entmakex
  8.                    (list
  9.                       '(0 . "TEXT")
  10.                       '(8 . "DR_RJ_L")
  11.                        (cons 10 (trans ins 1 0))
  12.                       '(40 . 0.3)
  13.                        (cons  1 str)
  14.                        (cons 50 ang)
  15.                        (cons  7 (if (tblsearch "STYLE" "ANNO TEXT_") "ANNO TEXT_" (getvar 'textstyle)))
  16.                    )
  17.                )
  18.            )
  19.        )
  20.        (command "_.chprop" txt "" "_A" "_Y" "")
  21.    )
  22.    txt
  23. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:20:46 | 显示全部楼层
此外,您可能希望利用这一点:
  1. ;; Readable - Lee Mac
  2. ;; Returns an angle corrected for text readability.
  3. (defun LM:readable ( a )
  4. ( (lambda ( a )
  5.         (if (< a 0.0)
  6.                 (LM:readable a)
  7.                 (if (and (< (* pi 0.5) a) (<= a (* pi 1.5)))
  8.                         (LM:readable (+ a pi))
  9.                         a
  10.                 )
  11.         )
  12. )
  13. (rem (+ a pi pi) (+ pi pi))
  14. )
  15. )
  1. '(8 . "DR_RJ_L")
回复

使用道具 举报

9

主题

25

帖子

16

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 17:25:27 | 显示全部楼层
 
只是好奇。。。如果我知道DR_PJ_L层在图纸中,为什么需要额外检查?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:34:53 | 显示全部楼层
 
你为什么要冒程序崩溃的风险?
如果在你的下一个程序中,你在图层的名称上打了一个错怎么办?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:42:21 | 显示全部楼层
Entmake(x)将自动创建缺失层,不需要Grrr建议的检查。
回复

使用道具 举报

9

主题

25

帖子

16

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 17:42:57 | 显示全部楼层
 
罗伊是正确的,一如既往。。。该死的:
  1. (cons 8 (if (tblsearch "LAYER" "DR_RJ_L") "DR_RJ_L" (getvar 'clayer)))

很抱歉
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:54:18 | 显示全部楼层
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:57:56 | 显示全部楼层
Entmake(x) will automatically create missing layers there is no need for the check that Grrr has suggested.
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:09:19 | 显示全部楼层
 
Roy is correct, as always... dammit:
  1. _$ (entmakex (list (cons 0 "LINE") (cons 8 "NewUnexistingLayer") (cons 10 (getpoint)) (cons 11 (getpoint))))_$
Sorry.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 02:11 , Processed in 2.560517 second(s), 72 queries .

© 2020-2025 乐筑天下

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