本帖最后由 尘缘一生 于 2018-4-29 09:46 编辑
修改下:焊缝高度不用输入,用第三点点击即可,这样更准确!
 - (defun c:hf(/ pts pte rad ang pt1 pt2 pt3 pt4 pt5 dd nn en1 en2)
- (setq pts (getpoint "\n请输入起点: ")
- pte (getpoint pts "\n请输入终点: ")
- pt1 (getpoint pte "\n请点出焊缝厚度: ")
- )
- (setq rad (distance pte pt1))
- (setq ang (angle pts pte))
- (setq pt2 (polar pts (+ ang 0) (* rad 2)))
- (setq pt1 (polar pts (+ ang (/ pi 4)) (* rad (sqrt 2))))
- (setq dd (distance pts pte))
- (setq nn (fix (/ dd rad)))
- (command "_arc" pts pt1 pt2)
- (setq en1 (entlast))
- (setq pt3 (polar pts (+ ang 0) rad))
- (setq pt4 (polar pt2 (+ ang 0) rad))
- (setq pt5 (polar pt1 (+ ang 0) rad))
- (repeat (1- nn )
- (command "_arc" pt3 pt5 pt4)
- (setq en2 (entlast))
- (command "_TRIM" en1 "" (list en2 pt3 ) "")
- (setq en1 en2)
- (setq pt3 (polar pt3 (+ ang 0) rad))
- (setq pt4 (polar pt4 (+ ang 0) rad))
- (setq pt5 (polar pt5 (+ ang 0) rad))
- )
- (prin1)
- )
|