找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 392|回复: 0

[每日一码] 动态显示矩形的面积等信息

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2025-1-10 09:38:25 | 显示全部楼层 |阅读模式

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

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

×

Video_2024-05-04_141602.gif

  1. (defun c:xdtb_dynrecarea (/ #mcolor cen data dynpt height lastpnt mArea nums
  2.                             p-1 p2 p-2 pn1 pt1 pt2 pts str txt wid
  3.                          )
  4.   (defun _callback (dynpt)
  5.     (if (not (and
  6.                (equal pn1 dynpt 1e-3)
  7.                (equal lastpnt dynpt 1e-3)
  8.              )
  9.         )
  10.       (progn
  11.         (setq lastpnt dynpt
  12.               pt2 (xdrx-getpropertyvalue (list pn1 p-2) "getclosestpointto"
  13.                                          dynpt t
  14.                   )
  15.         )
  16.         (setq pt1 (xdrx-getpropertyvalue (list pn1 p-1) "getclosestpointto"
  17.                                          dynpt t
  18.                   )
  19.               wid (distance pt2 dynpt)
  20.               height (distance pt1 dynpt)
  21.               pts (list pt2 dynpt pt1 pn1)
  22.               cen (xdrx-line-midp dynpt pn1)
  23.               mArea (* wid height)

  24.               nums (length data)
  25.               str (xdrx-string-formatex (xdrx-string-multilanguage "宽度= %.1f\r\n高度= %.1f\r\n面积=%.1f" "Width= %.1f\r\nHeight= %.1f\r\nArea=%.1f")
  26.                                         wid height mArea
  27.                   )
  28.         )
  29.         (xd::grdraw:drawtext txt str cen 5 (* (getvar "viewsize") 0.025) 2
  30.                              (getvar "ucsxdir") nil 8
  31.         )
  32.       )
  33.     )
  34.     str
  35.   )
  36.   (xdrx-begin)
  37.   (xdrx-sysvar-push '("osmode" 8))
  38.   (if (setq pn1 (getpoint (xdrx-string-multilanguage "\n矩形起始点<退出>:" "\nRect Start Point<Exit>:")))
  39.     (progn
  40.       (setq #mcolor 1)
  41.       (setq p-1 (mapcar
  42.                   '+
  43.                   pn1
  44.                   '(1 0 0)
  45.                 )
  46.             p-2 (mapcar
  47.                   '-
  48.                   pn1
  49.                   '(0 1 0)
  50.                 )
  51.             txt (xdrx-mtext-make)
  52.       )
  53.       (XD::Drag:CallBackSetMouseMove "_callback")
  54.       (if (setq p2 (xd::doc:getcorner pn1
  55.                                       (xdrx-string-multilanguage "\n对角点<退出>:" "\ndiagonal point<Exit>:")
  56.                                       #mcolor '(1 0 0)
  57.                    )
  58.           )
  59.         (progn
  60.           (xdrx-polyline-make pts t)
  61.           (xdrx-setpropertyvalue (entlast) "color" #mcolor)
  62.           (xdrx-prompt (strcat "\n" str))
  63.         )
  64.       )
  65.       (xdrx-pointmonitor)
  66.     )
  67.   )
  68.   (xdrx-end)
  69.   (princ)
  70. )


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

本版积分规则

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

GMT+8, 2025-4-27 08:42 , Processed in 0.360587 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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