明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1040|回复: 5

一键转椭圆

[复制链接]
发表于 2018-9-9 16:45 | 显示全部楼层 |阅读模式
大师帮忙些个一键椭圆的LSP  文件是有其它软件倒进CAD的  本身是椭圆  CAD打开是多段线的  搜了下论坛帖子 很少关于椭圆插件的问题  有大师抽时间琢磨一下 万分感谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2018-9-10 09:58 | 显示全部楼层
没人知道么
发表于 2018-9-10 12:19 | 显示全部楼层
(defun mid_pt (a b)
   (mapcar
     (function (lambda (a b) (/ (+ a b) 2)))
     a
     b
   )
)

(defun C:try ()
   (setq ss (ssget "X" '((0 . "LWPOLYLINE")))
        2Pi (* Pi 2)
          i  -1
   )
   (while (setq ee (ssname ss (setq i (1+ i))))
     (setq pts (reverse (acet-ent-geomextents ee))
           pt5 (apply 'mid_pt pts)
            xx (apply '- (mapcar 'car pts))
            yy (apply '- (mapcar 'cadr pts))
     )        
     (entmake
      (list
        '(0 . "ELLIPSE")
        '(100 . "AcDbEntity")
        '(100 . "AcDbEllipse")
        (cons 10 pt5)
        (list 11 (/ xx 2) 0.0 0.0)
        (cons 40 (/ yy xx))
        '(41 . 0.0)
        (cons 42 2Pi)
     ))
   )
   (command "erase" ss "")
   (princ)
)

存在着精度差
CAD得安装有 EXPRESS TOOLS
 楼主| 发表于 2018-9-10 13:28 | 显示全部楼层
好像椭圆都存在一定的难度啊
发表于 2018-9-10 14:56 | 显示全部楼层
试试这个,不用安装EXPRESS TOOLS
(defun c:tt (/ a b en maxpt midpt minpt obj pt2 pt4 ss ssn)
  (setq ss (ssget)
  ssn (sslength ss)
)
(repeat ssn
  (setq en (ssname ss (setq ssn (1- ssn)))
   obj (vlax-ename->vla-object en)
  )
  (vla-GetBoundingBox obj 'minPt 'maxPt)
  (setq minPt (vlax-safearray->list minPt))
  (setq maxPt (vlax-safearray->list maxPt))
  (setq midpt (mapcar '(lambda (a b) (* (+ a b) 0.5)) minPt maxPt)
   pt2 (list (car maxPt) (cadr minPt))
   pt4 (list (car minPt) (cadr maxPt))
   a (* (distance minpt pt2) 0.5)
   b (* (distance minpt pt4) 0.5)
  )
  (entmake
   (list
    '(0 . "ELLIPSE")
    '(100 . "AcDbEntity")
    '(100 . "AcDbEllipse")
    (cons 10 midpt)
    (list 11 a 0.0 0.0)
    (cons 40 (/ b a))
    '(41 . 0.0)
    (cons 42 (* 2 pi))
   )
  )
)
(vl-cmdf "erase" ss "")
(princ)
)

 楼主| 发表于 2018-9-11 15:07 | 显示全部楼层
感谢 ssyfeng  这个非常好用  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 23:27 , Processed in 1.101553 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表