明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9666|回复: 26

[资源] [分享]批量圆转多段线(源码)

  [复制链接]
发表于 2010-11-1 12:58 | 显示全部楼层 |阅读模式
批量圆转多段线(源码)

本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

  • · 学习|主题: 95, 订阅: 7
发表于 2019-6-19 19:07 来自手机 | 显示全部楼层
ljttjl 发表于 2010-11-1 21:01
圆、椭圆、样条曲线转多段线程序见:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=68784&extra=&pa ...

好东西,收藏了!!!!!!!!
发表于 2022-12-19 19:32 | 显示全部楼层
本帖最后由 cchessbd 于 2022-12-19 19:34 编辑

可以可以。但是您这个精度有些问题。我改成了40以适合钣金加工的。

本帖子中包含更多资源

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

x
发表于 2020-3-10 20:55 | 显示全部楼层
想下可惜没有币。
发表于 2010-11-1 13:48 | 显示全部楼层
转换的份数可以选就好了,期待..
发表于 2010-11-1 17:08 | 显示全部楼层
很简单啊.我也来一个.
  1. (defun gps->Circle-2plinelst (pt r n / ang nang pt1 ptlst)  (setq nang (/ (* 2 pi) n) ang 0)  (repeat n    (setq pt1 (polar pt ang r))        (setq ang (+ ang  nang))         (setq ptlst (append ptlst (list pt1)))   ))
  2. (defun gps->entmake-pline(pt_lst lay clsd)     (entmakex     (append       (list           '(0 . "LWPOLYLINE")       '(100 . "AcDbEntity")       '(100 . "AcDbPolyline")       (cons 8 lay)       (cons 90 (length pt_lst))       (cons 70 clsd); 1闭合       )       (mapcar '(lambda (pt) (cons 10 pt)) pt_lst)     )   ) ) (defun gps->ss-2lst (ss / lst n)  (if (= (type ss) 'PICKSET)    (repeat (setq n (sslength ss))     (setq lst (cons (ssname ss (setq n (1- n))) lst))    )      )  lst)(defun c:cl()  (if (null $fs)(setq $fs 10))    (setq tmp (getint (strcat "\n圆转多段线,请输入等份数量<" (itoa $fs) ">:")))  (if tmp (setq $fs tmp))  (foreach n (gps->ss-2lst (ssget '((0 . "Circle"))))        (setq ptlst (entget n) lay (cdr (assoc 8 ptlst))  pt (cdr (assoc 10 ptlst)) r (cdr (assoc 40 ptlst)))    (gps->entmake-pline (gps->Circle-2plinelst pt r $fs) lay 1)    (entdel n)  )  (prin1))
 楼主| 发表于 2010-11-1 17:14 | 显示全部楼层
呵呵 ,楼上的这个是将圆变成了多边行,再改该吧(我承认我这个也是,只是多了看不出)
发表于 2010-11-1 21:01 | 显示全部楼层

圆、椭圆、样条曲线转多段线程序见:

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=68784&extra=&page=1

发表于 2010-11-2 14:11 | 显示全部楼层
上面的的都太复杂了,其实很简单,最简单的就几行代码就搞定,复杂一点也用不了这么多代码,非常简单的事情!!!!!
发表于 2010-11-2 14:22 | 显示全部楼层

改天我贴上来!!!

发表于 2010-11-28 20:48 | 显示全部楼层
本帖最后由 redcat 于 2011-1-18 23:16 编辑


  1. (defun redcat_circle_pl (/ entlst setpick i norm layer center r pro_x)
  2.   (setq setpick (ssget '((0 . "CIRCLE")))
  3. i 0
  4.   ) ;_ 结束setq
  5.   (repeat (sslength setpick)
  6.     (setq entlst (entget (ssname setpick i))) ;_ 结束setq
  7.     (setq norm  (assoc 67 entlst) ;图形在模型空间或图纸空间
  8.    layer  (assoc 8 entlst) ;图层
  9.    center (assoc 10 entlst) ;圆心
  10.    r  (cdr (assoc 40 entlst)) ;半径
  11.    pro_x  (assoc 210 entlst) ;X轴拉伸方向
  12. ;;;....其余代码根据需要自行添加
  13.     ) ;_ 结束setq
  14.     (entmake (list '(0 . "LWPOLYLINE")
  15.      '(100 . "AcDbEntity")
  16.      norm
  17.      '(410 . "Model")
  18.      layer
  19.      '(100 . "AcDbPolyline")
  20.      '(90 . 3)
  21.      '(70 . 0)
  22.      '(43 . 0.0)
  23.      '(38 . 0.0)
  24.      '(39 . 0.0)
  25.      (list 10 (- (cadr center) r) (- (caddr center) r))
  26.      '(40 . 0.0)
  27.      '(41 . 0.0)
  28.      '(42 . 1.0)
  29.      '(91 . 0)
  30.      (list 10 (- (cadr center) r) (+ (caddr center) r))
  31.      '(40 . 0.0)
  32.      '(41 . 0.0)
  33.      '(42 . 1.0)
  34.      '(91 . 0)
  35.      (list 10 (- (cadr center) r) (- (caddr center) r))
  36.      '(40 . 0.0)
  37.      '(41 . 0.0)
  38.      '(42 . 0.46903)
  39.      '(91 . 0)
  40.      pro_x
  41.       ) ;_ 结束list
  42.     ) ;_ 结束entmake
  43.     (entdel (ssname setpick i))
  44.     (setq i (1+ i))
  45.   ) ;_ 结束repeat
  46.   (princ)
  47. ) ;_ 结束defun



发表于 2010-11-28 21:11 | 显示全部楼层
高手云集啊
发表于 2010-11-28 21:41 | 显示全部楼层
大家继续讨论不用管我
我只是看看在新论坛里自己的样子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 03:59 , Processed in 0.267302 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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