乐筑天下

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

[编程交流] 将坐标放入单独的

[复制链接]
gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 06:54:31 | 显示全部楼层 |阅读模式
嘿伙计们。。。
 
我不需要什么帮助
  1. [color="red"]([/color][color="blue"]setq[/color] ename[color="red"]([/color][color="blue"]vlax-ename->vla-object[/color] ss[color="red"]))[/color]
  2. [color="red"]([/color][color="blue"]setq[/color] points[color="red"]([/color][color="blue"]vlax-safearray->list[/color] [color="red"]([/color][color="blue"]vlax-variant-value[/color][color="red"]([/color][color="blue"]vla-get-coordinates[/color] ename[color="red"]))))[/color]

请看,lisp返回的坐标如下所示
  1. (7.52707 15.8253 24.8824 22.4948 30.4653 7.9432 21.2414 -1.81847
  2. 13.9595 -1.09089)

我的目标是把它们全部分开,放到一个列表中
这样地
  1. (7.52707 15.8253) (24.8824 22.4948) (30.4653 7.9432) (21.2414 -1.81847)
  2. (13.9595 -1.09089)

 
帮帮我伙计们
 
当做
甘尼什
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:07:23 | 显示全部楼层
请检查此线程中的函数。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:12:03 | 显示全部楼层
按编号分组列表
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:20:02 | 显示全部楼层
非常感谢Mircea&Lee Mac,它帮助我学习了这个方法
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:22:16 | 显示全部楼层
@李·麦克
在这几分钟里,我写了一个解决方案,请让我知道我使用它的正确与否
  1. (setq c 0)
  2. (setq mtlist'())
  3. (repeat (1- (length points))
  4.    (setq a(nth c points))
  5.    (setq b(nth (1+ c) points))
  6.    (setq pt(list a b))
  7.    (setq mtlist (cons pt mtlist))
  8.    (setq c (1+ c))
  9. )
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:30:56 | 显示全部楼层
  1. (setq c 0)
  2. (setq mtlist'())
  3. (repeat (1- (length points))
  4. (setq a(nth c points))
  5. (setq b(nth [color=red](setq c (1+ c))[/color] points))
  6. (setq pt(list a b))  
  7. (setq mtlist (cons pt mtlist))
  8. (setq c (1+ c))
  9. )

 
或者另一种方式:
 
  1. (repeat (/ (length points) 2)
  2. (setq pt (list (car points) (cadr points)))
  3. (setq points (cddr points))
  4. (setq mtlist (cons pt mtlist))
  5. )
  6. (reverse mtlist)

 
M、 R。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:38:32 | 显示全部楼层
如果您想使用repeat,我建议您做以下几点:
  1. (defun _groupby2 ( lst / out )
  2.    (repeat (/ (length lst) 2)
  3.        (setq out (cons (list (car lst) (cadr lst)) out)
  4.              lst (cddr lst)
  5.        )
  6.    )
  7.    (reverse out)
  8. )

或递归,
  1. (defun _groupby2 ( lst )
  2.    (if lst (cons (list (car lst) (cadr lst)) (_groupby2 (cddr lst))))
  3. )

这也是我在这里演示的方法。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:42:13 | 显示全部楼层
还有一个链接
 
M、 R。
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:49:12 | 显示全部楼层
再次感谢李现在我明白了
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:58:45 | 显示全部楼层
非常感谢marko ribar。。感谢您的大力支持
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:38 , Processed in 0.390075 second(s), 72 queries .

© 2020-2025 乐筑天下

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