664571221 发表于 2024-11-1 19:13:30

各位大神看一下,求输入tt选择这种文字,在边上生成周长,如图

各位大神看一下,求输入tt选择这种文字,在边上生成周长,如图

czb203 发表于 2024-11-1 22:24:43

这不是很简单吗,我也不会

xyp1964 发表于 2024-11-2 06:48:37





yefei812678 发表于 2024-11-2 10:07:03

谢谢分享谢谢分享谢谢分享谢谢分享谢谢分享

664571221 发表于 2024-11-2 11:09:57

czb203 发表于 2024-11-1 22:24
这不是很简单吗,我也不会

大神可以写一个不

统一网名 发表于 2024-11-4 11:10:30

本帖最后由 统一网名 于 2024-11-5 11:30 编辑


[*]
[*](defun c:tt (/ ename jd len lst p1 p2 p3 pp ss txt zc zg)
[*](setq ss (ssget '((0 . "TEXT"))))
[*](repeat (setq len (sslength ss))
[*]    (setq ename (ssname ss (setq len (1- len))))
[*]    (vla-GetBoundingBox (vlax-ename->vla-object ename) 'L 'R)
[*]    (setq p1 (vlax-safearray->list L) p2 (vlax-safearray->list R) p3 (list (car p2) (cadr p1)))
[*]    (setq txt (cdr (assoc 1 (entget ename))))
[*]    (setq zg (cdr (assoc 40 (entget ename))))
[*]    (setq jd (cdr (assoc 50 (entget ename))))
[*]    (setq lst (read ( strcat "(" ( vl-list->string ( mapcar '( lambda (x)(if( <= 48 x 57 ) x 32 ))( vl-string->list txt )))")")))
[*]    (setq zc (rtos (/(*(+ (car lst)(cadr lst))2)1000.00)2 2))
[*]    (if(/= jd 0)(setq pp (polar p3 0 (* zg)))(setq pp (polar p1 (* -0.5 pi)zg)))
[*]    (entmake
[*]      (list
[*]      '(0 . "TEXT")
[*]      (cons 1 (strcat "周长 " zc))
[*]      (cons 10 pp)
[*]      (cons 62 1)
[*]      (cons 40 zg)
[*]      (cons 50 jd)
[*]      (cons 72 0)
[*]      )
[*]    )
[*])
[*](princ)
[*])



重新修改了代码,原来的理解错了。

统一网名 发表于 2024-11-4 19:23:53

xyp1964 发表于 2024-11-2 06:48


,我说这要求为啥有点奇怪,原来是搞错了。

664571221 发表于 2024-11-5 08:58:08

统一网名 发表于 2024-11-4 19:23
,我说这要求为啥有点奇怪,原来是搞错了。

大哥你这个是啥功能

统一网名 发表于 2024-11-5 11:30:50

664571221 发表于 2024-11-5 08:58
大哥你这个是啥功能

重新修改了下,你可以试一下

664571221 发表于 2024-11-5 14:31:54

统一网名 发表于 2024-11-5 11:30
重新修改了下,你可以试一下

好的谢谢大哥
页: [1] 2
查看完整版本: 各位大神看一下,求输入tt选择这种文字,在边上生成周长,如图