乐筑天下

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

[编程交流] 在多个多边形上对齐块

[复制链接]

13

主题

53

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
71
发表于 2022-7-5 16:49:07 | 显示全部楼层 |阅读模式
大家好,
 
有什么方法可以一次性在不同长度、角度的多段线上对齐块。
我已附上样本文件供参考。。。该块可以是任何名称,大多为矩形或类似于dwg中的块。
 
谢谢
测验图纸
回复

使用道具 举报

14

主题

206

帖子

9

银币

后起之秀

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

铜币
257
发表于 2022-7-5 16:54:07 | 显示全部楼层
注意,对齐是一个单独的功能,不要将“命令”功能放在前面。
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 16:59:04 | 显示全部楼层
在样例文件中,块是对称的。如果不是这样,会发生什么?
如果pline有两个以上的顶点,会发生什么?
如果一段是弯曲的,会发生什么?
是否应修改现有的块参照(与“对齐”命令一样),还是由程序创建?
 
在我看来,如果块定义中对象的最大X坐标恰好为1,则更有意义。
回复

使用道具 举报

13

主题

53

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
71
发表于 2022-7-5 17:02:59 | 显示全部楼层
 
我对你的问题的答复如下。
*我的方块都是对称的
*大多数情况下都是否定的,如果是的话,我会采取极端的做法
*没有曲线,只有两个顶点的直线或多段线
*使用当前选择的现有。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:05:02 | 显示全部楼层
好的,在Roy提出了一些有用的问题之后,我们从这里开始:
 
  1. (defun C:test ( / SS i e pts b enx )
  2. (if
  3.    (setq SS  
  4.      (ssget "_:L-I"
  5.        '(
  6.          (-4 . "<OR")
  7.          (-4 . "<AND") (0 . "LINE") (-4 . "AND>")
  8.          (-4 . "<AND") (0 . "LWPOLYLINE") (90 . 2) (70 . 0) (-4 . "AND>")
  9.          (-4 . "OR>")
  10.        )
  11.      )
  12.    )
  13.    (repeat (setq i (sslength SS))
  14.      (setq e (ssname SS (setq i (1- i))))
  15.      (setq pts (list (vlax-curve-getStartPoint e) (vlax-curve-getEndPoint e)))
  16.      (and
  17.        (setq b (ssget "F" pts '((0 . "INSERT") (2 . "G-BIG"))))
  18.        (setq b (ssname b 0))
  19.        (setq enx (entget b))
  20.        (setq enx (subst (cons 10 (apply 'mapcar (cons '(lambda (a b) (/ (+ a b) 2.)) pts))) (assoc 10 enx) enx))
  21.        (setq enx (subst (cons 50 (apply 'angle pts)) (assoc 50 enx) enx))
  22.        (entmod enx)
  23.      )
  24.    )
  25. )
  26. (princ)
  27. );| defun |; (vl-load-com) (princ)

 
只需计算出块的比例。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:08:58 | 显示全部楼层
Grr研究了pline上点的角度的“一阶导数”,适用于曲线等。链测长度就是一个很好的例子。lsp。
PL.lsp上的链测长度
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:14:24 | 显示全部楼层
 
谢谢BIGAL,
这里面有很多有趣的东西。lsp。如果OP没有包括以下内容,我会使用它:
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:17:29 | 显示全部楼层
Grr水晶球建议我另一个帖子请求想要曲线。很多时候你只会看到“哦,我能吃吗?”
回复

使用道具 举报

13

主题

53

帖子

44

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
71
发表于 2022-7-5 17:20:57 | 显示全部楼层
 
谢谢GRR,我尝试了你的代码,但无法找出问题所在。。
选择后不进行任何插入,插入块时,直线和多段线保持不变。
 
非常感谢
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:24:18 | 显示全部楼层
 
你回答的时候要小心:
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 14:06 , Processed in 0.374812 second(s), 72 queries .

© 2020-2025 乐筑天下

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