乐筑天下

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

[编程交流] 间距LISP

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:35:35 | 显示全部楼层 |阅读模式
你好
 
有人知道LISP例程可以在对象之间创建空间吗?数组对于一个重复的对象是合适的,如果对象都不同呢?
 
我花了很多时间手动分隔对象。。。
 
谢谢
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 09:44:30 | 显示全部楼层
间距是随机的吗?
 
我知道一个叫做Scatter的VLX lisp程序:
 
“在2D或3D中随机移动选定对象-果园、停车场、群组…”
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:50:40 | 显示全部楼层
 
间隔的原因是什么?为了清晰起见,只是将实体从下一个实体中移开?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:54:51 | 显示全部楼层
 
你好,pBe。
 
假设他有几十个圆圈和文本,并希望以特定的距离将它们彼此分开!所以数组命令不会
允许他同时选择多个实体。
 
使用移动命令需要很长时间才能完成。
 
谢谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 10:00:10 | 显示全部楼层
 
你这么认为塔尔瓦?无论如何,我们要有耐心。我们最好等待OP为我们澄清这一点。
 
干杯
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:04:45 | 显示全部楼层
我想是的,因为他提到的物体给了我灵感,让我说它可能是不同种类的实体。
 
干杯
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:09:24 | 显示全部楼层
不管它是什么,重要的是如何计算包含对象的框的大小,如果你取100个块,做一个10x10的网格,一些块可能会太大并且重叠。
 
您可以通过多种方式执行此操作:读取文件/Excel,设置框的大小,创建新的布局选项卡放置块或对象,并计算其范围最小值最大值。这会给出框的大小,然后删除所有跳回并添加对象。如果需要多行,请保留x max和y max的记录,但确实可行。对于每个布局选项卡,这绝对可以为extmin extmax得到不同的答案。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:14:17 | 显示全部楼层
快一点。我明天会把它清理干净并发布一些代码。
 
编辑:
啊,去他妈的,这里(提前警告,这太草率了):
 
  1. (defun _bboxAndMid (obj / a b l)
  2. (vla-getboundingbox obj 'a 'b)
  3. (list (car (setq l (mapcar 'vlax-safearray->list (list a b))))
  4.        (apply '(lambda (a b) (mapcar '(lambda (a b) (/ (+ a b) 2.)) a b)) l)
  5.        (cadr l)
  6. )
  7. )
  8. (defun ss->lst (ss / i l)
  9. (if (eq (type ss) 'PICKSET)
  10.    (repeat (setq i (sslength ss))
  11.      (setq l (cons (vlax-ename->vla-object (ssname ss (setq i (1- i)))) l))
  12.    )
  13. )
  14. )
  15. (defun c:Test (/ lst p1 g p2 a d)
  16. (if (and (setq lst (ss->lst (ssget "_:L")))
  17.           (setq p1 (getpoint "\nSpecify first point: "))
  18.      )
  19.    (while (eq 5 (car (setq g (grread T 15 0))))
  20.      (redraw)
  21.      (grdraw p1 (polar (setq p2 (cadr g)) (angle p1 p2) 10000000.) 1 -1)
  22.      (setq p1 (trans p1 1 0)
  23.            p2 (trans p2 1 0)
  24.            a  (angle p1 p2)
  25.            d  (/ (distance p1 p2) (float (length lst)))
  26.      )
  27.      (vla-move (car lst) (vlax-3d-point (cadr (_bboxAndMid (car lst)))) (vlax-3d-point p1))
  28.      (mapcar
  29.        '(lambda (o1 o2 / l)
  30.           (vla-move o2
  31.                     (vlax-3d-point (cadr (_bboxAndMid o2)))
  32.                     (vlax-3d-point
  33.                       (polar (cadr (setq l (_bboxAndMid o1)))
  34.                              a
  35.                              (+ d (distance (car l) (caddr l)))
  36.                       )
  37.                     )
  38.           )
  39.         )
  40.        lst
  41.        (cdr lst)
  42.      )
  43.    )
  44. )
  45. (redraw)
  46. (princ)
  47. )
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:18:40 | 显示全部楼层
谢谢大家的快速回复!
 
谢谢你的评论,不过我确实需要有序的间距。。。
 
是的,pBe,它基本上是布置结构,以便模糊和注释。。。
 
看起来alnajt的常规动作应该能奏效,谢谢你,伙计。。。
 
喜欢这个网站!
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 10:23:45 | 显示全部楼层
干得好,艾伦。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:29 , Processed in 0.423202 second(s), 72 queries .

© 2020-2025 乐筑天下

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