尊敬的各位:,
我很高兴来到这里,因为你们是伟大的支持者。然而,在我写的这个程序中,我寻求你们的建议,以绘制地板下供暖回路。问题是,它只适用于基本坐标,当更改点的位置时,会弹出一个杂乱的图形!
我试图用相对坐标绘制,但失败了,所以。。任何建议。
附上dwg文件以说明程序和
该计划是:
- (defun getinfo ()
- (defun os_off () (setvar "osmode" (logior 16384 (getvar "osmode"))))
- (defun os_on () (setvar "osmode" (logand (~ 16384) (getvar "osmode"))))
- (defun undo_group () (command "undo" "group"))
- (defun undo_end () (command "undo" "end"))
- (undo_group)
- (os_on)
- (setq p01 (getpoint "/ n Pick upper right corner:"))
- (setq p03 (getpoint "/ n Pick opposit corner:"))
- (setq s (getreal "/n Enter traverse<100> mm:"))
- (setq siz (mapcar '- p01 p03))
- (setq p04 (list (car p03) (cadr p01)))
- (setq p02 (list (car p01) (cadr p03)))
- )
- (defun procinfo()
- (setq xm (car siz) ym (cadr siz))
- (setq p1 (list (- xm s) (- ym s)))
- (setq px (fix (/ xm s)))
- (setq py (fix (/ ym s)))
- (setq p2 (list (- (car p02) s) (- s (cadr p03))))
- (setq p3 (list (- s (car p04)) (- s (cadr p03))))
- (setq p4 (list (- s (car p04)) (- (cadr p04) S)))
- (setq p5 (list (- (car p01) (* 3 s)) (- (cadr p04) S)))
- (setq p6 (list (- (car p02) (* 3 s)) (- (* 3 s) (cadr p03))))
- (setq p7 (list (- (* s 3) (car p04)) (- (* 3 s) (cadr p03))))
- (setq p8 (list (- (* 3 s) (car p04)) (- (cadr p04) (* 3 S))))
- (setq p9 (list (- xm (* 5 s)) (- ym (* 3 s))))
- (setq p10 (list (- (car p02) (* 5 s)) (- (* 5 s) (cadr p03))))
- (setq p11 (list (- (* 5 s) (car p03)) (- (* 5 s) (cadr p03))))
- (setq p12 (list (- (* 5 s) (car p04)) (- (cadr p04) (* 5 S))))
- (setq p13 (list (- xm (* 7 s)) (- ym (* 5 s))))
- (setq p14 (list (- (car p01) (* s 7)) (- (* 7 s) (cadr p02))))
- (setq p15 (list (- (* 7 s) (car p04)) (- (* 7 s) (cadr p03))))
- (setq p16 (list (- (* s 7) (car p04)) (- (cadr p04) (* 7 S))))
- (setq p17 (list (- xm (* 9 s)) (- ym (* 7 s))))
- (setq p18 (list (- (car p02) (* 9 s)) (- (* 9 s) (cadr p03))))
- (setq p19 (list (- (* 9 s) (car p04)) (- (* 9 s) (cadr p03))))
- (setq p20 (list (- (* 9 s) (car p04)) (- (cadr p04) (* 9 S))))
- (setq P21 (list (- xm (* 11 s)) (- ym (* 9 s))))
- (setq p22 (list (- (car p02) (* 11 s)) (- (* 11 s) (cadr p03))))
- (setq P23 (list (- (* 12 s) (car p04)) (- (* 11 s) (cadr p03))))
- (setq P24 (list (- (* s 12) (car p04)) (- (cadr p04) (* 10 S))))
- (setq P25 (list (- (* s 10) (car p04)) (- (cadr p04) (* 10 S))))
- (setq p26 (list (- (* s 10) (car p04)) (- (cadr p04) (* 20 S))))
- (setq p27 (list (- (car p02) (* s 10)) (- (cadr p04) (* 20 S))))
- (setq p28 (list (- (car p02) (* s 10)) (- (cadr p04) (* 8 S))))
- (setq p29 (list (- (* s (car p03)) (- (cadr p04) (* 8 S))))
- (setq p30 (list (- (* s 8 ) (car p03)) (- (* 8 S) (cadr p03))))
- (setq p31 (list (- (car p02) (* 8 s ) (- (* 8 S) (cadr p03))))
- (setq p32 (list (- (car p02) (*8 s ) (- (cadr p01) (* 6 S))))
- (setq p33 (list (- (* s 6) (car p04)) (- (cadr p01) (* 6 S))))
- (setq p34 (list (- (* s 6) (car p04)) (- (* 6 S) (cadr p03))))
- (setq p35 (list (- (car p02) (* s 6)) (- (* 6 S) (cadr p03))))
- (setq p36 (list (- (car p02) (* s 6)) (- (cadr p01) (* 4 S))))
- (setq p37 (list (- (* s 4) (car p04)) (- (cadr p01) (* 4 S))))
- (setq p38 (list (- (* s 4) (car p03)) (- (* 4 S) (cadr p03))))
- (setq p39 (list (- (car p02) (* s 4)) (- (* 4 S) (cadr p03))))
- (setq p40 (list (- (car p02) (* s 4)) (- (cadr p01) (* 2 S))))
- (setq p41 (list (- (* s 2) (car p04)) (- (cadr p01) (* 2 S))))
- (setq p42 (list (- (* s 2) (car p04)) (- (* 2 S) (cadr p03))))
- (setq p43 (list (- (car p02) (* s 2)) (- (* 2 S) (cadr p03))))
- (setq p44 (list (- (car p02) (* s 2)) (- (cadr p01) (* 1 S))))
- )
- (defun output()
- (command "pline" @ p1 p2 p3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 P16 P17 P18 P19 P20 P21
- P22 P23 P24 p25 p26 p27 p28 p29 p30 p31 p32 p33 p34 p35 p36 p37 p38 p39 p40 p41 p42 p43 p44"")
- (command "fillet" "radius" 100)
- (command "fillet" "p" "last")
- )
- (defun c:cre()
- (getinfo)
- (procinfo)
- (output)
- )
环图纸 |