乐筑天下

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

[编程交流] 绘制多段线

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:09:24 | 显示全部楼层 |阅读模式
你好
 
我在试着绘制多段线,问题是当设置DXF 10时,我实际上粘贴了一个列表而不是一个点对,有什么方法可以修复它吗?
 
  1. (defun drawPoly        ()
  2. (setq p nil pl nil)
  3. (while (setq p (getpoint))
  4.    (setq pl (cons p pl))
  5. )
  6. (entmakex (list
  7.       '(0 . "LWPOLYLINE")
  8.       '(100 . "AcDbEntity")
  9.       '(67 . 0)
  10.       '(410 . "Model")
  11.       '(8 . "SG_WALL")
  12.       '(100 . "AcDbPolyline")
  13.       (mapcar '(lambda (a) (append (cons 10 a))) pl)
  14.     )
  15. )
  16. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:17:23 | 显示全部楼层
  1. (entmakex (append (list '(0 . "LWPOLYLINE")
  2.                          '(100 . "AcDbEntity")
  3.                          '(100 . "AcDbPolyline")
  4.                          '(67 . 0)
  5.                          (cons 410 (getvar 'ctab))
  6.                          '(8 . "SG_WALL")
  7.                          '(70 . 1)
  8.                          (cons 90 (length pl))
  9.                    )
  10.                    (mapcar '(lambda (a)  (cons 10 a)) pl)
  11.            )
  12. )
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:29:15 | 显示全部楼层
 
你好,塔瓦,和我做的差不多?
(cons 10 a)将返回一个列表,而不是一个点对!?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:37:38 | 显示全部楼层
 
真正地
你的日常工作做得好吗?
 
不需要点对,因为我将点列表附加到entmakex函数。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:41:56 | 显示全部楼层
 
只有传递给cons的第二个参数是原子时,才会返回点对。
如果第二个参数是一个列表,cons会将第一个参数推到列表的前面。
 
观察:
  1. _$ (cons "a" "b")
  2. ("a" . "b")
  3. _$ (cons 1 2)
  4. (1 . 2)
  5. _$ (cons '(1 2 3) 2)
  6. ((1 2 3) . 2)
  7. _$ (cons 1 '(1 2 3))
  8. (1 1 2 3)
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:48:02 | 显示全部楼层
 
这就是我所说的,因为点坐标是作为一个列表形成的,cons将生成一个列表,那么entmakex为什么可以接受不是点对的列表呢?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:56:27 | 显示全部楼层
所有这些都是由于我在之前的帖子中使用了append函数,而你坚持使用点对。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:03:48 | 显示全部楼层
 
由于上述行为,具有列表值的DXF组不会形成点对-唯一的要求是DXF组编号为“car”元素,DXF值为“cdr”元素。
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 00:12:49 | 显示全部楼层
 
对不起,你大多数时候都是对的
 
 
谢谢李,我不记得在任何地方读到点对不是DXF强制数据,很高兴知道。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:30 , Processed in 1.094345 second(s), 79 queries .

© 2020-2025 乐筑天下

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