suriwaits 发表于 2022-7-6 00:02:10

将指定的文本值放置在

你好
我需要一个lisp,可以在指定层“卡钳”中选定块(无属性)的插入点放置指定文本,例如0.20。Lisp应调用以下命令
 
1、以米为单位输入卡尺。
2.输入文字高度。
3、选择块。
 
提前感谢
 
Suriwaits。

Tharwat 发表于 2022-7-6 00:14:34

你能澄清第一个问题吗?

suriwaits 发表于 2022-7-6 00:32:04

 
我需要一个lisp,可以将指定的文本(为问题1输入的任何值)放置在指定层“卡钳”中选定块(无属性)的插入点。Lisp应调用以下命令
 
1、以米为单位输入卡尺。
2.输入文字高度。
3、选择块。

Tharwat 发表于 2022-7-6 00:41:56

现在试试这个
 

(defun c:Test (/ _Pt ss st ht st)
;; Tharwat 11.11.2013 ;;
(defun _t (p s h) (entmakex (list '(0 . "TEXT") (cons 10 p) (cons 11 p) (cons 1 s) (cons 40 h))))
(if (and (if (tblsearch "LAYER" "Caliper")
            t
            (progn (alert "Layer < Caliper > is not found !!") nil)
          )
          (/= "" (setq st (getstring t "\Enter the Caliper in meter :")))
          (setq ht (getdist "\n Specify Text height :"))
          (progn (princ "\n Select Blocks only ......") (setq ss (ssget '((0 . "INSERT")))))
   )
   ((lambda (i / sn p)
      (while (setq sn (ssname ss (setq i (1+ i)))) (_t (cdr (assoc 10 (entget sn))) st ht))
    )
   -1
   )
)
(princ)
)
(vl-load-com)

MSasu 发表于 2022-7-6 00:59:04

不确定你真的需要一个专门的工具来实现这一点-只需将所述层设置为当前层,并在运行Osnap模式时激活插入;然后使用内置命令文本。

suriwaits 发表于 2022-7-6 01:13:38

谢谢塔瓦。
 
它对我来说很有魅力。
 
在对其他块重复相同的命令时,我意外地再次选择了块,它在先前放置的相同文本上再放置一个文本。如果我对同一块再次重复该命令,请您重新编写lisp,以便删除旧文本并插入新文本。
Suriwaits。
页: [1]
查看完整版本: 将指定的文本值放置在