乐筑天下

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

[编程交流] *帮助*尝试匹配块s

[复制链接]

56

主题

175

帖子

51

银币

后起之秀

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

铜币
352
发表于 2022-7-5 15:45:58 | 显示全部楼层 |阅读模式
早上好,
 
我试着将左边的方块(2500-RBC)与右边的方块(测试)与x轴和y轴相匹配。我试过火柴块。lsp没有运气。我试过换房子,但运气不好。有人能帮我在不破坏方块(2500-RBC)的情况下进行x轴和y轴匹配吗?
 
提前感谢您,
大卫
测试。图纸
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 15:53:20 | 显示全部楼层
你好
 
像这样的?
  1. (defun c:matchxy (/ en1 en2)
  2. (and (setq en1
  3.              (car
  4.                (entsel
  5.                  "\nSelect 1st block to move to next block's X & Y :"
  6.                )
  7.              )
  8.       )
  9.       (or (= (cdr (assoc 0 (setq en1 (entget en1)))) "INSERT")
  10.           (alert "Invlaid object !")
  11.       )
  12.       (setq en2 (car (entsel "\nSelect 2nd block :")))
  13.       (or (= (cdr (assoc 0 (setq en2 (entget en2)))) "INSERT")
  14.           (alert "Invlaid object !")
  15.       )
  16.       (entmod (subst (assoc 10 en2) (assoc 10 en1) en1))
  17. )
  18. (princ)
  19. )
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:56:06 | 显示全部楼层
你是指尺寸,还是像塔瓦特那样匹配的插入点?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:01:57 | 显示全部楼层
但是,如果您在更改XYZ的比例之后,那么只需将下面一行代码替换为我之前发布的上面发布的代码中的一行。
  1. (entmod (append en1 (list (assoc 41 en2) (assoc 42 en2) (assoc 43 en2))))
回复

使用道具 举报

56

主题

175

帖子

51

银币

后起之秀

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

铜币
352
发表于 2022-7-5 16:07:58 | 显示全部楼层
我指的是要匹配的尺寸
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:11:15 | 显示全部楼层
使用该测试图形,您需要获取边界框的大小,然后应用。这两个区块在同一比例下大小不同。
回复

使用道具 举报

56

主题

175

帖子

51

银币

后起之秀

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

铜币
352
发表于 2022-7-5 16:13:52 | 显示全部楼层
Thawart,我尝试了你附加的代码
 
(定义c:matchxy(/en1 en2)
(和(setq en1
(汽车
(entsel)
“\n选择第一个块移动到下一个块的X和Y:”
)
)
)
(或(=(cdr(assoc 0(setq en1(entget en1)))“插入”)
(警报“Invlaed object!”)
)
(setq en2(car(entsel“\n选择第二块:”))
(或(=(cdr(assoc 0(setq en2(entget en2)))“插入”)
(警报“Invlaed object!”)
)
(entmod(追加en1(列表(assoc 41 en2)(assoc 42 en2)(assoc 43 en2)))
)
(普林斯)
)
 
但是,当我单击第一个块(较大的块)以匹配较小的块时,它变大了
回复

使用道具 举报

56

主题

175

帖子

51

银币

后起之秀

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

铜币
352
发表于 2022-7-5 16:20:15 | 显示全部楼层
ronjonp,你能给我解释一下怎么做(抓住边界框的侧面并申请)吗?这对我来说是新鲜事。非常感谢。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 16:23:41 | 显示全部楼层
你需要一个代码,还是只需要那个DWG。。。如果是第二个,我会附上给你。。。将RS-2500块重置为比例1,1,1,然后根据测试块的尺寸重新计算每个X,Y比例因子是什么,这相当简单。。。
测试。图纸
回复

使用道具 举报

56

主题

175

帖子

51

银币

后起之秀

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

铜币
352
发表于 2022-7-5 16:30:44 | 显示全部楼层
marko_ribar,谢谢!如果你有这样的代码,我很乐意在其他需要扩展的代码上使用它。谢谢你,谢谢所有回复的人。我真的很感激!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 00:07 , Processed in 0.416950 second(s), 72 queries .

© 2020-2025 乐筑天下

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