明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2227|回复: 2

自动标注问题?

[复制链接]
发表于 2003-5-4 22:47:00 | 显示全部楼层 |阅读模式
我是个新手。
我在这个网站看了关于面积标注的lisp程序,原先是要指定标注位置的,现在我想通过选择对象后,自动求出该面域的中心位置,将文字标注在重心位置上,我对它进行了修改,但是行不通,请教各位了!

本帖子中包含更多资源

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

x
发表于 2003-5-6 08:14:00 | 显示全部楼层

勉強可用..

(defun C:MJBZ (/        TXTSIZE         HEADTXT  PRECISION            OLDCMD
               SEL        ENT         ENTLIST  ENTNAME  VLAENT   AREA
               PT        REGENT
              )
  (setq TXTSIZE (getvar "dimtxt"))
  (setq HEADTXT "地块总面积为: ")
  (setq PRECISION 3)
  (setq OLDCMD (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setq SEL t)
  (vl-load-com)
  (while SEL
    (setq ENT (entsel "\n选取封闭多义线/面域: "))
    (if        ENT
      (progn
        (setq ENTLIST (entget (car ENT)))
        (setq ENTNAME (strcase (cdr (assoc 0 ENTLIST))))
        (cond
          ((and        (wcmatch ENTNAME "*POLYLINE")
                (setq VLAENT (vlax-ename->vla-object (car ENT)))
                (= :vlax-true (vla-get-closed VLAENT))
           )
           (setq AREA
                  (strcat HEADTXT
                          (rtos (vlax-curve-getarea VLAENT) 2 PRECISION)
                  )
           )
           (command "_.copy" (car ENT) "" "0,0" "0,0")
           (command "region" (car ENT) "")
           (setq REGENT (entlast))
           (setq PT (vlax-get (vlax-ename->vla-object REGENT)
                              "centroid"
                    )
           )
           (entdel (entlast))
           (command "text" "j" "c" PT TXTSIZE "" AREA)
          )
          ((= ENTNAME "REGION")
           (command "area" "o" (car ENT))
           (setq
             AREA (strcat HEADTXT (rtos (getvar "area") 2 PRECISION))
           )
           (setq REGENT (car ENT))
           (setq PT
                  (vlax-get (vlax-ename->vla-object REGENT) "centroid")
           )
           (command "text" "j" "c" PT TXTSIZE "" AREA)
          )
          (t
           (princ "\n所选对像非封闭多义线/面域")
          )
        )
      )
      (setq SEL NIL)
    )
  )
  (setvar "cmdecho" OLDCMD)
  (princ)
)
 楼主| 发表于 2003-5-6 20:57:00 | 显示全部楼层

谢谢!龙兄!

我回加倍努力的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 11:45 , Processed in 0.166344 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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