hyx123 发表于 2021-12-22 09:08:49

autolisp精确绘制多段线

(defun c:cv ()
(setvar "cmdecho" 0)
(drawjz)
(drawjj)
(prin1)
)
;井座
(defun drawjz()
(command "_-view" "o" "f")
(setq p1 '(0 0 0))
(setq p2 (polar p1 0 35.5))
(setq p3 (polar p2 (/ pi 2) 8))
(setq p4 (polar p3 (/ pi 2) 8))
(setq p5 (polar p4 pi 6))
(setq p6 (polar p5 (/ pi 2) 65))
(setq p7 (polar p6 pi 12))
(setq p8 (polar p5 pi 12))
(setq p9 (polar p8 pi 17.5))
(command "pline" p1 p2 p3 p5 p6 p7 p8 p9 "c")
(setq jz (entlast))
(command "revolve" jz "" p1 p9 "360")
)
;井架
(defun drawjj()

(setq j1 '(19.5 0 0))
(setq j2 (polar j1 (/ pi 2) 2.2))
(setq j3 (polar j2 0 2.89))
(setq j4 (polar j3 (* 0.75 pi) 1))
(setq j5 (polar j4 0 0.11))
(setq j6 (polar j5 0 2.1))
(setq j7 (polar j6 (* 0.75 pi) 0.3))
(setq j8 (polar j7 (* 0.75 pi) 0.9))
(command "pline" j5 j7 j8 "")
)

后边井架部分总是不出来,不知道哪出问题了,请大神给看看,给跪了:'(

mahuan1279 发表于 2021-12-22 09:23:53

点位之间的位置关系正确吗?你期望的结果图是啥样?

start4444 发表于 2021-12-22 09:33:04

要关捕捉      

hyx123 发表于 2021-12-22 09:50:35

mahuan1279 发表于 2021-12-22 09:23
点位之间的位置关系正确吗?你期望的结果图是啥样?


hyx123 发表于 2021-12-22 09:50:55

start4444 发表于 2021-12-22 09:33
要关捕捉

好的,我试试

hyx123 发表于 2021-12-22 09:53:15

hyx123 发表于 2021-12-22 09:50
好的,我试试

没管用,我再想想别的方法吧,谢谢您了

hyx123 发表于 2021-12-22 09:57:55

mahuan1279 发表于 2021-12-22 09:23
点位之间的位置关系正确吗?你期望的结果图是啥样?
这个我不会发图片,就是lisp画多段线,是不是不能很精确?前边井座部分的全是整数就能显示

hyx123 发表于 2021-12-22 10:01:34

hyx123 发表于 2021-12-22 09:57
这个我不会发图片,就是lisp画多段线,是不是不能很精确?前边井座部分的全是整数就能显示

我先检查一遍吧,我感觉有的位置关系写错了

菜卷鱼 发表于 2021-12-24 11:12:16

用entmake 最好
;;;画PL线,bool=T闭合,bool=nil 不闭合
(defun lwpolymaker (lst BOOL / COMB)
(if bool
    (setq comb 1)
    (setq comb 0)
)
(entmakex (append (list '(0 . "LWPOLYLINE")
                          '(100 . "AcDbEntity")
                          '(100 . "AcDbPolyline")
                          '(62 . 0)
                          (cons 90 (length lst))
                          (cons 70 comb)
                  )
                  (mapcar '(lambda (pt) (cons 10 pt)) lst)
          )
)
)

hyx123 发表于 2021-12-27 09:20:39

菜卷鱼 发表于 2021-12-24 11:12
用entmake 最好
;;;画PL线,bool=T闭合,bool=nil 不闭合
(defun lwpolymaker (lst BOOL / COMB)


好的,我试试,谢谢了
页: [1] 2
查看完整版本: autolisp精确绘制多段线