转圆或弧为二点多段线
本帖最后由 llsheng_73 于 2023-1-3 14:52 编辑没想通转个圆或弧为二点多段线怎么搞出3k多代码的,自己搞个
(defun arctopl(p r ang1 ang2 / a);;圆(弧)转多段线
(setq a(*(rem(+(- ang2 ang1)pi pi)(+ pi pi))0.25)a(cons 42(/(sin a)(cos a))))
(List(cons 10(polar p ang1 r))a(cons 10(polar p ang2 r))a))
(defun tt(e yn / en p r ang1 ang2)
(setq en(entget e)
p(cdr(assoc 10 en))
r(cdr(assoc 40 en))
ang1(cdr(assoc 50 en)))
(entmakex(vl-remove'nil(append(mapcar'cons'(0 100 100 90 70)(list"LWPOLYLINE""AcDbEntity""AcDbPolyline"2(if ang1 0 1)))(list(assoc 8 en)(assoc 370 en)(assoc 62 en))
(if ang1(arctopl p r ang1(cdr(assoc 51 en)))(arctopl p r 0 pi)))))
(or(="1"Yn)(entdel e)))
(defun c:tt(/ e Yn )
(initget "1 2")
(or(member(setq Yn(getkword"1.保留圆(弧) 2.不保留圆(弧)"))'("1""2"))(setq Yn"2"))
(while(setq e(ssget":E:S"'((0 . "circle,arc"))))
(tt(ssname e 0)Yn))
)
感谢分享、这个功能还是很有用的 llsheng_73 发表于 2023-1-3 10:34
没想通转个圆或弧为二点多段线怎么搞出3k多代码的,自己搞个
测试了下tt命令好像 下凹型圆弧会改变原来的方向
感谢楼主分享,{:1_1:} guosheyang 发表于 2023-1-3 12:43
测试了下tt命令好像 下凹型圆弧会改变原来的方向
当终止角小于起始角的时候会出问题,已修正 llsheng_73 发表于 2023-1-3 10:34
没想通转个圆或弧为二点多段线怎么搞出3k多代码的,自己搞个
老大,能不能搞个批量的?这个一个一个点,:lol累啊. 迷失1786 发表于 2023-6-14 23:17
老大,能不能搞个批量的?这个一个一个点,累啊.
轮子有了,怎么用轮子那是自己的事了,c:tt只是为了方便测试而已 不明觉力,学习学习!!