找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2623|回复: 9

[求助] 如何批量将闭合多段线的面积标注到多段线的质心

[复制链接]

已领礼包: 1个

财富等级: 恭喜发财

发表于 2014-5-17 22:04:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在批量标注多段线的面积时,无法解决。标注到质心,首先要求出质心,我用region来完成,但不能实现。
求助高手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-5-17 22:09:35 来自手机 | 显示全部楼层
高飞有一贴,可求面域任何特性
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2014-5-18 09:35:22 | 显示全部楼层
试过了,返回值为nil,不知道是什么缘故
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 568个

财富等级: 财运亨通

发表于 2018-5-10 07:09:15 | 显示全部楼层
我编了一个,
(princ "\n面积输出程序,作者:王永高......")
(princ
  "\n在命令行输入mj进行多义线的面积计算和输出,输出到d:/mj.txt文件里......"
)
(defun c:mj ()
  (setq        os (getvar "osmode")
        om (getvar "cmdecho")
  )
  (setvar "osmode" 0)
  (setvar "cmdecho" 0)
  (setq        AcadObject   (vlax-get-acad-object)

        AcadDocument (vla-get-ActiveDocument AcadObject)

        mSpace             (vla-get-ModelSpace AcadDocument)

  )
  (princ "\n请选择物体:")
  (setq file1 (open "d:/mj.txt" "w"))
  (vl-load-com)
  (setq        ss1 (ssget)
        i   0
  )
  (setq currCenterPnt (vlax-make-safearray vlax-vbDouble '(0 . 2)))

  (if ss1
    (progn
      (repeat (sslength ss1)
        (setq ss11 (ssname ss1 i))
        (setq ss11ent (entget ss11))
        (setq ss11-name (cdr (assoc 0 ss11ent)))
        (setq ss12 (vlax-ename->vla-object ss11))
        (setq mj1 (vlax-curve-getArea ss12))

        (cond
          ((= ss11-name "ELLIPSE")
           (setq currCenterPnt (vla-get-center ss12))
          )
          ((= ss11-name "CIRCLE")
           (setq currCenterPnt (vla-get-center ss12))
          )
          ((= ss11-name "LWPOLYLINE")
           (setq currCenterPnt (zhongxin ss11))
          )
          ((= ss11-name "POLYLINE")
           (setq currCenterPnt (zhongxin ss11))
          )
          ( T (princ "\n选择的物体没有面积."))
        )

;;;        (setq length1(vla-get-length ss12 ))
       
        (princ (+ i 1) file1)       
        (princ "\t" file1)
        (princ mj1 file1)
        (princ "\n" file1)
;;;        (setq currCenterPnt (vla-get-center ss12))
        (setq
          TextObj (vla-AddText
                    mSpace
                    (strcat "No:" (itoa (+ i 1)) "  " (rtos mj1 2 2) "平方米.")
                    currCenterPnt
                    6
                  )
        )
;;;        (vla-ZoomExtents AcadObject)
        (setq i (+ i 1))
        (princ "\n")
        (setq txt1 (strcat "正在计算第" (itoa i) "物体."))
        (princ txt1)
      )
    )
  )
  (close file1)
  (setvar "osmode" os)
  (setvar "cmdecho" om)
  (princ "\nOK!")
  (princ)
)

(DEFUN zhongxin (ENTNAME)
  (setq        cbiao '()
        tmpbia '()
  )
  (setq bia (entget entname))
  (setq lorpl (cdr (assoc 0 bia)))
  (setq enttype lorpl)
  (IF (= LORPL "POLYLINE")
    (PROGN
      (SETQ BIA (ENTGET ENTNAME))
      (SETQ SF (CDR (ASSOC 70 BIA)))
      (WHILE (/= LORPL "SEQEND")
        (SETQ ENTNAME (ENTNEXT ENTNAME))
        (SETQ BIA (ENTGET ENTNAME))
        (SETQ LORPL (CDR (ASSOC 0 BIA)))
        (IF (/= LORPL "SEQEND")
          (SETQ CBIAO (CONS (CDR (ASSOC 10 BIA)) CBIAO))
          (IF (AND (/= LORPL "SEQEND")
                   (/= (LOGAND SF 4) 0)
                   (= (CDR (ASSOC 70 BIA)) 8)
              )
            (SETQ CBIAO (CONS (CDR (ASSOC 10 BIA)) CBIAO))
            (IF        (AND (/= LORPL "SEQEND") (= SF 0))
              (SETQ CBIAO (CONS (CDR (ASSOC 10 BIA)) CBIAO))
            )                                ;if end
          )                                ;if end
        )                                ;if end
      )                                        ;while end
      (IF (/= (LOGAND SF 1) 0)
        (SETQ CBIAO (CONS (LAST CBIAO) CBIAO))
      )                                        ;if end
    )                                        ;progn end
  )
  (IF (= LORPL "LWPOLYLINE")
    (PROGN
      (SETQ BIA (ENTGET ENTNAME))
      (setq pn (cdr (assoc 90 bia)))
      (repeat pn
        (setq tmpbia (assoc 10 bia))
        (setq cbiao (cons (cdr tmpbia) cbiao))
        (setq bia (cdr (member tmpbia bia)))
      )
    )
  )
  (SETQ CBIAO (REVERSE CBIAO))
  (setq ii1 0 jj1 0)
  (setq x1 0 y1 0)
  (repeat (length Cbiao)
    (setq pt1(nth ii1 cbiao))
    (setq x1 (+ x1 (car pt1))
          y1 (+ y1 (cadr pt1)))
    (setq ii1(+ ii1 1))
    )
  (setq pt12(vlax-3D-point  (/ x1 ii1)
                  (/ y1 ii1)))
  )

点评

谢谢王子,大救星  详情 回复 发表于 2019-11-27 15:41
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2018-7-3 10:21:37 | 显示全部楼层
很厉害,能不能设置字高于图层不?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2018-7-5 00:06:48 | 显示全部楼层
学习一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 568个

财富等级: 财运亨通

发表于 2018-7-5 06:57:51 | 显示全部楼层
谢谢回复。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-11-19 11:29:27 | 显示全部楼层
我已经解决了,谢谢晓东家园
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

 楼主| 发表于 2019-11-27 15:41:58 | 显示全部楼层
王子 发表于 2018-5-10 07:09
我编了一个,
(princ "\n面积输出程序,作者:王永高......")
(princ

谢谢王子,大救星
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 568个

财富等级: 财运亨通

发表于 2019-11-30 12:30:15 | 显示全部楼层
我都好长时间没上线了,偶尔上来看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-25 16:20 , Processed in 0.417230 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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