raj patel 发表于 2022-7-5 18:33:13

直线、圆、,

我在autocad中有一个三维对象,我想使用visual lisp创建该对象的直线、圆、圆弧和多段线的选择集。
请帮忙。。
提前感谢。。。
 
图纸1.dwg

satishrajdev 发表于 2022-7-5 18:43:25

例如:-
 
圆的选择集:-

(ssget '((0 . "circle")))

 
多段线的选择集:-

(ssget '((0 . "*polyline")))

 
弧的选择集:-

(ssget '((0 . "arc")))

 
你可以这样组合它们:-

(ssget '((0 . "arc,circle,line,*polyline")))

ttray33y 发表于 2022-7-5 18:45:32

 
在选择这些实体时,您试图实现什么?你只是想选择它们吗?
 

(setq selset
   (ssget
   (list
       (cons -4 "<OR")
         (cons 0 "ARC")
         (cons 0 "CIRCLE")
         (cons 0 "ELLIPSE")
         (cons 0 "LINE")
         (cons 0 "LWPOLYLINE")
         (cons 0 "POINT")
         (cons 0 "POLYLINE")
       (cons -4 "OR>")
   )
   )
)

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

raj patel 发表于 2022-7-5 18:53:28

先生,我有一个三维实体,那么首先我要做什么来将它们转换成一个实体呢?

ttray33y 发表于 2022-7-5 18:59:41

 
如果你熟悉SOLPROF命令,你可以做到这一点,但如果你不熟悉,我们开始吧,这很容易。
打开图形,
转到任何布局
创建视口>单个“选择要具有二维轮廓的视图”
键入MSPACE>ENTER
使用SOLPROF>ENTER>Select 3D Solid>ENTER>ENTER>ENTER
现在转到模型空间并移动3D对象,以便可以看到2D轮廓
 
请参阅快照

 
上部>2D剖面
下部>3D对象
 
顺便说一句,您需要分解二维轮廓,以便可以更改线型等。

Hippe013 发表于 2022-7-5 19:03:23

我相信OP想要实现的是提取实体的边缘。使用SOLIDEDIT可以实现这一点。

raj patel 发表于 2022-7-5 19:07:58

 
 
我希望使用autocad和visuallispDoc1进行特征提取,如附件(doc1.docx)所示。docx文件

Hippe013 发表于 2022-7-5 19:11:51

据我所知,不可能使用lisp提取实体的边缘。

Lt Dan's l 发表于 2022-7-5 19:20:04

当然有。我用另一个Lisp程序的Lisp程序把这句话拼凑在一起,所以你必须经历并调整,但这只是一个开始

(
(lambda ( e / g )
   (if e
   (progn
       (setq g (entget (cdr (assoc 360 (entget (cdr (assoc 350 (entget e))))))))
       (mapcar (function cdr)
         (vl-remove-if-not
         (function
             (lambda ( x )
               (eq (car x) 360)
             )
         ) g
         )
       )
   )
   )
) (car (entsel "\nSelect a solid: "))
)

Hippe013 发表于 2022-7-5 19:23:07

你是说剩下的是assoc 360实体的列表,这些实体是实体的边缘?我运行了您的代码,进行了一些编辑,只剩下一个实体ACAD\U评估图。你能解释一下你的代码在做什么吗?
页: [1] 2
查看完整版本: 直线、圆、,