永发信息网

用CAD里的lisp画图

答案:1  悬赏:0  手机版
解决时间 2021-03-17 04:47
  • 提问者网友:萌卜娃娃
  • 2021-03-17 01:09
用CAD里的lisp画图
最佳答案
  • 五星知识达人网友:青尢
  • 2021-03-17 01:25
(defun C:tes ( / #os1 #p ang1 ang2 cd1 cd2 p1 p2 p5 pt x)
 (setq #os1 (getvar "osmode"));取得捕捉设置
 (vl-load-com)
 (if (setq pt (getpoint "
请指定中心点"))
  (if (> (setq CD1 (getdist pt "
请输入长度")) 0)
   (if (setq ang1 (getangle pt "
请输入角度"))
    (progn
     (setvar "osmode" 0)
     (setq CD2 (* CD1 0.5)
           CD2 (* (expt (/ (expt CD2 2) 3) 0.5) -1);计算得到正多边形外切与圆半径r=开方【x平方/3】
           ang2 (+ ang1 (* pi 0.5));取得角度
           p1 (polar pt ang2 cd2);正多边形一个角点
           p5 (polar pt ang1 CD1);镜像点
     )
     (command "POLYGON" 3 pt "C" p1);绘制正多边形
     (command "MIRROR" (entlast) "" pt p5 "N");镜像这个对象
     (setq #p (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget (entlast)))));取得镜像多段线里面的点
     (setq p1 (car #p) p2 (cadr #p));提取端点
     (setq p1 (mapcar '(lambda (x) (* x 0.5)) (mapcar '+ p1 p2)));;两点相加取得中点
     (command "POLYGON" 3 pt "I" p1);绘制正多边形
     (setvar "osmode" #os1);还原捕捉
    )
   )
  )
 )
 (princ)
);复制到记事本以【.lsp】为后缀命名,打开cad用autoLISP加载,命令为:TES来自:求助得到的回答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