明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 398|回复: 6

删除动态块下的可见性状态,加载成功,执行失败,求助

[复制链接]
发表于 2024-11-21 13:58:21 | 显示全部楼层 |阅读模式
(defun c:sckjx ()
  (defun delete-blocks-with-visibility (block-name visibility-states)
    (setq ss (ssget "X" (list (cons 0 "INSERT") (cons 2 block-name))))
    (if ss
      (progn
        (setq success nil)
        (setq count 0)
        (repeat (sslength ss)
          (setq ent (ssname ss count))
          (setq ent-data (entget ent))
          (setq visibility-state (cdr (assoc 290 ent-data)))
          (if (member visibility-state visibility-states)
            (progn
              (command "_erase" ent "")
              (setq ss (ssdel ent ss))
              (setq success T)
            )
          )
          (setq count (1+ count))
        )
        success
      )
      nil
    )
  )

  (defun main ()
    (setq block-name "0-直通阀")
    (setq visibility-states '(
      "气动常闭隔膜阀(带限位)" "气动常开隔膜阀(带限位)" "气动常开隔膜阀(带控制)" "气动常开隔膜阀(带关反馈)" "气动常开隔膜阀(带开反馈)" "气动常开隔膜阀(带双反馈)"
      "气动常闭蝶阀(带限位)" "气动常闭蝶阀(带控制)" "气动常闭蝶阀(带开反馈)" "气动常闭蝶阀(带关反馈)" "气动常闭蝶阀(带双反馈)" "气动常开蝶阀(带限位)" "气动常开蝶阀(带控制)" "气动常开蝶阀(带开反馈)" "气动常开蝶阀(带关反馈)" "气动常开蝶阀(带双反馈)"
      "气动常闭球阀(带限位)" "气动常闭球阀(带控制)" "气动常闭球阀(带开反馈)" "气动常闭球阀(带关反馈)" "气动常闭球阀(带双反馈)" "气动常开球阀(带限位)" "气动常开球阀(带控制)" "气动常开球阀(带开反馈)" "气动常开球阀(带关反馈)" "气动常开球阀(带双反馈)"
      "手动柱塞阀" "气动角座阀(带限位)" "气动角座阀(带开反馈)" "气动角座阀(带关反馈)" "气动角座阀(带双反馈)" "αβ阀" "倒吊桶式疏水阀" "热动力式疏水阀"
      "电动常闭隔膜阀" "电动常开隔膜阀" "电动常闭蝶阀" "电动常开蝶阀" "电动常闭球阀" "电动常开球阀" "电动角座阀" "常闭电磁阀" "常开电磁阀" "RTP阀" "SART系统"
    ))

    (if (delete-blocks-with-visibility block-name visibility-states)
      (princ "\n操作成功!")
      (princ "\n操作失败!")
    )
  )

  (main)
  (princ)
)
=========================================================================================
哪里错误了?

回复

使用道具 举报

 楼主| 发表于 2024-11-21 14:12:58 | 显示全部楼层
函数用错了么?好像错在没有找到块,在找可见性状态时。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-21 14:24:56 | 显示全部楼层
发现我把动态块换个名字,试着删除动态块,函数也找不到,奇怪
回复 支持 反对

使用道具 举报

发表于 2024-11-21 16:11:39 | 显示全部楼层
不要发错地方了,先点进去lisp版本再发帖
回复 支持 反对

使用道具 举报

发表于 2024-11-21 16:16:15 | 显示全部楼层
动态块的可见性状态能删除?组码290是什么鬼?你这代码AI写的吧 删可见性 炸了重做或者直接再做一次块就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-21 21:38:57 来自手机 | 显示全部楼层
我不会,所以不懂,哪位大神可以帮忙写一个吗?我出钱吧!这实在没帮忙了,私聊发我联系方式我加您!我需要用到!
回复 支持 反对

使用道具 举报

发表于 2024-11-23 10:53:24 | 显示全部楼层
(setq ss (ssget "X" (list (cons 0 "INSERT") (cons 2 block-name)))) 这个错了哈。这样是选不到的。block-name这个是变量吧,改(setq ss (ssget "X" (list ‘(cons 0 "INSERT") (cons 2 block-name))))  这样应该可以选到SS
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-26 22:55 , Processed in 0.160972 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表