各位大神看一下,求输入tt选择这种文字,在边上生成周长,如图
各位大神看一下,求输入tt选择这种文字,在边上生成周长,如图这不是很简单吗,我也不会
谢谢分享谢谢分享谢谢分享谢谢分享谢谢分享 czb203 发表于 2024-11-1 22:24
这不是很简单吗,我也不会
大神可以写一个不 本帖最后由 统一网名 于 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)
[*])
重新修改了代码,原来的理解错了。
xyp1964 发表于 2024-11-2 06:48
,我说这要求为啥有点奇怪,原来是搞错了。
统一网名 发表于 2024-11-4 19:23
,我说这要求为啥有点奇怪,原来是搞错了。
大哥你这个是啥功能 664571221 发表于 2024-11-5 08:58
大哥你这个是啥功能
重新修改了下,你可以试一下
统一网名 发表于 2024-11-5 11:30
重新修改了下,你可以试一下
好的谢谢大哥
页:
[1]
2