乐筑天下

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

[编程交流] 直线、圆、,

[复制链接]

8

主题

14

帖子

6

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 18:33:13 | 显示全部楼层 |阅读模式
我在autocad中有一个三维对象,我想使用visual lisp创建该对象的直线、圆、圆弧和多段线的选择集。
请帮忙。。
提前感谢。。。
 
图纸1.dwg
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-5 18:43:25 | 显示全部楼层
例如:-
 
圆的选择集:-
  1. (ssget '((0 . "circle")))

 
多段线的选择集:-
  1. (ssget '((0 . "*polyline")))

 
弧的选择集:-
  1. (ssget '((0 . "arc")))

 
你可以这样组合它们:-
  1. (ssget '((0 . "arc,circle,line,*polyline")))
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 18:45:32 | 显示全部楼层
 
在选择这些实体时,您试图实现什么?你只是想选择它们吗?
 
  1. (setq selset
  2.    (ssget
  3.      (list
  4.        (cons -4 "<OR")
  5.          (cons 0 "ARC")
  6.          (cons 0 "CIRCLE")
  7.          (cons 0 "ELLIPSE")
  8.          (cons 0 "LINE")
  9.          (cons 0 "LWPOLYLINE")
  10.          (cons 0 "POINT")
  11.          (cons 0 "POLYLINE")
  12.        (cons -4 "OR>")
  13.      )
  14.    )
  15. )

 
无论如何,在你的附图中,我找不到任何实体,除了三维实体对象。
回复

使用道具 举报

8

主题

14

帖子

6

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 18:53:28 | 显示全部楼层
先生,我有一个三维实体,那么首先我要做什么来将它们转换成一个实体呢?
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 18:59:41 | 显示全部楼层
 
如果你熟悉SOLPROF命令,你可以做到这一点,但如果你不熟悉,我们开始吧,这很容易。
打开图形,
转到任何布局
创建视口>单个“选择要具有二维轮廓的视图”
键入MSPACE>ENTER
使用SOLPROF>ENTER>Select 3D Solid>ENTER>ENTER>ENTER
现在转到模型空间并移动3D对象,以便可以看到2D轮廓
 
请参阅快照
193314s1irja5r46aae64o.png
 
上部>2D剖面
下部>3D对象
 
顺便说一句,您需要分解二维轮廓,以便可以更改线型等。
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:03:23 | 显示全部楼层
我相信OP想要实现的是提取实体的边缘。使用SOLIDEDIT可以实现这一点。
回复

使用道具 举报

8

主题

14

帖子

6

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-5 19:07:58 | 显示全部楼层
 
 
我希望使用autocad和visuallispDoc1进行特征提取,如附件(doc1.docx)所示。docx文件
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:11:51 | 显示全部楼层
据我所知,不可能使用lisp提取实体的边缘。
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-5 19:20:04 | 显示全部楼层
当然有。我用另一个Lisp程序的Lisp程序把这句话拼凑在一起,所以你必须经历并调整,但这只是一个开始
  1. (
  2. (lambda ( e / g )
  3.    (if e
  4.      (progn
  5.        (setq g (entget (cdr (assoc 360 (entget (cdr (assoc 350 (entget e))))))))
  6.        (mapcar (function cdr)
  7.          (vl-remove-if-not
  8.            (function
  9.              (lambda ( x )
  10.                (eq (car x) 360)
  11.              )
  12.            ) g
  13.          )
  14.        )
  15.      )
  16.    )
  17. ) (car (entsel "\nSelect a solid: "))
  18. )
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:23:07 | 显示全部楼层
你是说剩下的是assoc 360实体的列表,这些实体是实体的边缘?我运行了您的代码,进行了一些编辑,只剩下一个实体ACAD\U评估图。你能解释一下你的代码在做什么吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:45 , Processed in 1.013854 second(s), 74 queries .

© 2020-2025 乐筑天下

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