明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2592|回复: 8

麻烦哪位老师帮忙改改删除椭圆新建圆的代码谢谢

[复制链接]
发表于 2012-4-23 00:09:38 | 显示全部楼层 |阅读模式
1明经币
(defun C:css (/ ss1 t1 v)
  (setq ss1 (ssget '((0 . "ELLIPSE"))))
  (setq t1 0)
  (setq v (getvar "osmode"))
  (setvar "osmode" 0)
  (while (ssname ss1 t1)
    (command "circle"
      (cdr (assoc 10 (entget (ssname ss1 t1))))
      "D"
      100
    )
    (setq t1 (+ 1 t1))
  )
  (command "erase" ss1 "")
  (setvar "osmode" v)
)

本代码是删除椭圆在圆心处新建直径为100mm的圆...
请问为什么在如下的测试圆中不行..

麻烦哪位老师改改谢谢



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

最佳答案

查看完整内容

大致改了下,测试ok.
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-4-23 00:09:39 | 显示全部楼层
  1. (defun C:css (/ ss1 t1 v temp)
  2.   (setq ss1 (ssget '((0 . "ELLIPSE"))))
  3.   (setq t1 0)
  4.   (setq v (getvar "osmode"))
  5.   (setvar "osmode" 0)
  6.   (while (setq temp (ssname ss1 t1))  
  7.    
  8.     (command "circle"
  9.       (trans (cdr (assoc 10 (entget temp))) 0 1)
  10.       "D"
  11.       100
  12.     )
  13.     (setq t1 (+ 1 t1))
  14.     (ENTDEL temp)
  15.   )  
  16.   (setvar "osmode" v)
  17. )

大致改了下,测试ok.
回复

使用道具 举报

发表于 2012-4-23 00:46:25 | 显示全部楼层
加一句(command "ucs" "w")试试

评分

参与人数 1明经币 +1 收起 理由
flytoday + 1 谢严哥。。你这个是转坐标后能用。。我用楼.

查看全部评分

回复

使用道具 举报

发表于 2012-4-23 12:57:07 | 显示全部楼层
  1. (defun c:tt (/ ss t1 v)
  2.   (if (setq ss (ssget '((0 . "ELLIPSE"))))
  3.     (progn
  4.       (setq i -1)
  5.       (while (setq s1 (ssname ss (setq i (1+ i))))
  6.         (setq pt (cdr (assoc 10 (entget s1))))
  7.         (command "circle" pt "D" 100)
  8.       )
  9.       (command "erase" ss "")
  10.     )
  11.   )
  12.   (princ)
  13. )

评分

参与人数 1金钱 +5 收起 理由
flytoday + 5 很给力!院长这个很简洁。。

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-4-23 13:18:21 | 显示全部楼层

本帖最后由 flytoday 于 2012-4-23 13:18 编辑

曾经被院长踢出群。。。院长您大师能不能帮我改下您老滴插件啊。。。
附件如下。。。能不能给如下的插件定一个条件就就双平行线距离在351mm以内只标注一边啊。。谢谢

本帖子中包含更多资源

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

x

点评

要言而有信……  发表于 2012-4-23 19:58
回复

使用道具 举报

发表于 2012-4-23 13:36:08 | 显示全部楼层

  1. ;; 批量标注线长和编号
  2. (defun c:test910 ()
  3.   (CMDLAsc0)
  4.   (setq        ss  (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))
  5.         i   -1
  6.         lst '()
  7.   )
  8.   (while (setq s1 (ssname ss (setq i (1+ i))))
  9.     (setq lst (cons (list (xyp-get-CurveLength s1) s1) lst))
  10.   )
  11.   (setq        lst  (vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2))))
  12.         i    0
  13.         lst2 '()
  14.   )
  15.   (foreach a lst
  16.     (setq leng (car a)
  17.           s1   (cadr a)
  18.     )
  19.     (if        (not (member leng lst2))
  20.       (setq lst2 (cons leng lst2)
  21.             i         (1+ i)
  22.       )
  23.     )
  24.     (setq pt  (xyp-get-CurveMidPoint s1)
  25.           rad (XYP-RAD2REAL (XYP-GET-ANGLEATPOINT s1 pt) 1)
  26.           p1  (polar pt rad 5)
  27.           p2  (polar pt rad -5)
  28.           pt  (xyp-get-RightPoint p1 p2 (* xyp-sc 200))
  29.     )
  30.     (xyp-Text 5 pt (strcat "L" (itoa i) "=" (rtos leng 2)))
  31.     (xyp-SubUpd (entlast) 50 rad)
  32.   )
  33.   (CMDLA1)
  34. )

点评

院长1964元老了,编程都成精了。  发表于 2012-4-27 14:06
院长的子程写的特别好,可惜只有一部分.啥时候也抛售啊.  发表于 2012-4-24 12:23

评分

参与人数 1金钱 +5 收起 理由
flytoday + 5 很给力!院长太感谢您了。谢谢您的无私奉献,.

查看全部评分

回复

使用道具 举报

发表于 2012-4-27 09:39:25 | 显示全部楼层
本帖最后由 1993063 于 2012-4-26 15:44 编辑

先坐标还原
(COMMAND "UCS" "W")
测试结果可用
回复

使用道具 举报

发表于 2012-4-27 12:32:04 | 显示全部楼层
院长代码.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-25 07:20 , Processed in 0.182556 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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