乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 32|回复: 11

[编程交流] 实时矩形区域

[复制链接]

57

主题

243

帖子

190

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
285
发表于 2022-7-5 17:03:56 | 显示全部楼层 |阅读模式
你好
有没有人知道一个例程,可以在连续绘制时实时提供矩形面积的总和?
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2022-7-5 17:10:09 | 显示全部楼层
您可以为此使用数据提取。它提供了实时更新(当然,您必须手动更新表),但它将采用每个矩形,显示每个矩形的面积,并且您可以添加一个页脚来汇总所有值。
 
我已经测试过了,效果很好:
180400ippsb3mgknzlviax.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:20:16 | 显示全部楼层
我喜欢数据提取的想法。
 
面积总和,您可以通过lisp调用rectang、pline或circle命令,只需记住在绘制对象后添加显示的面积。或在当前区域的任何时间。类似于询问每次运行哪个C-P-R-T。Teknomatica如果你真的想问这个问题。
 
  1. ; needs front end what to draw c - p - r - T
  2. ; this is generic code may not work on some objects
  3. (if (=  obarea nil)(setq obarea 0.0))
  4. (setq obj (vlax-ename->vla-object (entlast)))
  5. (setq obarea (+ (vla-get-area obj) obarea))
  6. (Alert (strcat "Total Area is " (rtos obarea 2 3)))
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
285
发表于 2022-7-5 17:21:10 | 显示全部楼层
我用李·麦克的这个套路,太棒了。
它解决了我的需求。
但该金额应按顺序实时提供
对三角板的设计。
对不起,翻译的英文。
  1. ;;---------------------=={ Total Area }==---------------------;;
  2. ;;                                                            ;;
  3. ;;  Displays the total area of selected objects at the        ;;
  4. ;;  command line.                                             ;;
  5. ;;------------------------------------------------------------;;
  6. ;;  Author: Lee Mac, Copyright © 2010 - www.lee-mac.com       ;;
  7. ;;------------------------------------------------------------;;
  8. (defun c:tArea nil
  9. ;; © Lee Mac 2010
  10. (
  11.    (lambda ( SelSet Total i / entity )
  12.      (if SelSet
  13.        (princ
  14.          (strcat "\nTotal Area: "
  15.            (rtos
  16.              (while (setq entity (ssname SelSet (setq i (1+ i))))
  17.                (setq Total
  18.                  (+ (vlax-curve-getArea entity) Total)
  19.                )
  20.              )
  21.            )
  22.          )
  23.        )
  24.      )
  25.    )
  26.    (ssget
  27.      (list (cons 0 "CIRCLE,ELLIPSE,*POLYLINE,SPLINE")
  28.        (cons -4 "<NOT")
  29.          (cons -4 "<AND")
  30.            (cons 0 "POLYLINE")
  31.            (cons -4 "<OR")
  32.              (cons -4 "&=") (cons 70 16)
  33.              (cons -4 "&=") (cons 70 64)
  34.            (cons -4 "OR>")
  35.          (cons -4 "AND>")
  36.        (cons -4 "NOT>")
  37.      )
  38.    )
  39.    0.0 -1
  40. )
  41. (princ)
  42. )
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
285
发表于 2022-7-5 17:27:30 | 显示全部楼层
茨弗兰普顿,
谢谢合作。这是一种可能性,但我想要的似乎不是最实际的解决方案。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:31:56 | 显示全部楼层
问题是为什么你在画图的时候需要知道面积?我提出的建议是一个可能的答案,绘制一些东西,添加面积和显示,仔细想想,我会绘制一些东西,然后使用预加载的lisp为总面积绘制“TOTA”。它还可以写入类似于dataextract的文件,例如“圆形区域”。独立命令的优点是,您只能在创建时添加正确的对象。有一个反应堆是可行的,你启动它,它会不断增加面积,直到你停止它。
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2022-7-5 17:40:11 | 显示全部楼层
如果您只需要选择一个矩形并查看该区域,则可以在“属性”中执行此操作。不需要李的代码。
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
285
发表于 2022-7-5 17:42:52 | 显示全部楼层
 
我不明白我的意思。我想连续画许多矩形,同时我想知道各个面积之和的值。也就是说​​每个新矩形都会添加到上一个区域,以此类推。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:48:00 | 显示全部楼层
 
也许是这样?
  1. ([color=BLUE]defun[/color] c:recarea ( [color=BLUE]/[/color] are fun ocs pt1 pt2 tot )
  2.    ([color=BLUE]setq[/color] ocs ([color=BLUE]trans[/color] '(0 0 1) 1 0 [color=BLUE]t[/color])
  3.          fun ([color=BLUE]if[/color] ([color=BLUE]zerop[/color] ([color=BLUE]getvar[/color] 'worlducs)) [color=BLUE]getpoint[/color] [color=BLUE]getcorner[/color])
  4.          tot 0.0
  5.    )
  6.    ([color=BLUE]while[/color]
  7.        ([color=BLUE]and[/color]
  8.            ([color=BLUE]setq[/color] pt1 ([color=BLUE]getpoint[/color] [color=MAROON]"\nSpecify first point <exit>: "[/color]))
  9.            ([color=BLUE]setq[/color] pt2 (fun pt1 [color=MAROON]"\rSpecify opposite corner <exit>: "[/color]))
  10.        )
  11.        ([color=BLUE]entmake[/color]
  12.            ([color=BLUE]list[/color]
  13.               '(000 . [color=MAROON]"LWPOLYLINE"[/color])
  14.               '(100 . [color=MAROON]"AcDbEntity"[/color])
  15.               '(100 . [color=MAROON]"AcDbPolyline"[/color])
  16.               '(090 . 4)
  17.               '(070 . 1)
  18.                ([color=BLUE]cons[/color] 038 ([color=BLUE]caddr[/color] ([color=BLUE]trans[/color] pt1 1 ocs)))
  19.                ([color=BLUE]cons[/color] 010 ([color=BLUE]trans[/color] pt1 1 ocs))
  20.                ([color=BLUE]cons[/color] 010 ([color=BLUE]trans[/color] ([color=BLUE]list[/color] ([color=BLUE]car[/color] pt2) ([color=BLUE]cadr[/color] pt1)) 1 ocs))
  21.                ([color=BLUE]cons[/color] 010 ([color=BLUE]trans[/color] pt2 1 ocs))
  22.                ([color=BLUE]cons[/color] 010 ([color=BLUE]trans[/color] ([color=BLUE]list[/color] ([color=BLUE]car[/color] pt1) ([color=BLUE]cadr[/color] pt2)) 1 ocs))
  23.                ([color=BLUE]cons[/color] 210 ocs)
  24.            )
  25.        )
  26.        ([color=BLUE]setq[/color] are ([color=BLUE]apply[/color] '[color=BLUE]*[/color] ([color=BLUE]mapcar[/color] '[color=BLUE]abs[/color] ([color=BLUE]mapcar[/color] '[color=BLUE]-[/color] pt1 pt2 '(0 0))))
  27.              tot ([color=BLUE]+[/color] tot are)
  28.        )
  29.        ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nArea: "[/color] ([color=BLUE]rtos[/color] are) [color=MAROON]" | Total: "[/color] ([color=BLUE]rtos[/color] tot)))
  30.    )
  31.    ([color=BLUE]princ[/color])
  32. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:55:12 | 显示全部楼层
我考虑的是面积场对象,它将包括每个新绘制的矩形,因此即使矩形被修改,它也可以工作。
或者某种反应堆。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 09:30 , Processed in 1.071833 second(s), 85 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表