明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5341|回复: 30

[基础] 圆生成特定4处小缺圆

  [复制链接]
发表于 2009-10-13 01:00 | 显示全部楼层 |阅读模式

想做一个程序,将任意多个圆生成每个圆4个带小缺口的图元,并串接成聚合线 "LWPOLYLINE"

a,所选择的圆不管多大小,程序自动以45度方向凸出0.02mm的4处R0.2的小缺口

b,能识别图层和色型,选择对象后只处理图层名为 "*_W" 内的圆和色号为1#的圆

c,生成出来的新图元需是聚合线 "LWPOLYLINE"

请问这个程序该怎么编,提供一个测试图!



 楼主| 发表于 2009-10-13 12:10 | 显示全部楼层

有沒有人提供一下思路的﹐現在不曉得該如何下手才好﹗

发表于 2009-10-13 12:32 | 显示全部楼层

编程思路:
1、用ssget取得图中的圆;
2、使用repeat循环,循环数量为取得圆的数量;
3、用entget,ssname取得单个圆的数据表;
4、从上面数据表中读取圆心和半径;
5、用polar函数计算要画的四个小弧的中心位置;
6、在算好的四个点画四个半径为0.2的圆;
7、使用trim命令对画好的圆进行剪裁;
8、使用pedit命令对剪裁后的线条进行联接。

明经网友  发表于 2009-10-14 00:35

能力有限写不出来,ZZXXQQ版主帮忙写出后面的程序吧,依我现在的能力可能研究半年后才能写得出这完整的程序来

(defun c:ttt ()
   (setvar "osmode" 0)
   (setq ss (ssget (0 . "circle")))
   (setq i 0)
   (repeat (sslength ss)
      (setq c1 (ssname ss i))
      (setq d1 (cdr (assoc 40 (entget c1))))  ;圆半径
      (setq dzb (cdr (assoc 10 (entget c1)))) ;圆坐标点
      (setq p1 (polar ))  ;得到0.2圆的坐标点,这里开始不会写了
      (setq i (+ i 1))
   )
   (princ)
)

回复 支持 反对

使用道具

 楼主| 发表于 2009-10-14 00:38 | 显示全部楼层

能力有限在做半径为0.2的坐标点就不知怎么写了,后面的还要trim截除和Pedit串接更加难写了,依我现在的能力得再学半年才有可能写得出来了,ZZXXQQ版主请帮忙写完下面的程序吧!

(defun c:ttt ()
   (setvar "osmode" 0)
   (setq ss (ssget (0 . "circle")))
   (setq i 0)
   (repeat (sslength ss)
      (setq c1 (ssname ss i))
      (setq d1 (cdr (assoc 40 (entget c1))))  ;圆半径
      (setq dzb (cdr (assoc 10 (entget c1)))) ;圆坐标点
      (setq p1 (polar ))  ;得到0.2圆的坐标点,这里开始不会写了
      (setq i (+ i 1))
   )
   (princ)
)

本帖子中包含更多资源

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

x
发表于 2009-10-14 12:37 | 显示全部楼层
本帖最后由 作者 于 2009-10-15 19:42:59 编辑

游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

 楼主| 发表于 2009-10-14 12:49 | 显示全部楼层

非常感謝ZZXXQQ版主的熱心幫助﹗

目前程序支持直徑1mm以上的圓﹐1以下的圓trim可能出錯,0.4以下的圓還應該加上出錯提示并不執行程序

本帖子中包含更多资源

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

x
发表于 2009-10-14 20:30 | 显示全部楼层
5楼已改,再试试。
 楼主| 发表于 2009-10-14 20:53 | 显示全部楼层
0.6以上圓可以,0.55以下的還是老樣子
沒關系了﹐這樣已經挺好用了﹐能否加個判斷﹐如果是0.6以下的圓將不做修改﹐待程序執行完所有0.6以上的圓后出個提示﹕
(princ 有""個為0.6的圓由于直徑太小未作修改)
发表于 2009-10-15 12:26 | 显示全部楼层
五楼已改,再试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-17 19:28 , Processed in 0.182429 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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