danglar 发表于 2022-7-5 17:06:15

将HVAC半径弯头转换为s

大家好!
我需要将半径弯头转换为分段,如图所示。。
(见附件)
我找到了将弧转换为具有用户定义的段数的分段pline的专用例程
(见附件)现在,我需要对这个程序进行一些改进,从线段顶点到选定弧中心绘制直线或样条线
有人能帮我做吗?
任何帮助都将不胜感激
弧到编号段-ASX。lsp

David Bethel 发表于 2022-7-5 17:14:46

哇!我已经很久没有开发出戈尔肘部的图案了!
 
第一件事:第一个和最后一个戈尔是中间完全戈尔的1\2
 
在美国,我们使用SMACNA作为HVAC标准,以确定弯曲半径与圆形风管尺寸的关系。
 
GORE的数量取决于系统的应用。除尘器需要比标准通风多得多的血污。
 
你有需要满足的规格吗?
 
-大卫

danglar 发表于 2022-7-5 17:19:03

我理解你的意思,但我没有任何规格,在第一个“脏”阶段,我只需要弧中心方向的戈尔之间的线连接

Ronso 发表于 2022-7-5 17:26:44

为什么桡肘首先被画出来?

tzframpton 发表于 2022-7-5 17:28:10

在帖子#204中下载此LISP:
http://www.cadtutor.net/forum/showthread.php?10882-需要更好的多行&p=670389&viewfull=1#post670389
 
这是本论坛的老成员ASMI最初创建的风管/管道布线程序的更新版本:
http://www.cadtutor.net/forum/showthread.php?30545-*免费*-用于AutoCAD的HVAC或管道程序
 
该程序首先基于几个输入值动态创建斜接、半径或gored管件。使用工具选项板上的宏,可以具有“预设”值。例如,只需点击一个按钮,您就可以拥有4“斜接喉,或1.5W半径的肘部。
 
这并不会“转换”你的肘部,但这可能是一个整体上的替代解决方案。希望这有帮助。
 
-TZ公司
 
**编辑**
刚才看到Ronso,我链接的程序的作者之一,已经发布了。非常感谢他不断更新此程序。

danglar 发表于 2022-7-5 17:35:17

我已经在一组图纸中绘制了一组半径弯头,我需要“转换”它,而不需要重新绘制

tzframpton 发表于 2022-7-5 17:40:44

那么我所提供的不会有多大帮助。未来的项目,是的。

Ronso 发表于 2022-7-5 17:46:39

 
关于半径弯头,它们由哪些autocad对象组成?两条独立的多段线弧、两条独立的圆弧或一条连续的闭合多段线。当您提供的例程可以选择多种对象类型时,这不仅仅是一个小小的改进。

David Bethel 发表于 2022-7-5 17:54:24

今天我有一些时间,这确实让我想起了很多晶圆厂的回忆:
 

;|
2D GORE ELBOWS - MESH Entity
d = Duct Diameter
r = Throat Radius
q = Qty Of Gores
c = Center Point
s = Start Angle
b = Elbow Bend Angle
|;

;++++++++++++ Get Elbow Data +++++++++++++++++++++++++++++++++++++
(defun ge_get ()

(initget 7)
(setq d (getdist "\nDuct Diameter:   "))

(setq rd (* d 1.5))
(initget 6)
(setq r (getdist (strcat "\nThroat Radius <" (rtos rd 2 2) ">:   ")))
(or r (setq r rd))

(while (or (not q)
          (< q 3))
      (initget 7)
      (setq q (getint "\nGore Qty - Min 3:   ")))

(initget 1)
(setq c (getpoint "\nRadius Center Point:   "))

(initget 1)
(setq s (getangle c "\nStart Angle:   "))

(initget 6)
(setq b (getangle "\nElbow Included Bend Angle <90>:   "))
(or b (setq b (* pi 0.5)))

(prin1))

;++++++++++++ Entity Construction ++++++++++++++++++++++++++++++++
(defun ge_con (d r q c s b / ga ha i ca c1 c2 p1 p2 pl1 pl2)
(setq ga (/ b (1- q))
       ha (* ga 0.5)
       i 0)
(repeat q
    (setq ca (+ s (* ga i)))
    (setq c1 (polar c ca    r))
    (setq c2 (polar c ca (+ r d)))
    (setq p1 (polar c1 (- ca (* pi 0.5)) (if (= i 0) 0 (* (sin ha) r))))
    (setq p2 (polar c2 (- ca (* pi 0.5)) (if (= i 0) 0 (* (sin ha) (+ r d)))))
    (setq pl1 (cons p1 pl1)
          pl2 (cons p2 pl2))
    (setq i (1+ i)))
(setq pl1 (cons (polar c (+ s b) r) pl1)
      pl2 (cons (polar c (+ s b) (+ r d)) pl2))

(entmake (list (cons 0 "POLYLINE")(cons 66 1)(cons 70 16)(list 10 0 0 0)
               (cons 71 2)
               (cons 72 (1+ q))))
(foreach v pl1
    (entmake (list (cons 0 "VERTEX")(cons 70 64)(cons 10 v))))
(foreach v pl2
    (entmake (list (cons 0 "VERTEX")(cons 70 64)(cons 10 v))))
(entmake (list (cons 0 "SEQEND"))))

;************ Main Program ***************************************
(defun c:gore (/ d rd r q c s b)
(ge_get)
(ge_con d r q c s b)
(prin1))

 
运行c:gore或向ge_con输入数据。
 
 
HTH公司
 
-大卫

danglar 发表于 2022-7-5 17:57:13

很好的方法,大卫!
谢谢,但我已经有了这个问题的“最终”解决方案。你可以在这里看到:
https://lispbox.wordpress.com/2016/10/18/convert-radius-elbow-to-segmented-with-user-defined-number-of-segments/
页: [1] 2
查看完整版本: 将HVAC半径弯头转换为s