明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: 郭文姬happy

[基础] 求解计算封闭路线的面积并注计在其形心

[复制链接]
发表于 2015-8-23 06:48 | 显示全部楼层
本帖最后由 香田里浪人 于 2015-8-23 06:54 编辑


;;修改图可直接改变面积,nwebuser原创 香田里浪人修改
(vl-load-com)
(defun c:mj (/)
(command "layer" "M" "面积标注" "C" "6" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
(setvar"dimzin"0);;保留小数位数时如果位数不足可以补零
   (setq TextHeight (getdist "\n请输入文字高度:(默认1)"))
    (if (= TextHeight nil) (setq TextHeight 1))
  (setq e (car (entsel "\n 请选择多边形>>  ")))
  (setq e_obj (vlax-ename->vla-object e))
  (vla-getboundingbox e_obj 'minpt 'maxpt)
  (setq p1 (vlax-safearray->list minpt))
  (setq p2 (vlax-safearray->list maxpt))
  (setq mid (mapcar '(lambda (x y) (/ (+ x y) 2.)) p1 p2));;求两点中点
  (setq mj (strcat "S="(rtos (vla-get-area e_obj) 2 2)"㎡"))
  (entmake
    (list '(0 . "TEXT")
    (cons 7 "BG_ST")
    (cons 1 mj)
    (cons 10 mid)
    (cons 40 TextHeight)
    (cons 41 0.7)
    )
  )
  (setq wjb (cdr (assoc 5 (entget (entlast)))))
  (setq wjl (list wjb))
  (setq objlt (list e_obj))  ;图元名转换为VLA对象
  (setq  vrl (vlr-pers
        (vlr-object-reactor objlt wjl '((:vlr-modified . c-2l)))
      )
  )
  (princ)        ;静默退出
)
(defun c-2l (notifier-object
       reactor-object
       parameter-list
       /
      )
  (setq mj (strcat "S="(rtos (vla-get-area notifier-object) 2 2)"㎡"))
  (vla-getboundingbox notifier-object 'minpt 'maxpt)
  (setq p1 (vlax-safearray->list minpt))
  (setq p2 (vlax-safearray->list maxpt))
  (setq mid (mapcar '(lambda (x y) (/ (+ x y) 2.)) p1 p2)) ;;求两点中点
  (setq we (handent (car (vlr-data reactor-object)))) ;获取文本图元名
  (setq wel (entget we))
  (setq wel (subst (vl-list* 10 mid) (assoc 10 wel) wel))
  (setq wel (subst (vl-list* 1 mj) (assoc 1 wel) wel))
  (setq
    wel  (subst (vl-list* 40 TextHeight)
         (assoc 40 wel)
         wel
  )
  )
  (entmod wel)        ;更新文本图元表
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 19:58 , Processed in 0.246782 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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