乐筑天下

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

[编程交流] 缩放面积和长度

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:43:19 | 显示全部楼层
修改并不太多:
 
  1. (defun c:test ( / doc ent format obj pt ) (vl-load-com)
  2.    (setq format "%lu2%ct8[[color=red]0.01[/color]]") ;; Field Formatting Code
  3.    (while
  4.        (progn (setvar 'ERRNO 0) (setq ent (car (entsel)))
  5.            (cond
  6.                (   (= 7 (getvar 'ERRNO))
  7.                    (princ "\nMissed, try again.")
  8.                )
  9.                (   (eq 'ENAME (type ent))
  10.                    (if
  11.                        (and
  12.                            (vlax-property-available-p (setq obj (vlax-ename->vla-object ent)) '[color=red]length[/color])
  13.                            (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-get-[color=red]length[/color] (list obj))))
  14.                        )
  15.                        (if (setq pt (getpoint "\nSpecify Point for Field: "))
  16.                            (vla-addtext
  17.                                (vlax-get-property (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  18.                                    (if (= 1 (getvar 'CVPORT))
  19.                                        'Paperspace
  20.                                        'Modelspace
  21.                                    )
  22.                                )
  23.                                (strcat
  24.                                    "%<\\AcObjProp Object(%<\\_ObjId "
  25.                                    (if
  26.                                        (and
  27.                                            (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
  28.                                            (vlax-method-applicable-p (vla-get-utility doc) 'getobjectidstring)
  29.                                        )
  30.                                        (vla-getobjectidstring (vla-get-utility doc) obj :vlax-false)
  31.                                        (itoa (vla-get-objectid obj))
  32.                                    )
  33.                                    ">%).[color=red]Length[/color] \\f "" format "">%"
  34.                                )
  35.                                (vlax-3D-point (trans pt 1 0))
  36.                                (getvar 'TEXTSIZE)
  37.                            )
  38.                        )
  39.                        (princ "\nInvalid Object.")
  40.                    )
  41.                )
  42.            )
  43.        )
  44.    )
  45.    (princ)
  46. )

 
也许更好的方法是创建一个子函数,该子函数需要属性和字段格式作为参数,然后从两个程序中调用该子函数:
 
  1. 4

 
在这里,您可以为面积字段键入“afield”,为长度字段键入“lfield”。注意,我是如何通过这些命令为子函数提供参数的。
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:47:06 | 显示全部楼层
是的,最后的代码是完美的。这将在下一个项目中对我有很大帮助。再次感谢你。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:01 , Processed in 0.322027 second(s), 54 queries .

© 2020-2025 乐筑天下

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