乐筑天下

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

[编程交流] 如何以编程方式显示/h

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:38:16 | 显示全部楼层 |阅读模式
尊敬的各位
 
我试图编写一个lisp函数,允许我使用其名称作为选择器来显示/隐藏块。
 
我在网上找到了一些例子,但所有的例子都需要用户手动选择对象,我想使用simpy块的名称来选择它,而不是在窗口中选择什么。
 
我尝试了以下代码:
  1. (defun c:test_show ()
  2.    (setq selezione (ssget "X" '((2 . "test1"))))
  3.    (redraw selezione 1)
  4. (princ))
  5. (defun c:test_hide ()
  6.    (setq selezione (ssget "X" '((2 . "test1"))))
  7.    (redraw selezione 2)
  8. (princ))

 
但是,当我在F2控制台中键入“test\u show”时,我得到:
 
  1. Command: test_show
  2. ; error: argument type error: lentityp <Selection set: 80>

 
我已经看到redraw函数需要一个ENAME参数,所以我的问题可能是如何获得具有其名称的块的ENAME,有人可以帮我吗?
 
提前感谢
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 08:43:26 | 显示全部楼层
尝试:
 
  1. (tblobjname "block" "bname")

 
键入而不是“bname”-您的“test1”块。。。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 08:48:09 | 显示全部楼层
您需要单步通过选取集。该过程有许多变体:
 
  1. (and (setq ss (ssget "X" '((2 . "TEST1")))
  2.     (while (setq en (ssname ss 0))
  3.            (redraw en 2)
  4.            (ssdel en ss)))

 
HTH-David
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:55:51 | 显示全部楼层
以下是我可能如何完成任务:
 
两个命令(“test\u hide”和“test\u show”)都调用定义的函数“RedrawSelectionSet”,这需要一个用于redraw函数的SelectionSet参数(ss)和整数参数(mode)。
 
然后,“重画选择集”将逐步通过提供的选择集并重画每个实体。
 
我还将SelectionSet过滤器限制为活动空间(模型/布局/通过VPort)中的块(插入)。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:58:04 | 显示全部楼层
为了好玩。。。
 
  1. (defun c:HIDE_TEST1 ( / ss i e)
  2. (if (and (setq ss (ssget "_X" '((0 . "INSERT") (2 . "TEST1"))))
  3.           (setq i -1))
  4.    (while (setq e (ssname ss (setq i (1+ i)))) (redraw e 2))
  5.    (prompt "\n** Block not found ** "))
  6. (princ))
  7. (defun c:SHOW_TEST1 ( / ss i e)
  8. (if (and (setq ss (ssget "_X" '((0 . "INSERT") (2 . "TEST1"))))
  9.           (setq i -1))
  10.    (while (setq e (ssname ss (setq i (1+ i)))) (redraw e 1))
  11.    (prompt "\n** Block not found ** "))
  12. (princ))
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:04:46 | 显示全部楼层
谢谢!
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:06:36 | 显示全部楼层
@李-作为一名摄政者,“迫使[隐藏的]实体在其正常庄园中重新显示”是否需要过滤器的410组件?
 
诚然,只修改驻留在活动选项卡上的实体更有效;我只是想知道是否还有另一个方面我没有意识到。
 
干杯
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:11:32 | 显示全部楼层
 
我之所以包括它是因为你说的原因——我认为没有理由处理(可能是100个)不在当前布局/空间中的实体。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:18:38 | 显示全部楼层
 
别担心,伙计;我感谢您的澄清。
 
由于我们的工作流程,我没有考虑到这种情况——我们只在模型空间中工作——纸张空间被降级到标题栏、视口等。。
 
再一次,非常简洁高效的代码,我的朋友。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:22:56 | 显示全部楼层
 
x2
 
http://forums.augi.com/showpost.php?p=1150829&postcount=13
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 09:02 , Processed in 0.622463 second(s), 72 queries .

© 2020-2025 乐筑天下

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