乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 82|回复: 12

[编程交流] 按页面大小绘制矩形

[复制链接]

20

主题

62

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 07:46:03 | 显示全部楼层 |阅读模式
我需要一个lisp将绘制一个矩形根据给定的页面大小(如ISO A4,A3,A1)在横向和纵向格式。请帮帮我。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:55:43 | 显示全部楼层
您可以以此为起点:
  1. ; Draw an ISO Format (04-VII-2012)
  2. (defun c:DISOF( / listSize size poz  )
  3. (if (and (not (initget "A4 A3"))
  4.          (setq size (getkword "\nFormat [A4/A3]: "))
  5.          (not (initget "Portrait Landscape"))
  6.          (setq poz  (getkword "\nPozition [Portrait/Landscape]: ")))
  7. (progn
  8.   (setq listSize (nth (abs (- 4 (atoi (substr size 2))))
  9.                       '((297.0 210.0) (420.0 297.0))))
  10.   (if (= poz "Portrait") (setq listSize (reverse listSize)))
  11.   (command "_RECTANGLE" "_non" '(0.0 0.0) "_non" listSize)
  12. )
  13. )
  14. (princ)
  15. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:59:16 | 显示全部楼层
以下程序将根据布局的当前打印设置绘制指定给当前布局的图纸:
 
  1. (defun c:drawpaper ( / l h w )
  2.    (setq l (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
  3.    (vla-getpapersize l 'w 'h)
  4.    (command "_.rectang" "_non" '(0.0 0.0) "_non"
  5.        (if (member (vla-get-plotrotation l) '(0 2))
  6.            (list w h)
  7.            (list h w)
  8.        )
  9.    )
  10.    (princ)
  11. )
  12. (vl-load-com) (princ)
回复

使用道具 举报

20

主题

62

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 08:03:09 | 显示全部楼层
 
谢谢,这就是我需要的。但如果你能加上A0和A1尺寸,这将非常有用。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:09:34 | 显示全部楼层
我希望你能自己编辑它。提示,请注意需要按A2、A1和A0的顺序添加tem。
回复

使用道具 举报

20

主题

62

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 08:12:21 | 显示全部楼层
O、 我正在试着编辑它。然后我会把它贴在这里。。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:17:01 | 显示全部楼层
很高兴听到这个!这就是精神;祝你好运
回复

使用道具 举报

20

主题

62

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 08:24:41 | 显示全部楼层
 
我试过了。请检查。。
 
  1. (defun c:DISOF( / listSize size poz  )
  2. (if (and (not (initget "A4 A3 A2 A1"))
  3.          (setq size (getkword "\nFormat [A4/A3/A2/A1]: "))
  4.          (not (initget "Portrait Landscape"))
  5.          (setq poz  (getkword "\nPozition [Portrait/Landscape]: ")))
  6. (progn
  7.   (setq listSize (nth (abs (- 4 (atoi (substr size 2))))
  8.                       '((297.0 210.0) (420.0 297.0) (594.0 420.0) ( 841.0 594.0))))
  9.   (if (= poz "Portrait") (setq listSize (reverse listSize)))
  10.   (command "_RECTANGLE" "_non" '(0.0 0.0) "_non" listSize)
  11. )
  12. )
  13. (princ)
  14. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:28:03 | 显示全部楼层
确切地祝贺
 
(请编辑您的上一篇文章,并为代码添加所需的标签。谢谢)
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:33:10 | 显示全部楼层
从纯粹的实际观察来看,这些是实际的板材尺寸,没有通常的15mm框架偏移裕度。如果您尝试将这些尺寸用于画框,则将永远无法使用按所需比例显示的画框绘制图形。
084605azssylilz0wbyl4e.jpg
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 21:44 , Processed in 0.664314 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表