iliyasbh 发表于 2022-7-5 20:22:20

仅编辑mu的第一位数字

你好
 
首先,我要感谢在座的伟人分享他们的知识经验和宝贵的时间。我在这里学到了很多东西,这是一个很棒的论坛。
 
我的问题是我在一个图形中插入了多个块,块包含一个属性,任务是显示我所做的地面标高(请参见附图),但现在我需要将所有标高更新1米,例如,如果ts为6.250,我需要将其设置为7.250,则所有块属性中只有第一个数字会更改。
如果有人能为我提供一个lisp例程,或者我必须逐个更新所有900个插入的块,我将不胜感激。
 
谢谢
 

iliyasbh 发表于 2022-7-5 20:30:40

请帮忙

BIGAL 发表于 2022-7-5 20:40:46

这是我们用来提高或降低道路标高的文本,它是说街区的起点。我看看是否有时间重写。
 

;Adds a fixed amount to a number

(PRINC "TO USE JUST TYPE A2LM")

(DEFUN c:A2LM ()


(setvar "cmdecho" 1)

(setq olddimzin (getvar "Dimzin"))
(setvar "dimzin" 0)

(setq v2 (getreal "\nEnter ht adjustment "))

(setq ss (ssget (list (cons 0 "Text"))))

(setq len (sslength ss))

(setq x 0)

(repeat len
(setq en1 (ssname ss x))
       (setq el1 (entget en1))
       (setq v1 (atof (cdr (assoc 1 el1))))
       (setq a (+ v1 v2))
       (setq b (rtos a 2 3))
       (setq el (subst (cons 1 b) (assoc 1 el1) el1))
       (entmod el)
(setq x (+ x 1))
   
) ; repeat



(setq el nil)
(setq en nil)
(setq a nil)
(setq v1 nil)
(setq ss nil)

(setvar "cmdecho" 1)
(setvar "dimzin" olddimzin)
(princ)

); END DEFUN

BIGAL 发表于 2022-7-5 20:47:06

试试这个,你需要做两个更改块名和标记名。注意,由于我没有您的图纸,因此未对其进行测试。
 

;Adds a fixed amount to a number
(vl-load-com)
(PRINC "TO USE JUST TYPE A2LB")

(DEFUN c:A2LB ( / SS v2 val lev)

(setq tag1 "POINT") ;attribute tag name

(setq v2 (getreal "\nEnter ht adjustment "))
(setq ss (ssget (list (cons 0 "Insert"))))
(setq len (sslength ss))

(setq x 0)
(repeat len
(setq lev (vlax-ename->vla-object (ssname ss x)))
(foreach att (vlax-invoke lev 'getattributes)
(if (= tag1 (strcase (vla-get-tagstring att)))
(progn
(setq val (atof (vla-get-textstring att)))
(vla-put-textstring att (rtos (+ val v2) 2 3))
)
)
) ;foreach
(setq x (+ x 1))
) ; repeat

(princ)

); END DEFUN

iliyasbh 发表于 2022-7-5 20:51:58

早上好BIGAL
 
第一个用于多文本编辑的lisp工作正常,因为第二个lisp Autocad无法识别命令A2LM。
 
谢谢。。。。

BIGAL 发表于 2022-7-5 20:57:07

我的第二个帖子现在有一个2磅的附加到关卡。您必须编辑红色值!
 
还固定了整数v的实itof

iliyasbh 发表于 2022-7-5 21:06:36

谢谢你的回复
 
它仍显示为未知命令
 
我附上了一个样本图纸,标签名称是点,块名称是水平标签
 
 
图纸3.dwg

BIGAL 发表于 2022-7-5 21:13:45

我已经修改了上面的代码,但需要稍作修改,以便它能够识别您正在使用的动态块。我确实有几个拼写错误。但它对我来说效果很好,如果你选错了,它会尝试改变任何一个方块。

iliyasbh 发表于 2022-7-5 21:18:57

效果很好。。。非常感谢你

BIGAL 发表于 2022-7-5 21:27:20

不用担心,这很容易,因为已经有代码可以破解了。
页: [1]
查看完整版本: 仅编辑mu的第一位数字