明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1303|回复: 7

给圆增加标识字符

[复制链接]
发表于 2009-4-29 02:10:00 | 显示全部楼层 |阅读模式
如图片给选到的圆,增加标识字符, 如有同心圆只标一个字符,求高手帮助!
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2009-4-29 02:11:00 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-4-29 12:39:00 | 显示全部楼层
不要让它沉下去,我自己再顶
 楼主| 发表于 2009-5-2 10:43:00 | 显示全部楼层
顶顶顶顶顶顶顶顶顶
发表于 2009-5-2 14:37:00 | 显示全部楼层
本帖最后由 作者 于 2009-5-3 2:05:08 编辑

(defun c:test()

  ;加载vlisp函数
  (vl-load-com)

  ;获取圆选集
  (if (setq Ss (ssget '((0 . "Circle"))))

    (progn

      ;初始化标志变量
      (setq Flags nil

     ;索引
     i 0
    
     )
     
      ;遍历选集
      (repeat (sslength Ss)

 ;获取圆
 (setq ET (ssname Ss i)

       ;获取圆数据
       ER (entget ET)

       ;圆心坐标
       CPt (cdr (assoc 10 ER))

       ;圆半径
       CR (cdr (assoc 40 ER))

       )

 ;检索该位置是否已经有标志
 (if (setq Flag (assoc CPt Flags))

   ;标志存在就比较标志的位置
   ;比较半径取最大的
   (if (> CR (cadr Flag))(setq Flags (subst (list CPt CR) Flag Flags)))
  
   ;标志不存在,添加标志位置
   (setq Flags (append Flags (list (list CPt CR))))

   )

 ;索引递增
 (setq i (1+ i))

 )

      ;添加标记
      (if Flags

 (progn

   ;CAD
   (setq Cad (vlax-get-acad-object)

  ;当前图档
  Doc (vla-get-activedocument Cad)
  )

   ;当前空间
   (if (= (getvar "TILEMODE") 1)

     ;模型空间"TILEMODE"变量为1
     (setq Spc (vla-get-modelspace Doc))

     ;图纸空间"TILEMODE"变量为0
     (setq Spc (vla-get-paperspace Doc))

     )

   ;索引
   (setq i 0)

   ;保存捕捉设置
   (setq OsMode (getvar "OSMODE")

  ;当前字高
  TxtH (getvar "TEXTSIZE")

  ;初始标记
  ASC 65

  ;半径标记关系
  RF nil

  )

   ;关闭捕捉
   (setvar "OSMODE" 0)

   ;遍历表生成标记
   (repeat (length Flags)

     ;读取标志信息
     (setq Flag (nth i Flags)

    ;标志位置
    BPt (polar (car Flag) (* pi 1.25) (+ (cadr Flag) (* (sqrt 2) txtH)))

    )

     ;读取标记编号
     (if (setq strRF (assoc (cadr FLag) RF))

       ;生成标记
       (vla-addtext Spc (cdr strRF) (vlax-3d-point BPt) TxtH)

       (progn

  (vla-addtext Spc (chr ASC) (vlax-3d-point BPt) TxtH)

  (setq RF (append RF (list (cons (cadr FLag) (chr ASC))))
       
        ASC (1+ ASC)
       
        )
  
  )
      
       )      

     ;索引递增
     (setq i (1+ i))
    
     )

;恢复捕捉设置
   (setvar "OSMODE" OsMode)

   )

 )

      )

    )

  (princ)

  )

发表于 2009-5-2 21:51:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-5-3 09:46:00 | 显示全部楼层
谢谢楼上Sailorcwx的帮助
 楼主| 发表于 2009-5-3 09:57:00 | 显示全部楼层
如果是块能否实现同名块增加标示符?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-25 05:45 , Processed in 0.199930 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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