Bill Tillman 发表于 2022-7-5 18:24:17

Stefan MBR发布的绘制角度的方法非常灵活,所以我尝试将其用于我需要绘制的另一个对象。另一个对象是具有圆角的角度的平面图。以下是我目前掌握的代码:
(defun DrawPlanofAngle (l thk w)
(entmakex
   (list
   '(0 . "LWPOLYLINE")
   '(8 . "0")
   '(100 . "AcDbEntity")
   '(100 . "AcDbPolyline")
   '(90 . 6)
   '(70 . 1)
   (list 10 0.0 0.0)
   (list 10 (- w 0.25) 0.0)
   (cons 42 (- 1 (sqrt 2.0)))
   (list 10 w -0.25)
   (list 10 w (* (- l thk) -1))
   (cons 42 (- 1 (sqrt 2.0)))
   (list 10 (- w 0.25) (* l -1))
   (list 10 0.0 (* l -1))      
   )
)
); end DrawPlanofAngle
效果很好,但最后几件事让我感到困惑。我需要包括另一条线,它将代表腿的厚度,你将在这个角度的平面图中看到。代码还在'(0.0 0.0)处绘制对象,然后将完成的多段线移动到所需的点。我希望从一开始就把它画在想要的位置,我想我能做到。但我怎么能把另一行包括进来,这是我迷路的地方。我当然可以画出来,但如果我移动它,我就会松开它。所以我试着把这条线变成同一条多段线的一部分,但再一次,这开始变得效率低下,IMHO。这里有一些草图可以解释我的观点。

Bill Tillman 发表于 2022-7-5 18:26:15

好的,解决了位置的问题,但今天早上仍在努力将第二条线加入混音。我想我可以画一条线,然后把这两个项目分成一组。但我想我可以只重叠一个短线段,并将其全部创建为一条多段线。还有更多。
(defun DrawPlanofAngle (pt l thk w)
(entmakex
   (list
   '(0 . "LWPOLYLINE")
   '(8 . "0")
   '(100 . "AcDbEntity")
   '(100 . "AcDbPolyline")
   '(90 .
   '(70 . 1)
   (list 10 (car pt) (cadr pt))
   (list 10 (- (+ (car pt) w) 0.25) (cadr pt))
   (cons 42 (- 1 (sqrt 2.0)))
   (list 10 (+ (car pt) w) (- (cadr pt) 0.25))
   (list 10 (+ (car pt) w) (- (cadr pt) l -0.25))
   (cons 42 (- 1 (sqrt 2.0)))
   (list 10 (- (+ (car pt) w) 0.25) (- (cadr pt) l))
   (list 10 (car pt) (- (cadr pt) l))
   )
)
); end DrawPlanofAngle

BIGAL 发表于 2022-7-5 18:31:28

我认为重叠比区域更容易计算和编辑。可以绘制非常复杂的pline,以避免重叠。
 
当天的拼图绘制一个3x3的圆圈网格,用4段1个柱脚连接所有9个圆圈,笔和纸更容易一点,不要把笔举到4行。

Bill Tillman 发表于 2022-7-5 18:33:10

嘿,比加尔,早上好,从美国下来。乔治,我想我有它。。。和LISP。

(defun c:BIGAL ()
(setq origin '(0.0 0.0 0.0)
a90 (dtr 90.)
a270 (dtr 270.)
)
(setvar 'CECOLOR "Yellow")
(command-s "._CIRCLE" origin 0.25 "")
(command-s "._ARRAYRECT" (entlast) "" "COL" 3 3 "R" 3 1.5 "" "")

(setvar 'CECOLOR "Red")
(command-s ".PLINE"
   (polar origin 0 3)
   (polar origin a90 3)
   (polar (polar origin a90 3) 0 4.5)
   (polar origin a270 1.5)
   (polar origin a90 3) "")

(setvar 'CECOLOR "ByLayer")
(command-s "._ZOOM" "E")
(princ)
); end bal

(defun dtr (deg) (* pi (/ deg 180.)))

我只有一个问题。我希望圆心对中心为1.5,但为了实现这一点,我必须将阵列列之间的距离设置为3,而不是1.5???无论如何,这是我的解决方案。和往常一样,看到别人怎么做很酷。

Stefan BMR 发表于 2022-7-5 18:35:34

10

Bill Tillman 发表于 2022-7-5 18:38:51

凉的另一个案例证明,要做到这一点,总有不止一种方法。

BIGAL 发表于 2022-7-5 18:42:46

不错,伙计们,是的,答案是跳出广场思考。和朋友一起在纸上和笔上试试。

Bill Tillman 发表于 2022-7-5 18:44:38

不得不重新审视这一点。就在我认为我已经解决了所有问题的时候,我一直遇到一个“糟糕的DXF代码”错误。我正试图在附图中画出这个形状。它将根据一些输入参数而变化,但现在我只是硬编码一切,以使其工作。到目前为止,我得到的LISP代码是这样的:
11
形状01.dwg

BIGAL 发表于 2022-7-5 18:50:25

第一,你有没有看过“Alssteelmill”的钢厂,它的钢厂有lisps等。
 
第二,你看了“动态块”1角度,并使用了所有相关的细节,改变了正确的大小查找。与平面图等相同

Stefan BMR 发表于 2022-7-5 18:52:26

点#10的y坐标加法不正确。
页: 1 [2]
查看完整版本: 如何连接直线和圆弧Int