乐筑天下

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

[编程交流] entsel过滤器

[复制链接]

55

主题

243

帖子

188

银币

后起之秀

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

铜币
275
发表于 2022-7-6 12:12:01 | 显示全部楼层 |阅读模式
你好
我想使用:
 
  1. (setq  enaPline (car (entsel "\nSelect paperspace Viewport  : ")))
  2. (setq VpScaleRatio(vla-get-customscale (vlax-ename->vla-object enaPline)))

然而,为了找到视口的自定义比例,如果我创建视口,我不能使用上面的代码
“mview”然后“object”(换句话说,从pline生成视口)
我认为这是因为视口也是“多段线”和“视口”。
所以我想解决这个问题的方法是使用entsel制作一个过滤器,
因此,仅选择视口而不是多段线。
 
有没有一种方法可以使用entsel制作一个过滤器(仅用于“视口”)呢?
 
谢谢
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 12:16:49 | 显示全部楼层
某种程度上。仍然有两个实体,但它们有点“联系”在一起。通过使用LIST命令可以看到这一点。 
 
你可以这样做。
 
  1. (if (setq ss (ssget '((0 . "VIEWPORT"))))
  2. (setq obj (ssname ss 0))
  3. (setq obj nil)
  4. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:23:04 | 显示全部楼层
您应该查看我的AT:Entsel子例程。它提供了ssget中dxf过滤的几乎所有功能,可以忽略锁定层,转换为vla对象,选择主对象或嵌套对象,并接受关键字。
 
链接:http://www.cadtutor.net/forum/showpost.php?p=271389&postcount=26
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 12:27:34 | 显示全部楼层
 
这有什么帮助?
我试着这样使用它:
  1. (AT:Entsel nil nil '("LV" (0 . "VIEWPORT")) nil)

...我一直在说“不,继续努力!”
 
谢谢
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:31:28 | 显示全部楼层
它是锁定的还是多段线(剪裁的视口)?对我来说很好:
 
  1. Command: (AT:Entsel nil nil '("LV" (0 . "VIEWPORT")) nil)
  2. Select object: #<VLA-OBJECT IAcadPViewport2 21612944>

 
我一直在使用这个程序,我无法想象为什么它不适合你。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:36:41 | 显示全部楼层
 
还有一种方法
 
  1. (while (not (and (setq entVport (entsel "\nSelect paperspace Viewport  : "))
  2.          (eq "VIEWPORT" (cdr (assoc 0 (entget (setq  enaPline (car entVport))))))))
  3.          (princ "\n\t\t>>>\tSelected is not a Viewport, try again\t<<<"))
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 12:40:47 | 显示全部楼层
在:Entsel:
 
  1. (and (setq ent (car (entsel)))
  2.     (setq vp (cdr (assoc 330 (entget ent))))
  3.     )

 
 
不完美,我仍然会检查assoc 330是否匹配(0。“视口”)
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:44:27 | 显示全部楼层
尤里卡-我现在有了非常感谢
 
 
  1. (and (setq ent (car (at:entsel nil nil '((0 . "LWPOLYLINE")(102 . "{ACAD_REACTORS")) nil)))
  2.     (setq vp (cdr (assoc 330 (entget ent))))
  3.     )
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 12:48:56 | 显示全部楼层
 
 

 
  1. (if (setq ss (ssget ":s" '((0 . "viewport"))))
  2. (setq enname (ssname ss 0))
  3. (setq enname nil)
  4. )
  5. (setq VptObj (vlax-ename->vla-object enname ))
  6. (setq VpScaleRatio(vla-get-customscale VptObj))

 
 
顺便说一句,如果您的对象不是视口,那么在尝试将nil转换为vla对象时会出错。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:53:33 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:26 , Processed in 0.729496 second(s), 83 queries .

© 2020-2025 乐筑天下

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