TenSecond408 发表于 2022-7-6 06:19:37

用于绘制扶手的LISP

大家好
 
很长一段时间以来,我一直想创建某种类型的LISP。在过去的几年里,我完成了1000年的扶手画,并期待着做更多。
 
这些轨道为1.50 x 1.50平方管,16ga壁,304不锈钢或低碳钢。标准高度为42英寸,永远不会改变。绘制这些时只有几个变量。当扶手的末端支柱不止一根时,支柱的中心距离不能大于42英寸。当扶手足够短,不需要中间立柱时,中心距离不得大于50”。
 
我已经包括了一个样本图纸,我如何布局我的铁路图纸的车间制造。我已经展示了一个带有多个立柱和一个不需要中间立柱的短立柱的栏杆。
 
我希望有一个LISP设计有一个对话框弹出,要求:
 
扶手长度:4“-240”
材料:不锈钢或低碳钢
 
输入条件后,LISP绘制扶手,然后创建剪切列表,如我在示例中所示。
 
是否可以使用相同的LISP程序标注和放置文本?
 
谢谢大家的帮助!
 
AJ公司
 
这是我放在一起的样本文件,作为我如何绘制施工图的示例。
 
样本。图纸

neophoible 发表于 2022-7-6 06:29:12

我确信这在LISP中是可行的,但我不知道这对大师来说需要多少努力。我可以设置一个相当简单的动态块来完成单扶手的大部分功能(见附件)。对于动态块专家来说,多立柱可能同样可行。我不是专家;在这一点上更像是一个涉猎者。
 
扶手样品w块。图纸
 
对于材质,我的方法是缩短文本,并为“柔和”或“不锈”添加一个右对齐属性。由于所有PC都是相同的,因此其中两个属性可以只包含调整为第一个输入的字段。

neophoible 发表于 2022-7-6 06:32:54

顺便说一句,如果你真的不需要一个完整的图纸,那么问题可以通过直接在多立柱扶手的图纸中添加变量来大大简化。您只需添加打断,以显示空间比所示的两个多,并且可能会添加一个填充的图表(通过程序或手动填充)。我们经常为我们商店定期生产的标准产品做这种事情。这使得编程更容易,因为没有什么可绘制的,只需要填写维度(属性)。

TenSecond408 发表于 2022-7-6 06:36:10

这种方法效果很好。只需要微调一下。实际上只是视觉上的东西,比如:保持文本在切割管的中心。现在,如果我们可以让多重竖直在动态块中工作。我从来没有真正擅长这种动态方块的东西,我的学校在这方面没有教我们很多。
 
谢谢你的帮助
 
希望你能在别人的脑海里激发出一个想法,也许能找到答案!
 
AJ公司

TenSecond408 发表于 2022-7-6 06:41:05

 
这将是一种更容易绘制这些图形的方法。我们仍然希望保留全尺寸/全绘制的扶手图纸,当需要为焊工绘制尺寸或出现任何其他原因时,我们更容易将其用于将来的参考。
 
再次感谢你帮助我!
 
AJ公司

neophoible 发表于 2022-7-6 06:45:19

理解。我们有时也会遇到这样的问题,在这种情况下,我们通常会有一个程序来绘制项目,以便我们可以对其进行CAD测量。但现在很明显,你需要你想要的东西。真正起作用的是宽容。从一个尺寸到下一个尺寸的公差(或模糊尺寸)是多少?换句话说,如果中心距离为42.001,您不会担心添加立柱,对吗?但是,如果超过了某个几分之一英寸,你就必须转到下一个。,比如说1/16“,对吗?那么截止点是51.500吗?或者也可以达到,比如说1/16“?

TenSecond408 发表于 2022-7-6 06:54:34

 
关于这一点,我们没有什么科学依据。如果我们说他们没有需要考虑的容忍,那就行了。在多个立柱上,任何>42“中心的物体都需要一个新的立柱,而在短导轨上,任何>50”的物体都需要一个新的立柱。
 
我在胡闹,试图建立一个动态块,就像你刚才做的短铁路,相当复杂
 
谢谢
 
AJ公司

David Bethel 发表于 2022-7-6 06:58:24

作为一个“正当理由”,为了说明这样的任务有多么复杂,这里有一个命令行方法,它使用TRACE命令来构造管道:
 

(defun c:hrail (/ x y z q dy h m xx xs xp dq hz i
                fl cl tl ul ml)

(while (or (not x)
          (not (< 4 x 240)))
      (initget 7)
      (setq x (getdist "\nOverall Width S-S ( 4-240 ):   ")))

(initget 6)
(setq y (getdist "\nHeight T-B <42>:   "))
(or y (setq y 42.))

(initget 6)
(setq z (getdist "\nTube Size <1.5>:   "))
(or z (setq z 1.5))

(setq dq (cond ((<= x 50) 0)
            (T
               (fix (/ x 42)))))
(initget 4)
(setq q (getint (strcat "\nMiddle Upright Qty <" (itoa dq) ">:   ")))
(or q (setq q dq))

(setq dy (* (- y z) 0.5))
(setq h (getdist (strcat "\nMid Rail Height <" (rtos dy 2 2) ">:   ")))
(or h (setq h dy))

(initget 1 "Mild Stainless")
(setq m (getkword "\nMaterial - Mild/Stainless:   "))

;;;HALF TUBE
(setq hz (* z 0.5))

;;;UPRIGHT SPACING
(setq xx (- x z)
   xs (/ xx (1+ q))
   xp hz)

;;;CENTER LINE LIST
(setq cl (list hz))
(repeat q
(setq cl (cons (+ xp xs) cl)
      xp (+ xp xs)))
(setq cl (cons (- x hz) cl))
(setq cl (reverse cl))

;;;MAIN FRAME LIST
(setq fl (list (list (car cl)      00)
            (list (car cl)(- y hz) 0)
            (list (last cl) (- y hz) 0)
            (list (last cl)       00)))
;;;UPRIGHT LIST
(setq i 1)
(repeat q
(setq ul (cons (list (list (nth i cl) 0 0)
                      (list (nth i cl) (- y z) 0)) ul))
(setq i (1+ i)))

;;;MID SUPPORTS
(setq tl cl)
(while (> (length tl) 1)
(setq ml (cons (list (list (+ (car tl) hz) h 0)
                      (list (- (cadr tl) hz) h 0)) ml))
(setq tl (cdr tl)))

(setvar "CMDECHO" 1)
(setvar "TRACEWID" z)
(setvar "THICKNESS" z)
(setvar "SNAPMODE" 0)
(command "_.UCS" "_W")

(command "_.TRACE" "")
(foreach v fl (command v))
(command "")

(foreach v ml
(command "_.TRACE" "")
(command (car v))
(command (cadr v))
(command ""))

(foreach v ul
(command "_.TRACE" "")
(command (car v))
(command (cadr v))
(command ""))

(prin1))

 
 
零件清单非常可行,但要复杂得多。
 
-大卫

LibertyOne 发表于 2022-7-6 07:03:10

如果扶手比提供的材料长怎么办?你在哪里拼接?或者你对扶手的长度或重量有限制吗?(用于运输)您是否需要底板将扶手固定在地面或地板上?

neophoible 发表于 2022-7-6 07:06:32

他提到最大长度为20英尺,是美国的典型长度,不需要拼接。我对没有踢脚板感到好奇,但猜测它一定是安装在地板上的。
页: [1] 2
查看完整版本: 用于绘制扶手的LISP