找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2371|回复: 7

[原创]:圆弧转多段线

[复制链接]

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-11-14 16:58:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
;圆弧转多段线
;h为弓高(即弦中心至相对应弧之中心的距离)
;它用来描述以弦代弧的光滑程度,一般化取0.005mm(图上距离)即可
(defun arc->pline(ent h / xtblm xtblz db r po a0 h n)
   (setq xtblm '("cmdecho" "osmode")
         xtblz (mapcar 'getvar xtblm)
         db (entget ent)  r (cdr (assoc 40 db))
         po (cdr (assoc 10 db))  
         a0 (cdr (assoc 50 db))
         db (- (cdr (assoc 51 db)) a0)
         db (cond ((< db 0) (+ (* 2.0 pi) db))
                  (t               db)
            )
         n  (fix (/ db (atan (/ (sqrt (- (* 2.0 r h) (* h h))) (- r h)))))
         db (/ db n)
   )
   (mapcar 'setvar xtblm '(0 0))
   (command "_pline" (polar po a0 r))
   (repeat n (command (polar po (setq a0 (+ a0 db)) r)))
   (command "" "_matchprop" ent (entlast) "" "_erase" ent "" "redraw")
   (mapcar 'setvar xtblm xtblz)(princ)
)

;测试程序
(defun c:cc()
   (setq t0 (getvar "cdate"))
   (arc->pline (car (entsel "\n请选取要转化多段线的圆弧:")) 0.005)
   (princ (strcat "\n耗时:" (rtos (* 1000000 (- (getvar "cdate") t0) 2 3)) "秒"))
   (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10399个

财富等级: 富甲天下

发表于 2013-12-27 08:08:58 | 显示全部楼层
  1. (defun c:tt ()
  2. (if (setq ss (ssget '((0 . "ARC"))))
  3.   (command "PEDIT" "M" ss "" "Y" "J" "" "")
  4. )
  5. (princ)
  6. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

发表于 2005-11-14 17:35:23 | 显示全部楼层
已收藏,不错。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-12-26 20:27:15 | 显示全部楼层
学习中。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-12-27 12:17:31 | 显示全部楼层
可以按长度批量打断(满足精度的微段长度),然后再连成多段线,这样外表上看还是圆弧,和别的软件交互的时候又具有多段线的性质
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-4-13 13:43:00 | 显示全部楼层
:lol:lol:lol:lol:lol我会了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 79个

财富等级: 招财进宝

发表于 2020-12-12 12:41:58 | 显示全部楼层
3楼思路更经典
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

发表于 2021-5-23 01:08:12 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 13:35 , Processed in 0.281045 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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