乐筑天下

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

[编程交流] '警报#039;带foc的盒子

[复制链接]

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 15:45:02 | 显示全部楼层 |阅读模式
大家好,
 
有没有一种方法可以创建某种漂浮在DWG上的“alertbox”,而不需要从DWG中获取焦点?
 
我找到了函数(acet ui status“Message”“Title”),但它只允许3行文本。我想用多一点。。。。
 
对此有什么建议吗?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:49:52 | 显示全部楼层
只是另一个论坛的一些引述:
 
</blockquote>
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 15:54:27 | 显示全部楼层
感谢Grrr的回复,
我还找到了acet ui txted函数,但也保留了“焦点”。
 
我从你的另一篇文章中了解到,我试图描述的是不可能的?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:56:02 | 显示全部楼层
 
啊该死-你说得对,对不起。我对acet-*函数也不够熟悉。
 
 
 
 
是的,但是:
这意味着额外安装一个软件。。。
除非有人提出不同的建议。
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 15:59:28 | 显示全部楼层
我不明白的是为什么(acet ui status)的功能只支持3行文本-(
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:04:49 | 显示全部楼层
 
看起来acet ui txted也被限制为最多15行:
  1. (acet-ui-txted  
  2. ( (lambda ( / s i ) (repeat 100 (setq s (strcat (cond (s (strcat s "\r\n"))("")) (itoa (setq i (1+ (cond (i)(0))))))))) )
  3. "Caption" "Note"
  4. )
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:06:39 | 显示全部楼层
也许/不知道你想要完成什么,但你可以使用grdraw。这是李大师的一个很酷的例子:-)
 
 
http://www.lee-mac.com/grtext.html
 
 
否则,你必须结合lisp例程和reactor创建某种智能字段或块,以便在每次缩放或平移后进行缩放,并可能将“注释”放在锁定层上。。大声想想。
 
 
gr.Rlx
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:11:00 | 显示全部楼层
 
