✅ 操作成功!

cad中心线

发布时间:2023-06-07 作者:admin 来源:文学

cad中心线

cad中心线

-

2023年2月18日发(作者:)将下面这段编码复制到autocad文件夹下的support下的里,当需要快速中心线是,输入快捷键ZX,有什么问题联系QQ:18540042(defun adddist (/ defdist)(if dist(progn(princ \"请输入延伸长度:\")))(progn(setq defdist 3)(setq dist (getdist \"请输入延伸长度:\"))))(if (= dist nil)(setq dist defdist))dist)(defun circle_cl (en1 / ed1 pto rad adist dd)(setq ed1 (entget en1))(setqtpto (cdr (assoc 10 ed1))rad (cdr (assoc 40 ed1)))(setq adist(adddist))(setq dd(+ rad adist))(command \"_line\" (polar pto 0 dd)(polar pto PI dd)\"\")(command \"_line\" (polar pto (/ PI 2) dd)(polar pto (+(/ PI 2) PI) dd) \"\"))(defun arc_cl (en1 / ed1 pto rad ang1 ang2 pto1 pt1 pt2 pto2 objline dd adist)(setq ed1 (entget en1))(setqtpto (cdr (assoc 10 ed1))rad (cdr (assoc 40 ed1))ang1 (cdr (assoc 50 ed1))ang2 (cdr (assoc 51 ed1)))(if (> ang1 ang2)(setq ang2(+ ang2 (* PI 2))))(setq ang (/ (+ ang1 ang2)2))(setq pto1 (polar pto ang rad))(setq pt1 (polar pto ang1 rad))(setq pt2 (polar pto ang2 rad))(setq pto2 (inters pto pto1 pt1 pt2 nil))(command \"_line\" pto1 pto2 \"\")(setqtobjlinet(entlast)ddt(distance pto1 pto2))(setq adist (adddist))(command \"_lengthen\"\"t\"(+ dd adist)(cons objline (list pto1))\"\")(command \"_lengthen\"\"t\"(+ dd (* adist 2))(cons objline (list pto2))\"\"))(defun line_cl (en1 / en2 )(setq en2 (car (entsel \"请选择另外的直线:\")))(if en2(progn(while (/= \"LINE\" (cdr (assoc 0 (entget en2))))(setq en2 (car (entsel \"请重新选择另外的直线:\"))))(dline_cl en1 en2))(sline_cl en1)))(defun dline_clt(en1 en2 / ed1 ed2 pta1 pta2 ptb1ptb2 pto ptoo pto1 pto2 angaangb ango objline ddt adist)(setqted1 (entget en1)ed2 (entget en2))(setqtpta1 (cdr (assoc 10 ed1))pta2 (cdr (assoc 11 ed1))ptb1 (cdr (assoc 10 ed2))ptb2 (cdr (assoc 11 ed2)))(if (setq pto (inters pta1 pta2 ptb1 ptb2 nil)) ;if 2(ift(inters pta1 pta2 ptb1 ptb2)t;if 3(princ \"两线相交,退出\")(progn(setq anga (angle pto pta1)angb (angle pto ptb1)ango (/ (+ anga angb) 2)ptoo (polar pto ango 1))tttt;setq(if (inters pta1 ptb1 pta2 ptb2) ;if 4(setqtpto1 (inters pta1 ptb2 pto ptoo nil)pto2 (inters pta2 ptb1 pto ptoo nil))(setqtpto1 (inters pta1 ptb1 pto ptoo nil)pto2 (inters pta2 ptb2 pto ptoo nil)))tttt;if 4(command \"_line\" pto1 pto2 \"\")(setq objline (entlast)dd (distance pto1 pto2))(setq adist (adddist))(command \"_lengthen\"\"t\"(+ dd adist)(cons objline (list pto1))\"\")(command \"_lengthen\"\"t\"(+ dd (* adist 2))(cons objline (list pto2))\"\"))ttttt;progn)ttttt;if 3(progn(arxload \"\" nil)(if (inters pta1 ptb1 pta2 ptb2)t;if 4(progn(setqtpto1 (c:cal \"(pta1 + ptb2) / 2\")pto2 (c:cal \"(pta2 + ptb1) / 2\"))(command \"_line\"pto1pto2\"\"))(progn(setqtpto1 (c:cal \"(pta1+ptb1)/2\")pto2 (c:cal \"(pta2+ptb2)/2\"))(command \"_line\"pto1pto2\"\")))(arxunload \"\" nil)(setq objline (entlast)ddt (distance pto1 pto2))(setq adist (adddist))(command \"_lengthen\"\"t\"(+ dd adist)(cons objline (list pto1))\"\")(command \"_lengthen\"\"t\"(+ dd (* adist 2))(cons objline (list pto2))\"\"))ttttt;px)ttttt;if 2)(defun sline_clt(en1 / ed1 pta1 pta2 pto anga ango adist pto1 pto2)(arxload \"\" nil)(setq ed1 (entget en1))(setqtpta1 (cdr (assoc 10 ed1))pta2 (cdr (assoc 11 ed1)))(setq pto (c:cal \"(pta1 + pta2) / 2\"))(setq anga (angle pto pta1))(setq ango (+ anga (/ PI 2)))(setq adist (adddist))(setq pto1 (polar pto ango adist))(setq pto2 (polar pto ango (- adist)))(command \"_line\" pto1 pto2 \"\")(arxunload \"\" nil))(defun c:zx (/ oldecho oldsnap oldortho en1)(setq oldecho (getvar \"cmdecho\"))(setvar \"cmdecho\" 0)(setq oldsnap (getvar \"osmode\"))(setvar \"osmode\" 0)(setq oldortho (getvar \"orthomode\"))(setvar \"orthomode\" 0)(setq en1 (car (entsel \"请选择直线、圆或圆弧:\")))(if en1(cond((= \"LINE\" (cdr (assoc 0 (entget en1)))) (line_cl en1))((= \"ARC\" (cdr (assoc 0 (entget en1)))) (arc_cl en1))((= \"CIRCLE\" (cdr (assoc 0 (entget en1)))) (circle_cl en1))(t (princ \"所选对象不符合要求,程序退出\")))(princ \"未选择对象,程序退出\"))(setvar \"cmdecho\" oldecho)(setvar \"osmode\" oldsnap)(setvar \"orthomode\" oldortho)(princ))

👁️ 阅读量:0