乐筑天下

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

[编程交流] 使用块属性值

[复制链接]

6

主题

13

帖子

7

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 17:12:02 | 显示全部楼层 |阅读模式
晚班绅士,
早在2006年,我就在搜索allot of threads,现在我有点挣扎。此外,我一生中从未出现过Lisp程序的问题,你可以理解,我有点忘记了我要问什么,或者我是否应该为此付费(在阿姆斯特丹有过类似的经历)
我发现并使用了PMSFptwtx lisp,效果非常好,但当我试图在我们的建筑师最近的一张图纸上使用它时,我遇到了麻烦。我希望使用的级别都作为变量值嵌入到块中,我假设他/她会随着属性编辑器而改变。分解块只会显示文本“LEVEL”,这在PMSFptwtx lisp中没有用处。
是否可以提取变量值,然后在此块插入点处创建一个三维点?
非常感谢你的帮助
斯图
回复

使用道具 举报

6

主题

13

帖子

7

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 17:37:34 | 显示全部楼层
看不出这是我第一次,你能吗?
运行ACAD2009。
回复

使用道具 举报

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 17:55:04 | 显示全部楼层
这是块的修改版本…'-)
  1. ;;;OriginalAuthor: Pedro Miguel da Silva Ferreira    Email:pedro_ferreira@netcabo.pt
  2. ;;;Web page: http:pwp.netcabo.pt/pedro_ferreira
  3. ;;;Location: Portugal, Lisboa
  4. ;;;Modified by Wizman 06NOV08
  5. ;;;***This version works for Blocks having attribute***
  6. (defun c:PMSFptwtxt (/
  7.             *modelspace*
  8.             aup_ini
  9.             cmd_ini
  10.             counter
  11.             diz_ini
  12.             edg_ini
  13.             fla_ini
  14.             letxt
  15.             lun_ini
  16.             ort_ini
  17.             osm_ini
  18.             plt_ini
  19.             txt
  20.             txtent
  21.             txtx
  22.             txty
  23.             txtz
  24.             uni_ini
  25.             xyz
  26.            )
  27.    (vl-load-com)
  28.    (defun W1 (w1_ent / blk_tag enam eobj)
  29.    (vl-load-com)
  30.    (setq enam w1_ent)
  31.    (setq eobj (vlax-ename->vla-object enam))
  32.    (setq blk_tag w1_tagname)
  33.    (setq txtz nil)
  34.    (if (= (vla-get-hasattributes eobj) :vlax-true)
  35.        (progn
  36.        (foreach n (vlax-safearray->list
  37.                   (variant-value
  38.                   (vla-getattributes eobj)
  39.                   ) ;_ end_variant-value
  40.               ) ;_ end_vlax-safearray->list
  41.            (if    (= (strcase (vla-get-tagstring n))
  42.               (strcase blk_tag)
  43.            ) ;_ end_=
  44.            (if (numberp (read (vla-get-TextString n)))
  45.                (setq txtz (atof (vla-get-TextString n)))
  46.            ) ;_ end_if
  47.            ) ;_ end_if
  48.        ) ;_ end_foreach
  49.        ) ;_ end_progn
  50.    ) ;_ end_if
  51.    ) ;_ end_defun
  52. ;;;
  53. ;;;-------------------;;;
  54.    (defun inivar ()
  55.    (setq cmd_ini (getvar "cmdecho")
  56.          fla_ini (getvar "flatland")
  57.          osm_ini (getvar "osmode")
  58.          ort_ini (getvar "orthomode")
  59.          plt_ini (getvar "plinetype")
  60.          aup_ini (getvar "auprec")
  61.          uni_ini (getvar "unitmode")
  62.          lun_ini (getvar "lunits")
  63.          diz_ini (getvar "dimzin")
  64.          edg_ini (getvar "edgemode")
  65.    ) ;_ end_setq
  66.    (setvar "CMDECHO" 0)
  67.    (setvar "FLATLAND" 0)
  68.    (setvar "OSMODE" 0)
  69.    (setvar "ORTHOMODE" 0)
  70.    (setvar "PLINETYPE" 2)
  71.    (setvar "AUPREC" 0)
  72.    (setvar "UNITMODE" 1)
  73.    (setvar "LUNITS" 2)
  74.    (setvar "DIMZIN" 0)
  75.    (setvar "EDGEMODE" 1)
  76.    ) ;_ end_defun
  77. ;;;
  78. ;;;Convert a list of reals into strings
  79.    (defun linhaxy (px)
  80.    (vl-princ-to-string px)
  81.    ) ;_ end_defun
  82.    (inivar)
  83. ;;;-------------------;;;
  84.    (defun recvar ()
  85.    (setvar "CMDECHO" cmd_ini)
  86.    (setvar "FLATLAND" fla_ini)
  87.    (setvar "OSMODE" osm_ini)
  88.    (setvar "ORTHOMODE" ort_ini)
  89.    (setvar "PLINETYPE" plt_ini)
  90.    (setvar "AUPREC" aup_ini)
  91.    (setvar "UNITMODE" uni_ini)
  92.    (setvar "LUNITS" lun_ini)
  93.    (setvar "DIMZIN" diz_ini)
  94.    (setvar "EDGEMODE" edg_ini)
  95.    ) ;_ end_defun
  96.    (command "layer"
  97.         "make"
  98.         "PMSFptwtxt-3dpoints"
  99.         "COLOR"
  100.         "1"
  101.         ""
  102.         ""
  103.    ) ;_ end_command
  104.    (setq w1_tagname
  105.         (getstring
  106.         "\n>>>...Enter Tag name of attribute...>>>: "
  107.         ) ;_ end_getstring
  108.    ) ;_ end_setq
  109.    (setq *modelspace*
  110.         (vla-get-modelspace
  111.         (vla-get-activedocument (vlax-get-acad-object))
  112.         ) ;_ end_vla-get-modelspace
  113.    ) ;_ end_setq
  114.    (setq txt (ssget '((0 . "INSERT"))))
  115.    (setq letxt (sslength txt))
  116.    (setq counter 0)
  117.    (while (< counter letxt)
  118.    (progn
  119.        (w1 (ssname txt counter))
  120.        (setq txtent (entget (ssname txt counter)))
  121.        (setq txtx (car (cdr (assoc 10 txtent))))
  122.        (setq txty (cadr (cdr (assoc 10 txtent))))
  123.        (setq xyz (list txtx txty txtz))
  124.        (command "layer" "set" "PMSFptwtxt-3dpoints" "")
  125.        (command "point" xyz)
  126.    ) ;_ end_progn
  127.    (setq counter (1+ counter))
  128.    ) ;_ end_while
  129. ;;;
  130.    (recvar)
  131. ;;;
  132.    (command "layer" "set" "0" "")
  133.    (princ)
  134. ) ;_ end_defun
  135. (alert
  136.    "Type PMSFptwtxt and press enter to run\n\n            *Author: Pedro Ferreira*"
  137. ) ;_ end_alert
回复

使用道具 举报

6

主题

13

帖子

7

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 18:16:13 | 显示全部楼层
令人惊叹的你不知道你会让我看起来有多好
谢谢Wizman。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:46 , Processed in 0.456769 second(s), 60 queries .

© 2020-2025 乐筑天下

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