飞雪神光 发表于 2024-1-29 11:06
水平有限 就改成这样了
谢谢你的帮助,
在你的基础上也做了一些修改,增加了获取文字高度,和设置
(defun c:tt (/ ss ent lis)
;多段线每段线中心标注本段线长
(setq ss (ssget ":P:E" '((0 . "LWPOLYLINE"))))
(setq h1 (getvar "TEXTSIZE"));获取文本高度
(setq h (getreal (strcat "\n请键入文字高度<" (rtos h1 2 2) ">:")))
(if (null h)
(setq h h1)
)
(setvar"textsize" h);设置文本高度
(setq ent (ssname ss 0))
(mapcar
'(lambda (x)
(setq pt (cadr x))
(setq an (last x))(print an)
(setq an (if (>= (* pi 1.5) an (* pi 0.5)) (- an pi) an))
(setq pt (polar pt (+ an (* pi 0.5)) h));偏离一个文字的高度距离
(entmake
(list '(0 . "TEXT") '(72 . 1) '(73 . 2)
(cons 1 (car x))
(cons 10 pt)
(cons 11 pt)
(cons 40 h)
(cons 50 an)
)
)
)
(mapcar
'(lambda (x)
(list
(rtos (distance (car x) (cadr x)) 2 2)
(mapcar '* '(0.5 0.5) (mapcar '+ (car x) (cadr x)))
(- (rem (+ (angle (car x) (cadr x)) (* 0.25 pi)) pi) (* 0.25 pi))
)
)
(if (vlax-curve-isClosed ent)
(mapcar 'list
(setq lis (mapcar 'cdr (vl-remove-if-not '(lambda (x)(= 10 (car x)))(entget ent))))
(append (cdr lis) (list (car lis)))
)
(reverse
(cdr
(reverse
(mapcar 'list
(setq lis (mapcar 'cdr (vl-remove-if-not '(lambda (x)(= 10 (car x)))(entget ent))))
(append (cdr lis) (list (car lis)))
)
)
)
)
)
)
)
(princ)
) 好牛逼的插件 vitalgg 发表于 2024-1-30 12:25
源码:
https://gitee.com/atlisp/packages/blob/main/at-curve/at-curve.lsp
請問各位大神安裝後指令是什麼 ?
謝謝 359321852 发表于 2024-1-31 08:38
谢谢你的帮助,
在你的基础上也做了一些修改,增加了获取文字高度,和设置
弧長好是不正確
:Q- azaz042 发表于 2024-2-2 10:13
請問各位大神安裝後指令是什麼 ?
謝謝
没有给具体的指令。
安装核心管理后,可以直接运行函数 (at-curve:per-length) 或者从菜单或命令面板点击。
也可以自己设置指令
(defun c:你想要的指令 ()(at-curve:per-length)) vitalgg 发表于 2024-2-2 10:46
没有给具体的指令。
安装核心管理后,可以直接运行函数 (at-curve:per-length) 或者从菜单或命令面板点 ...
:handshake:handshake 厉害厉害,学习中
页:
1
[2]