kramerO 发表于 2022-7-6 09:55:53

椭圆例程请求

我在所有常用视图中绘制螺纹和承插焊接管件的块,因为管件末端的外径随材料和压力等级而变化,对于旋转视图,我使用“中心椭圆”命令创建椭圆,然后输入“R”进行旋转,然后输入旋转角度。
有没有人有一个lisp,可以让我选择直径(或中心和长轴)与2个点,并有例行启动旋转45和完成椭圆。
 
谢谢
克雷梅罗

pBe 发表于 2022-7-6 10:01:49

 
你这是什么意思?

kramerO 发表于 2022-7-6 10:06:35

pBe,
图中显示了3“-300#可锻铸铁90度弯头和3“-300#可锻铸铁直三通在卷起和卷起位置。
 
karmerO

Lee Mac 发表于 2022-7-6 10:09:49


 

(defun c:e45 ( / p1 p2 )

(if
   (and
   (setq p1 (getpoint "\nAxis Endpoint: "))
   (setq p2 (getpoint "\nOther Endpoint: " p1))
   )
   (command "_.ellipse" "_non" p1 "_non" p2 "_R" 45.0)
)
(princ)
)

David Bethel 发表于 2022-7-6 10:11:49

克雷默0
 
你想过3D建模吗?这样做会让生活更轻松-大卫

Lee Mac 发表于 2022-7-6 10:14:12

或者,作为对先前代码的改进:
 

(defun c:e45 ( / *error* p1 p2 cmd )

(defun *error* ( msg )
   (if cmd (setvar 'CMDECHO cmd))
   (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
       (princ (strcat "\n** Error: " msg " **")))
   (princ)
)

(setq cmd (getvar 'CMDECHO))
(setvar 'CMDECHO 0)

(if
   (progn
   (initget "Center")
   (setq p1 (getpoint "\nSpecify Axis Endpoint : "))
   )
   (cond
   (
       (eq "Center" p1)

       (if
         (and
         (setq p1 (getpoint "\nSpecify Center of Ellipse: "))
         (setq p2 (getpoint "\nSpecify Endpoint of Axis: " p1))
         )
         (command "_.ellipse" "_C" "_non" p1 "_non" p2 "_R" 45.0)
       )
   )
   ( (setq p2 (getpoint "\nSpecify Other Endpoint of Axis: " p1))

       (command "_.ellipse" "_non" p1 "_non" p2 "_R" 45.0)
   )
   )
)

(setvar 'CMDECHO cmd)
(princ)
)

alanjt 发表于 2022-7-6 10:20:22

为什么不使用具有可见性状态的动态块,并只设置大小比例?

Lee Mac 发表于 2022-7-6 10:22:48

 
当然管件尺寸不是线性缩放的吗?

alanjt 发表于 2022-7-6 10:26:40

我有几个管件块,我使用的细节,我规模,以匹配管道直径。

Lee Mac 发表于 2022-7-6 10:30:01

 
当然这不符合规格?我不相信管件尺寸会随着直径的增加而线性缩放-当然每个尺寸都需要一个块?
页: [1] 2
查看完整版本: 椭圆例程请求