乐筑天下

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

[编程交流] 块属性

[复制链接]

30

主题

96

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 09:04:55 | 显示全部楼层 |阅读模式
大家好,
我真的对下面的内容感到困惑。
我从网上的某个地方得到了这个代码。这将遍历属性并提取标记为“ROOM\u NAME”的属性
 
  1. (while
  2.   (not
  3.      (eq "SEQEND" (dxf 0 (setq ent (entnext ent))))
  4.   )
  5.   (if
  6.      (= (dxf 2 ent) "ROOM_NAME")
  7.          (setq RmName (dxf 1 ent))
  8.      );If
  9. );While

 
好现在
[列表=1]
  • while在这里检查的条件是什么?
  • 那是什么“Sequend”?
  • SEQEND后面以“0”(零)作为参数的“dxf”函数是什么?
    [/列表]
     
    有人能帮忙吗?
  • 回复

    使用道具 举报

    pBe

    32

    主题

    2722

    帖子

    2666

    银币

    后起之秀

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

    铜币
    211
    发表于 2022-7-6 09:12:13 | 显示全部楼层
    在属性块上第一次运行时
    (dxf 0(setq ent(entnext ent)),这也意味着
    (cdr(assoc 0(entget(setq ent(entnext ent)Ю)Ю)Ю)
     
    结果将是“ATTRIB”,其中要求结果等于“sequend”的条件,在这种情况下为零(NOT=NOT True)
     
    在随后的运行中,最终它将点击“sequend”,使语句成为真实
    (NOT=NOT True)=True,使其为零,然后终止条件
     
     
    序列结束-->
    对于属性:具有属性的插入实体的属性实体(属性类型名称)的结尾
    对于多段线:标记多段线的顶点结束(顶点类型名称)
     
    如果我没弄错的话
    1. (defun dxf (num ent)
    2.            (cdr (assoc num  (entget ent)))
    3.              )
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 09:21:05 | 显示全部楼层
    这也可能有助于:
     
    http://www.cadtutor.net/forum/showthread.php?48577-获取特定属性的值&p=330778#post330778
    回复

    使用道具 举报

    30

    主题

    96

    帖子

    66

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    150
    发表于 2022-7-6 09:25:37 | 显示全部楼层
    非常感谢pBe。。。!!
    回复

    使用道具 举报

    30

    主题

    96

    帖子

    66

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    150
    发表于 2022-7-6 09:27:35 | 显示全部楼层
     
    我从上面的链接得到这个;
    1. (if
    2. (and
    3.    (setq bEnt (car (entsel "\nSelect Block: ")))
    4.    (eq "INSERT" (cdr (assoc 0 (entget bEnt))))
    5.    (= 1 (cdr (assoc 66 (entget bEnt))))
    6. )

     
    我对“和”有点困惑。Autocad help对此没有给出很好的解释。你能告诉我“和”是怎么工作的吗?
    回复

    使用道具 举报

    30

    主题

    96

    帖子

    66

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    150
    发表于 2022-7-6 09:36:06 | 显示全部楼层
    是的。。。你有一个很好的资源在那里的链接,你分享了什么。。。非常棒的帖子,一步一步地进行全面的解释。谢谢李。。。。!!
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 09:41:16 | 显示全部楼层
    AND函数将继续计算传递给它的表达式,直到其中一个:表达式返回nil,在这种情况下,AND返回nil;或者,没有更多要计算的表达式,在这种情况下,AND返回T,因为所有计算的表达式都必须返回非nil值。
     
    通过这种方式,AND函数返回正在计算的表达式的逻辑AND,即:
     
    1. <expr1> AND <expr2> AND <expr3> ... AND ... <exprN>

     
    如果所有表达式,…,则AND函数将仅返回T,。。。,返回了一个非nil值[请注意,表达式不需要显式返回t,而是任何非nil的值。因此,1.2的返回值为非nil,或“ABC”]。
     
    其与IF语句的结合使用可按以下方式阅读:
     
    1. IF <expr1> AND <expr2> AND <expr3> ... AND ... <exprN>
    2. THEN
    3. ELSE

     
    i、 e.所有表达式,。。。,。必须为AND函数返回一个非nil值,以返回T,从而返回要计算的IF语句的“THEN”表达式。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 09:43:43 | 显示全部楼层
     
    谢谢harilalmn,很高兴你能理解我的解释
    回复

    使用道具 举报

    30

    主题

    96

    帖子

    66

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    150
    发表于 2022-7-6 09:49:40 | 显示全部楼层
     
    李,你真是太好了。。。!!现在我对事情有了很好的了解。。。我开始学习Lisp程序的老鼠在网上挑选,只是在基本水平。事实上,我很想通过这种方式从你那里学到更多。你对每个帖子的回复似乎都很容易理解。非常感谢您的时间和努力。。我亲爱的朋友,我更想烦你。。。。!!
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 09:58:08 | 显示全部楼层
     
    谢谢harilalmn
     
    我尽我所能组织我的帖子,尽可能清楚地解释事情(如果我有时间的话),所以我很高兴我的解释能对你的学习有益。
     
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-7 08:10 , Processed in 0.797667 second(s), 79 queries .

    © 2020-2025 乐筑天下

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