乐筑天下

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

[编程交流] 功能不好:-4.0

[复制链接]

16

主题

70

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 09:06:55 | 显示全部楼层 |阅读模式
尊敬的各位:,
 
请帮助更正我的代码,我想选择第1层和第2层中的所有多段线,但收到错误消息:函数错误:-4.0,我的代码有什么问题吗?
 
谢谢
 
  1. (setq total (ssget "x" (list '(0 . "lwpolyline") (-4. "<and") (cons 8 "layer1")(cons 8 "layer2") <-4. "and>")(cons 410 (getvar "ctab")))))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:15:37 | 显示全部楼层
  1. (setq total (ssget "x"
  2.                   (list '(0 . "lwpolyline")
  3.                         (cons 8 "layer1,layer2")
  4.                         (cons 410 (getvar "ctab"))
  5.                   )
  6.            )
  7. )

 
塔瓦特
回复

使用道具 举报

22

主题

326

帖子

185

银币

后起之秀

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

铜币
243
发表于 2022-7-6 09:21:22 | 显示全部楼层
您的”)
 
是错误的。正确的是
(-4.“and>”)我认为你必须使用OR代替,并且^^一个对象不能在两层上。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:24:31 | 显示全部楼层
也许 吧:
 
在-4之后需要一个空格
 
  1. (-4.
  2. should be (-4 .
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:31:22 | 显示全部楼层
有两种方法可以实现这一点,即使用逻辑滤波器代码:
 
  1. (ssget "_X"
  2. (list
  3.   '(0 . "LWPOLYLINE")
  4.   '(-4 . "<OR")
  5.   '(8 . "layer1")
  6.   '(8 . "layer2")
  7.   '(-4 . "OR>")
  8.    (cons 410 (getvar "ctab"))
  9. )
  10. )
或使用通配符过滤器,例如:
 
我建议您阅读Visual LISP IDE帮助文档的所有部分:
 
AutoLISP开发者指南>使用AutoLISP语言>使用AutoLISP操作AutoCAD对象>选择集处理
 
此外,请阅读有关使用撇号将表达式标记为文字的内容。
回复

使用道具 举报

16

主题

70

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 09:38:40 | 显示全部楼层
非常感谢你所有的帮助!
回复

使用道具 举报

16

主题

70

帖子

54

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 09:41:16 | 显示全部楼层
尊敬的李:,
 
如果我使用函数vlax get property来获取层名称并使选择集的以下代码正确与否?
 
  1. ](ssget "_X"
  2. (list
  3.   '(0 . "LWPOLYLINE")
  4.   '(-4 . "<OR")
  5.   '(8 . (vlax-get-property object1 'Name))
  6.   '(8 . (vlax-get-property object2 'Name))  
  7.   '(-4 . "OR>")
  8.    (cons 410 (getvar "ctab"))
  9. )
  10. )

 
 
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:47:50 | 显示全部楼层
 
IMO-有人没有听取好的建议:
 
 
... 在任何情况下,在计算表达式时都要使用cons:
 
  1. (ssget "_X"
  2. (list
  3.   '(0 . "LWPOLYLINE")
  4.   '(-4 . "<OR")
  5.   [color="red"]([/color][color="blue"]cons [/color]8 (vlax-get-property object1 'Layer)[color="red"])[/color]
  6.   [color="red"]([/color][color="blue"]cons[/color] 8 (vlax-get-property object2 'Layer)[color="red"])[/color]  
  7.   '(-4 . "OR>")
  8.   (cons 410 (getvar "ctab"))
  9. )
  10. )

 
HTH公司
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:55:40 | 显示全部楼层
LWpolyline可以具有名称或图层名称的特性吗?
 
以及如何过滤层名称(vlax get property…..在使用变量保持对象的选择集以获取它们的层名称之前?
 
我的想法是对的还是被误解了?
 
谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:59:14 | 显示全部楼层
 
我*相信*实体对象具有“层”属性,而层对象具有“名称”属性。
 
 
老实说,我也需要更多关于OP意图的信息来回答这个问题。
 
但是,有一种方法可以提供ssget过滤器对象信息:
 
  1. 7
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:28 , Processed in 0.385472 second(s), 72 queries .

© 2020-2025 乐筑天下

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