按页面大小绘制矩形
我需要一个lisp将绘制一个矩形根据给定的页面大小(如ISO A4,A3,A1)在横向和纵向格式。请帮帮我。 您可以以此为起点:; Draw an ISO Format (04-VII-2012)
(defun c:DISOF( / listSize size poz)
(if (and (not (initget "A4 A3"))
(setq size (getkword "\nFormat : "))
(not (initget "Portrait Landscape"))
(setq poz(getkword "\nPozition : ")))
(progn
(setq listSize (nth (abs (- 4 (atoi (substr size 2))))
'((297.0 210.0) (420.0 297.0))))
(if (= poz "Portrait") (setq listSize (reverse listSize)))
(command "_RECTANGLE" "_non" '(0.0 0.0) "_non" listSize)
)
)
(princ)
) 以下程序将根据布局的当前打印设置绘制指定给当前布局的图纸:
(defun c:drawpaper ( / l h w )
(setq l (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
(vla-getpapersize l 'w 'h)
(command "_.rectang" "_non" '(0.0 0.0) "_non"
(if (member (vla-get-plotrotation l) '(0 2))
(list w h)
(list h w)
)
)
(princ)
)
(vl-load-com) (princ)
谢谢,这就是我需要的。但如果你能加上A0和A1尺寸,这将非常有用。 我希望你能自己编辑它。提示,请注意需要按A2、A1和A0的顺序添加tem。 O、 我正在试着编辑它。然后我会把它贴在这里。。 很高兴听到这个!这就是精神;祝你好运
我试过了。请检查。。
(defun c:DISOF( / listSize size poz)
(if (and (not (initget "A4 A3 A2 A1"))
(setq size (getkword "\nFormat : "))
(not (initget "Portrait Landscape"))
(setq poz(getkword "\nPozition : ")))
(progn
(setq listSize (nth (abs (- 4 (atoi (substr size 2))))
'((297.0 210.0) (420.0 297.0) (594.0 420.0) ( 841.0 594.0))))
(if (= poz "Portrait") (setq listSize (reverse listSize)))
(command "_RECTANGLE" "_non" '(0.0 0.0) "_non" listSize)
)
)
(princ)
) 确切地祝贺
(请编辑您的上一篇文章,并为代码添加所需的标签。谢谢) 从纯粹的实际观察来看,这些是实际的板材尺寸,没有通常的15mm框架偏移裕度。如果您尝试将这些尺寸用于画框,则将永远无法使用按所需比例显示的画框绘制图形。
页:
[1]
2