

(defun C:CKjS(/ p1 p2 meth mthTY mthDX DRjpt a1 l1 pa pb lx ly)(setq p1(cdr(reverse(getpoint"\n指定参考线首端点:")))p2(cdr(reverse(getpoint"\n指定参考线尾端点:")))meth(getstring"\n选择参考点的计算方式 [投影(T)/导线(D)] <T>"))(setq mthTY(lambda(pt1 pt2 dx dy / a0)(setq a0(angle pt1 pt2))(polar(polar pt1 a0 dx)(+ a0(* pi 0.5))dy))mthDX(lambda(pt1 pt2 pa pl / dst dx dy)(setq dst(distance pt1 pt2)dx(* pl(cos pa))dy(* pl(sin pa)))(mthTY pt1 pt2(+ dst dx)dy))DRjpt(lambda(pa pb)(if(and pa pb)(progn(entmake(list'(0 . "LINE")(cons 10(reverse pa))(cons 11(reverse pb))))(entmake (list '(0 . "CIRCLE")'(62 . 1)(cons 10(reverse pa))(cons 40 0.16)))(princ(strcat"点坐标:"(rtos(car pa)2 3)","(rtos(car pa)2 3)))))))(if(=(strcase meth)"D")(while(setq a1(getreal"\n输入点偏转角(D.MS) <Exit>:"))(while(setq l1(getreal"\n点至尾端点的距离 <Back>"))(setq pa(mthDX p1 p2(rad1 a1) l1)pb p2)(DRjpt pa pb)))(while(setq lx(getreal"\n参考点相对里程 <Exit>:"))(while(setq ly(getreal"\n点的偏距 <Back>:"))(setq pa (mthTY p1 p2 lx ly)pb (mthTy p1 p2 lx 0))(DRjpt pa pb))))(princ))
已关注
关注
重播 分享 赞
夜雨聆风