乐筑天下

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

[编程交流] OSNAP函数

[复制链接]

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 06:53:57 | 显示全部楼层 |阅读模式
你好,
 
如何找出哪些模式有效?
 
 
  1. (setq pp ([color=blue]osnap[/color] p [color=magenta]"_end,_mid,_cen,_nod[/color][color=magenta]"[/color]) )

 
4种模式中哪一种对pp有影响?
 
提前谢谢。
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 06:58:45 | 显示全部楼层
请参阅OSMODE的值。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:03:49 | 显示全部楼层
GP_,
 
OSMODE变量的值是一个整数,但它们的反应是什么?
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 07:09:56 | 显示全部楼层
OSMODE是GP_给出的所有活动捕捉的总和
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:11:18 | 显示全部楼层
 
点捕捉到的对象捕捉模式无法从组合了多种模式的单个osnap表达式中确定,因为osnap函数仅返回捕捉的点坐标或零,而不返回任何补充信息。
 
您需要分别测试每个模式,例如:
  1. (vl-some '(lambda ( m ) (if (setq pp (osnap p m)) m) '("_end" "_mid" "_cen" "_nod")))
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:17:45 | 显示全部楼层
谢谢李,
 
你的想法更简洁。
 
我在想这样的事情:
 
  1. (setq [color=red]litos[/color] ([color=blue]list [/color][color=magenta]"_end,_mid,_cen,_nod[/color][color=magenta]"[/color])) ; [color=red]has a variable content[/color]
  2.    (setq llitos (length litos)  i -1  op nil) ;_ end of setq
  3.    (while (< (setq i (1+ i)) llitos)
  4.     (setq el (nth i litos)) ;_ end of setq
  5.     (if (setq op (osnap p el)) (setq i llitos)) ;_ end of if
  6.    ) ;_ end of wh <

 
但是当litos列表呈现出这种形式时,我无法获得ENDP,
或者,如果列表中有直线、象限和圆心,则无法获得圆心等的OSMODE。
 
本主题是以下内容的继续:
 
http://www.cadtutor.net/forum/showthread.php?77110-vla移动和OSMODE问题。
 
因为我必须重新发明OSMODE标志。
 
如何将字符串显示为鼠标光标附近的注释(例如OSMODE值)?
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:23:54 | 显示全部楼层
打字错误:
 
  1. (vl-some '(lambda ( m ) (if (setq pp (osnap p m)) m)[color=red])[/color] '("_end" "_mid" "_cen" "_nod"))

 
在我的ACAD中,当选取点p作为圆的象限时,李的示例返回“u cen”witch is true(圆没有结束、中间和点头捕捉)
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:25:23 | 显示全部楼层
 
应及时填写Litos清单:
 
  1. (setq [color=red]litos[/color] ([color=blue]list [/color][color=magenta]"_end,_mid,_cen,_qua,_nod[/color][color=magenta]"[/color]))
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:30:53 | 显示全部楼层
  1. (vl-remove-if-not '(lambda ( m ) (if (setq pp (osnap p m)) m)) '("_end" "_mid" "_cen" "_nod" "_qua"))
  2. =>("_cen" "_qua")
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 07:33:48 | 显示全部楼层
1.好的,但我想知道到底是哪一个导致了OSMODE点?
 
2.如果我想在“cen”上获得OSMODE,我不能,因为“qua”和最后一个OSMODE在它上面。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 12:18 , Processed in 0.404476 second(s), 83 queries .

© 2020-2025 乐筑天下

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