有趣的想法:
  1. (defun C:test nil
  2. (
  3.    (lambda (txt / cad spc o ll ur)
  4.      (and
  5.        (setq spc (vla-get-Block (vla-get-ActiveLayout (vla-get-ActiveDocument (setq cad (vlax-get-acad-object))))))
  6.        (setq o (vla-AddMText spc (vlax-3d-point '(0. 0. 0.)) 1 txt))
  7.        (progn
  8.          (vla-GetBoundingBox o 'll 'ur)
  9.          (vla-ZoomWindow cad ll ur)
  10.          (vla-ZoomScaled cad 0.5 acZoomScaledRelative)
  11.          (while (not (grread)))
  12.          (repeat 2 (vla-ZoomPrevious cad))
  13.          (vl-catch-all-apply 'vla-Delete (list o))
  14.        )
  15.      )
  16.    )
  17.    "Hello\nWorld!"
  18. )
  19. )
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:12:13 | 显示全部楼层
 
 
这肯定会引起人们的注意
回复

使用道具 举报

76

主题

312

帖子

254

银币

后起之秀

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

铜币
390
发表于 2022-7-5 16:17:05 | 显示全部楼层
我之所以尝试这样做,是为了制作一个“弹出窗口”,即时反馈线路长度和面积等信息。
我现在必须遵循代码,它正是我想要的。
但是
使用的(acet ui状态)函数只能处理3行文本。。。。我想用更多!
  1. (defun c:MINIQUANTUMPANELAAN (/                     itemarea              itemperimeter         itemlinelength
  2.               itemarclength         itemsplinelength      itemregionperimeter   itemcircumference
  3.               itemsplineperimeter   itemplineperimeter    itemplinelength       itemtracelength
  4.               itemarclength         itemellipselength a b c d p1 p2 itemlength tarea tperim tlength
  5.              )
  6. (vl-load-com)
  7. (defun *oo_object_modification* (objreactor objectsmodified)
  8.    (setq selected_objects (vla-get-pickfirstselectionset
  9.                             (vla-get-activedocument (vlax-get-acad-object))
  10.                           )
  11.    )
  12.    (setq itemarea 0
  13.          itemperimeter 0
  14.          itemlinelength 0
  15.          itemarclength 0
  16.          itemsplinelength 0
  17.          itemregionperimeter 0
  18.          itemcircumference 0
  19.          itemsplineperimeter 0
  20.          itemplineperimeter 0
  21.          itemplinelength 0
  22.          itemtracelength 0
  23.          itemarclength 0
  24.          itemellipselength 0
  25.    )
  26.    ;AREA
  27.    (vlax-for n selected_objects
  28.      (if (vlax-property-available-p n 'area)
  29.        (if (eq (vla-get-objectname n) "AcDbRegion")
  30.          (setq itemarea (+ itemarea (vla-get-area n)))
  31.          (if (vlax-curve-isclosed n)
  32.            (setq itemarea (+ itemarea (vla-get-area n)))
  33.          )
  34.        )
  35.      )
  36.      ;;CIRCLE
  37.      (if (vlax-property-available-p n 'circumference)
  38.        (setq itemcircumference (+ itemcircumference (vla-get-circumference n)))
  39.      )
  40.      ;;SPLINE
  41.      (if (eq (vla-get-objectname n) "AcDbSpline")
  42.        (if (vlax-curve-isclosed n)
  43.          (setq itemsplineperimeter (+ itemsplineperimeter
  44.                                       (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
  45.                                    )
  46.          )
  47.          (setq itemsplinelength (+ itemsplinelength
  48.                                    (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
  49.                                 )
  50.          )
  51.        )
  52.      )
  53.      ;;REGION
  54.      (if (eq (vla-get-objectname n) "AcDbRegion")
  55.        (setq itemregionperimeter (+ itemregionperimeter (vla-get-perimeter n)))
  56.      )
  57.      ;;PLINE
  58.      (if (or (eq (vla-get-objectname n) "AcDb2dPolyline")
  59.              (eq (vla-get-objectname n) "AcDbPolyline")
  60.          )
  61.        (if (vlax-curve-isclosed n)
  62.          (setq itemplineperimeter (+ itemplineperimeter
  63.                                      (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
  64.                                   )
  65.          )
  66.          (setq itemplinelength (+ itemplinelength
  67.                                   (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
  68.                                )
  69.          )
  70.        )
  71.      )
  72.      ;;LINE
  73.      (if (eq (vla-get-objectname n) "AcDbLine")
  74.        (setq itemlinelength (+ itemlinelength (vla-get-length n)))
  75.      )
  76.      ;;ARC
  77.      (if (eq (vla-get-objectname n) "AcDbArc")
  78.        (setq itemarclength (+ itemarclength (vla-get-arclength n)))
  79.      )
  80.      (if (eq (vla-get-objectname n) "AcDbEllipse")
  81.        (setq itemellipselength (+ itemellipselength
  82.                                   (vlax-curve-getdistatparam n (vlax-curve-getendparam n))
  83.                                )
  84.        )
  85.      )
  86.      ;;TRACE
  87.      (if (eq (vla-get-objectname n) "AcDbTrace")
  88.        (progn (setq plist (vlax-safearray->list
  89.                             (vlax-variant-value (vla-get-coordinates n))
  90.                           )
  91.               )
  92.               (setq a (list (nth 0 plist) (nth 1 plist) (nth 2 plist)))
  93.               (setq b (list (nth 3 plist) (nth 4 plist) (nth 5 plist)))
  94.               (setq c (list (nth 6 plist) (nth 7 plist) (nth 8 plist)))
  95.               (setq d (list (nth 9 plist) (nth 10 plist) (nth 11 plist)))
  96.               (setq p1 (polar a (angle a b) (/ (distance a b) 2.0)))
  97.               (setq p2 (polar c (angle c d) (/ (distance c d) 2.0)))
  98.               (setq itemtracelength (+ itemtracelength (distance p1 p2)))
  99.        )
  100.      )
  101.    )
  102.    ;;_end vlax-for
  103.    (setq itemperimeter (+ itemcircumference
  104.                           itemsplineperimeter
  105.                           itemregionperimeter
  106.                           itemplineperimeter
  107.                        )
  108.    )
  109.    (setq itemlength (+ itemplinelength itemsplinelength itemlinelength itemtracelength itemarclength itemellipselength)
  110.    )
  111.    (setq tarea (rtos itemarea 2 3))
  112.    (setq HBTotal (+ itemperimeter itemlength))
  113.    (setq HBT (rtos HBTotal 2 3))
  114.    (setq tperim (rtos itemperimeter 2 )
  115.    (setq tlength (rtos itemlength 2 )
  116.    (acet-ui-status (strcat "Totaal oppervlak:                " tarea " m2" "\n"
  117.                     "Totaal lengte:                        " HBT " m1") "Mini QuantumPanel"
  118.    )
  119. )
  120. ;;OBJECT SELECTION
  121. (if oo_object_modification
  122.    (progn (vlr-remove oo_object_modification)
  123.           (setq oo_object_modification nil)
  124.    )
  125. )
  126. (setq oo_object_modification
  127.         (vlr-miscellaneous-reactor
  128.           nil
  129.           '((:vlr-pickfirstmodified . *oo_object_modification*))
  130.         )
  131. )
  132. ;;Command ended  
  133. (if oo_object_modification_action
  134.    (progn (vlr-remove oo_object_modification_action)
  135.           (setq oo_object_modification_action nil)
  136.    )
  137. )
  138. (setq oo_object_modification_action
  139.         (vlr-command-reactor nil
  140.                              '((:vlr-commandended . *oo_object_modification*)
  141. ;(:vlr-commandcancelled . *oo_object_modification_CANCEL*))
  142.                               )
  143.         )
  144. )
  145. )
  146. (defun c:MINIQUANTUMPANELUIT ()
  147. (if oo_object_modification_action
  148.    (progn (vlr-remove oo_object_modification_action)
  149.           (setq oo_object_modification_action nil)
  150.    )
  151. )
  152. (if oo_object_modification
  153.    (progn (vlr-remove oo_object_modification)
  154.           (setq oo_object_modification nil)
  155.    )
  156. )
  157. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 00:20 , Processed in 1.383419 second(s), 72 queries .

© 2020-2025 乐筑天下

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