乐筑天下

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

[编程交流] 辩论和子程序

[复制链接]

56

主题

259

帖子

213

银币

后起之秀

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

铜币
270
发表于 2022-7-5 22:36:17 | 显示全部楼层 |阅读模式
现在我有了这个代码,但它不起作用。
 
  1. (defun _Modification (/ obj atts x lt Nombloc)
  2. (initget 1 "P T D V")
  3. (setq Mod (getkword "\n Quel élément voulez vous modifier? [Projet/Titre/Date/Verificateur] : "))
  4. (if (= Mod "P")
  5.      (progn
  6. (setq TProjet (strcase (getstring T "\n Quel est le nouveau nom du projet? ")))
  7. (setq TagPro "PROJET")
  8. (_getall->Layout (if (= Tag (vla-get-tagstring x))
  9.                (vla-put-textstring x Text)
  10.     )
  11. )
  12.      )
  13. )

 
  1. (defun _getall->Layout (Tag Text / adoc nombloc)
  2. (setq Nombloc '("LU CARTOUCHE"                  "Cartouche Aliance"
  3.         "LC CARTOUCHE CHUM"          "LC CARTOUCHE CHUM 2"
  4.         "LC CARTOUCHE"                  "LU CARTOUCHE PANNEAU"
  5.         "CARTOUCHE LU"                  "LC CARTOUCHE 2"
  6.        )
  7. )
  8. (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  9. (vlax-for lt (vla-get-layouts adoc)
  10.    (vlax-for obj (vla-get-block lt)
  11.      (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
  12.        (member (vla-get-effectivename obj) Nombloc)
  13.        (= :vlax-true (vla-get-hasattributes obj))
  14.   )
  15. (progn
  16.   (setq atts (vlax-invoke obj 'getattributes))
  17.   (foreach x atts
  18.     (if        (= Tag (vla-get-tagstring x))
  19.       (vla-put-textstring x Text)
  20.     )
  21.   )
  22. )
  23.      )
  24.    )
  25. )
  26. )

 
是我出错了
 
  1. ; error: bad argument type: VLA-OBJECT nil

 
我不明白为什么。。因为obj是vla对象。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 00:15:07 | 显示全部楼层
VLA-OBJECT-布局不将VLA-OBJECT-块作为子对象。。。
 
尝试将最后一段改为:
 
  1. (vlax-for obj (vla-get-blocks adoc)
  2. (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
  3.             (member (vla-get-effectivename obj) Nombloc)
  4.             (= :vlax-true (vla-get-hasattributes obj))
  5.      )
  6.    (progn      
  7.      (setq atts (vlax-invoke obj 'getattributes))
  8.      (foreach x atts         
  9.        (if    (= Tag (vla-get-tagstring x))
  10.          (vla-put-textstring x Text)
  11.        )
  12.      )
  13.    )
  14. )
  15. )
HTH
 
[编辑]:刚刚选中-你可能想到了VLA-OBJECT-ActiveLayout,所以…:
  1. (vlax-for lt (vla-get-[color=red]activelayout[/color] adoc)
  2. (vlax-for obj (vla-get-block lt)
  3.    (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
  4.               (member (vla-get-effectivename obj) Nombloc)
  5.               (= :vlax-true (vla-get-hasattributes obj))
  6.        )
  7.      (progn      
  8.        (setq atts (vlax-invoke obj 'getattributes))
  9.        (foreach x atts         
  10.          (if    (= Tag (vla-get-tagstring x))
  11.            (vla-put-textstring x Text)
  12.          )
  13.        )
  14.      )
  15.    )
  16. )
  17. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:07 , Processed in 0.453675 second(s), 56 queries .

© 2020-2025 乐筑天下

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