乐筑天下

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

[编程交流] 询问纸张大小

[复制链接]

20

主题

257

帖子

237

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 08:43:37 | 显示全部楼层 |阅读模式
很抱歉,术语不好。。。。
 
我想有一个脚本,它可以在图纸空间中插入一个块,但布局中的纸张大小将决定要插入的块。
 
有没有办法在脚本、宏、lisp等文件中询问当前布局的大小?
 
谢谢大家
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:47:59 | 显示全部楼层
你说的版面大小是什么意思?它是一个具有特定纸张大小边框的块吗?
 
塔瓦特
回复

使用道具 举报

20

主题

257

帖子

237

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 08:50:42 | 显示全部楼层
嗨tharwat
不,不是块,而是布局的页面大小。例如,当我进入文件>页面设置管理器时,页面大小为A1。你知道如果你有一个模型图,有几个不同大小的布局-可能有些图纸的页面大小A1,一些A2,一些A3等。
 
我希望有某种方法可以提取当前布局中页面的大小,这样当我插入一个块时,它就适合布局中已经生成的页面大小。
 
我将为A1创建一个块,另一个为A2等创建一个块,并有一个按钮,它做了如下操作:
如果papersize=A1,则插入区块“blockA1”
如果papersize=A2,插入区块“blockA2”
 
谢谢你的帮助
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:55:07 | 显示全部楼层
我懂了。
 
这应该让你开始。。。。
 
  1. (setq lay (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object ))))
  2. (setq papersize (vla-getpapersize lay 'w 'h))
  3. w
  4. h

 
如果你需要帮助,尽管问。
 
塔瓦特
回复

使用道具 举报

20

主题

257

帖子

237

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 08:57:27 | 显示全部楼层
谢谢tharwat
请原谅我的无知,但这是怎么回事?我将其加载为lisp,它返回594.0,这是当前布局的正确高度。顺便说一句,您已经指出,我不需要同时测量高度和宽度,因为只有一个测量值就可以告诉我布局的大小(它们总是横向的)。
 
那么我该如何使用它来选择不同的块呢?我打算用一个简单的脚本,比如
  1. insert
  2. "C:/AUTOCAD FILES/blockA1.dwg"
  3. 0,0,0
  4. 1

 
但是理解“如果”部分会让事情变得更复杂。我会以某种方式将这两个脚本结合起来吗?
 
再次感谢您抽出时间
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:01:50 | 显示全部楼层
如果我能很好地理解你的需求,这应该能帮到你。。
 
不要忘记根据纸张大小和块的插入点更改块的名称。
 
  1. (defun c:TesT (/ papersize Block)(vl-load-com)
  2. ;;; Tharwat 18. Oct. 2011 ;;;
  3. (cond ((not lay)
  4.         (setq lay (vla-get-activelayout
  5.                     (vla-get-activedocument (vlax-get-acad-object))
  6.                   )
  7.         )
  8.        )
  9. )
  10. (setq papersize (vla-getpapersize lay 'w 'h))
  11. (cond ((eq w 210.0)  (setq Block "C:/AUTOCAD FILES/blockA4.dwg"))
  12.        ((eq w 297.0)  (setq Block "C:/AUTOCAD FILES/blockA3.dwg"))
  13.        ((eq w 594.0)  (setq Block "C:/AUTOCAD FILES/blockA2.dwg"))
  14.        ((eq w 841.0)  (setq Block "C:/AUTOCAD FILES/blockA1.dwg"))
  15.        ((eq w 1189.0) (setq Block "C:/AUTOCAD FILES/blockA0.dwg"))
  16. )
  17. (entmakex (list '(0 . "INSERT")
  18.                  (cons 2 Block) ;; Name of Block
  19.                  [color=red](cons 10 '(0. 0. 0.)) ;; Insertion point for the chosen block[/color]
  20.                  '(41 . 1.)
  21.                  '(42 . 1.)
  22.                  '(43 . 1.)
  23.            )
  24. )
  25. (princ)
  26. )
Tharwat
回复

使用道具 举报

20

主题

257

帖子

237

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 09:05:31 | 显示全部楼层
太好了,谢谢。
它看起来正是我想要的。
我会玩它,让你知道!
干杯
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:08:19 | 显示全部楼层
 
 
欢迎你的朋友。
 
听到这个消息我真的很高兴。
 
 
塔瓦特
回复

使用道具 举报

1

主题

23

帖子

22

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:09:23 | 显示全部楼层
大家好。。。看起来不错
 
如果我用另一种方式说。。。需要测量我的布局以设置页面设置。
我们不使用边界,而是使用来自客户的块。。从那时起,我该如何测量轮廓。。。。
 
格里茨·约翰
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:12:30 | 显示全部楼层
约翰,至少你的解释我不清楚。
 
当做
 
塔瓦特
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 07:57 , Processed in 0.557638 second(s), 83 queries .

© 2020-2025 乐筑天下

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