明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1739|回复: 9

[提问] 求助:如何批量将多段线(或直线)连成的圆形转换成圆

[复制链接]
发表于 2016-10-17 22:33 | 显示全部楼层 |阅读模式
本帖最后由 junxan 于 2016-10-18 00:29 编辑

本人不懂cad,向各位大师求助:
1、如何批量将多段线(或者直线)连接成的圆,转换成圆。圆的大小与原图基本相近,位置基本不变就行;
2、圆圈内的单个数字合并到一起,数字的角度(方向)不变;
3、自动删除这些多段线或直线。



本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

发表于 2016-10-20 16:56 | 显示全部楼层


  1. ;;碎线转圆,弧
  2. (defun c:test (/ ss s1 ss2)
  3.   (vl-load-com)
  4.   (setvar "cmdecho" 0)
  5.   (setq os (getvar "osmode"))
  6.   (setvar "osmode" 0)
  7.   (setq ps (getvar "peditaccept"))
  8.   (setvar "peditaccept" 1)
  9.   (setq ss (ssget '((0 . "LINE"))))

  10.   (if ss
  11.     (progn
  12.       (setq s1 (entlast))
  13.       (setq ss2 (ssadd))
  14.       (command "pedit" "m" ss "" "j" "" "")
  15.       (while (setq s1 (entnext s1))
  16.   (ssadd s1 ss2)
  17.       )
  18.       
  19.       (setq l (sslength ss2))
  20.       (setq i 0)
  21.       (repeat l
  22.   (setq ssn (ssname ss2 i))
  23.   (if (> (rem (cdr (assoc 70 (entget ssn))) 2) 0)
  24.     (progn
  25.       (command "_region" ssn "")
  26.       (setq en2 (entlast))
  27.       (setq obj2 (vlax-ename->vla-object en2))
  28.       (setq area (vla-get-Area obj2))
  29.       (setq ptc (vlax-safearray->list
  30.       (vlax-variant-value (vla-get-centroid obj2))
  31.           )
  32.       )
  33.       (setq radius (sqrt (/ area pi)))
  34.       (command "_circle" ptc radius)
  35.       (entdel en2)
  36.     )
  37.     (progn
  38.       (setq obj1 (vlax-ename->vla-object ssn))
  39.       (setq pts (vlax-curve-getstartpoint obj1))
  40.       (setq pte (vlax-curve-getendpoint obj1))
  41.       (setq dis (vlax-curve-getdistAtPoint obj1 pte))
  42.       (setq ptm (vlax-curve-getpointatdist obj1 (* dis 0.5)))
  43.       (command "_arc" pts ptm pte)
  44.       (entdel ssn)
  45.     )
  46.   )
  47.   (setq i (1+ i))
  48.       )
  49.     )
  50.   )
  51.   (setvar "peditaccept" ps)
  52.   (setvar "osmode" os)
  53.   (princ)
  54. )


本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
lostbalance + 1 很给力!
USER2128 + 1 很给力!

查看全部评分

回复 支持 2 反对 0

使用道具 举报

发表于 2016-10-18 07:59 | 显示全部楼层
这个不容易。。。。。

点评

用最小包围圆,不知可否,,,,,,,,,,  发表于 2016-10-20 08:42
 楼主| 发表于 2016-10-19 23:21 | 显示全部楼层
求助求助,继续求助
发表于 2016-10-20 16:06 | 显示全部楼层
junxan 发表于 2016-10-19 23:21
求助求助,继续求助

最简单方法ebox算出中心及半径...画圆就行了...
发表于 2016-10-20 16:07 | 显示全部楼层
看样子是软件导出来的图..原图就是圆...
发表于 2016-10-21 10:39 | 显示全部楼层
你可以直接创建边界啊
 楼主| 发表于 2016-10-22 12:58 | 显示全部楼层
万分感谢Atsai,完美解决转圆的问题。

因不懂cad,更不懂编程,仅会使用些简单的Excel函数,惭愧。

论坛里找了些文字合并的代码,能做到批量把方框内的文字合并,不改变文字高度、方向,但字宽变小了(不影响我对图纸的使用)。但不能合并圆里的文字,希望哪位再帮忙写一个。
发表于 2016-10-22 14:33 | 显示全部楼层
这个只能对直线起作用,为什么圆弧不能处理,能否帮忙改一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-28 20:55 , Processed in 0.205741 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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