乐筑天下

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

[编程交流] 绘图反应堆

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 12:18:55 | 显示全部楼层 |阅读模式
我的办公室里主要有A1版的图纸。然而,我们确实在A3处绘制图纸,用于报告等。我有一个动态块设置,可以选择图纸的比例和纸张尺寸,例如1:2500@A1.我发现,他们创建了一个vp的副本,然后用修正的比例将动态块更改为A3。我认为这是一场灾难。如果他们需要对图纸空间中的任何内容进行更改,而忘记对A3进行更改,或者反过来,我们可能会对图纸中的差异持开放态度,从而提出索赔。
 
当使用页面设置为A1或A3设置绘图设置时,是否可以设置反应器,以调整比例以适应。我正试图让这一切自动化,以阻止那些家伙把事情搞得一团糟。
 
非常感谢您的帮助!!
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 12:24:43 | 显示全部楼层
任何人对此有任何想法:(
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:30:52 | 显示全部楼层
对不起,我很难理解你想做什么:
根据页面设置是否设置为A1或A3,是否要缩放特定块或更改打印比例?你想如何整合反应堆?
如果更改了打印比例(在活动布局上):
  1. ; Change plot scale based on papersize
  2. (defun c:changeScale (/ actLay papSize)
  3. (setq actLay (vla-get-activelayout (vla-get-activedocument
  4.                                                   (vlax-get-acad-object)))
  5.    papSize (vla-get-CanonicalMediaName actLay))
  6. (Cond ((eq papSize "A1")
  7.     (vla-put-StandardScale actLay acVpCustomScale)
  8.     (vla-setcustomscale actLay 1 2500)
  9.     )
  10.    ((eq papSize "A3")
  11.     (vla-put-StandardScale actLay acVpCustomScale)
  12.     (vla-setcustomscale actLay 1 1250)
  13.     )
  14.    )
  15. )
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:34:06 | 显示全部楼层
在Alan(修改后的)Plot反应堆程序中:
  1. ;;; ------------------------------------------------------------------------
  2. ;;;    PlotSheetScaleReactor.lsp v1.0
  3. ;;;    (PlotSheetCountReactor modified by SK)
  4. ;;;
  5. ;;;    Copyright© 10.02.09
  6. ;;;    Alan J. Thompson (alanjt)
  7. ;;;    alanjt
  8. ;;;
  9. ;;;    Permission to use, copy, modify, and distribute this software
  10. ;;;    for any purpose and without fee is hereby granted, provided
  11. ;;;    that the above copyright notice appears in all copies and
  12. ;;;    that both that copyright notice and the limited warranty and
  13. ;;;    restricted rights notice below appear in all supporting
  14. ;;;    documentation.
  15. ;;;
  16. ;;;    The following program(s) are provided "as is" and with all faults.
  17. ;;;    Alan J. Thompson DOES NOT warrant that the operation of the program(s)
  18. ;;;    will be uninterrupted and/or error free.
  19. ;;;
  20. ;;;
  21. ;;;    Revision History:
  22. ;;;
  23. ;;; ------------------------------------------------------------------------
  24. (vl-load-com)
  25. ;; activate reactor
  26. (or PlotSheetScale:Reactor
  27.    (setq PlotSheetScale:Reactor
  28.           (vlr-command-reactor
  29.             nil
  30.             '((:vlr-commandWillStart . PlotSheetScale:Procedure)
  31.              )
  32.           ) ;_ vlr-command-reactor
  33.    ) ;_ setq
  34. ) ;_ or
  35. ;; procedure
  36. (defun PlotSheetScale:Procedure (#Call #Info / actLay papSize)
  37. (cond
  38.    ((wcmatch (strcase (car #Info)) "*PLOT*")
  39.     (setq actLay (vla-get-activelayout (vla-get-activedocument
  40.                      (vlax-get-acad-object)))
  41.       papSize (vla-get-CanonicalMediaName actLay))
  42.     (Cond ((eq papSize "A1")
  43.        (vla-put-StandardScale actLay acVpCustomScale)
  44.        (vla-setcustomscale actLay 1 2500)
  45.        )
  46.       ((eq papSize "A3")
  47.        (vla-put-StandardScale actLay acVpCustomScale)
  48.        (vla-setcustomscale actLay 1 1250)
  49.        )
  50.       )
  51.     )
  52. ) ;_ cond
  53. ) ;_ defun
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 12:35:41 | 显示全部楼层
我会尽量解释得更好一点。我想做的和你说的相反。基本上,我有一个A1模板设置的图纸,因为这是我们主要用于我们的图纸大小。我有一个页面设置,用于打印到A1的绘图仪。这一切都很好。但是当我们需要在报告的背面或类似的地方绘制一张A3的图时,问题就出现了。这些家伙最近一直在这里做很多事情,直到我发现是复制布局并在布局名称的末尾添加A3。然后,他们将改变我创建的动态块的比例,该块链接到比例尺,以读取A3。然后,他们将使用A1到A3设置的页面设置。问题是他们正在复制图纸,因此如果必须进行更改,那么在一些复制的布局中肯定会错过。
 
无论如何,我要的是一个绘图反应堆,将允许使用一个布局。如果有人想在A3上打印,那么他们选择A1到A3页面设置,这会将打印比例更改为1:2。然后我想改变动态比例尺块的可视性状态来反映这一点。
 
听起来很复杂,我知道。。。。。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:42:46 | 显示全部楼层
英雄联盟
我认为你已经删除了所有组成这个阴谋的东西。你可以从中删除我的所有信息。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 12:45:18 | 显示全部楼层
对不起,我不明白
回复

使用道具 举报

14

主题

271

帖子

257

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 12:49:44 | 显示全部楼层
尽管如此,我复制了你的作品,所以我想我会把它都保存在那里
 
对不起,woodman,我正试图以一步一步的形式思考您想要的lisp(因为这就是代码):
[列表=1]
  • 当有人去绘图时,你希望反应堆调用lisp。
  • 此lisp将检查页面设置是A1还是A3?
  • 然后将A3的绘图比例更改为1:2,并且??对于A1?
  • 它还将缩放动态块(在这种情况下,我需要块名等-我知道如何缩放块,但我不确定如何缩放动态块-这可能超出我的想象,其他人可以随意插手)。
    这接近你想要的吗?在这种情况下,我在上一篇文章中尝试为你做1-3,这只是我没有做的方块比例。
  • 回复

    使用道具 举报

    54

    主题

    3755

    帖子

    3583

    银币

    后起之秀

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

    铜币
    438
    发表于 2022-7-6 12:53:17 | 显示全部楼层
     
    不用担心,我很感激。
    回复

    使用道具 举报

    145

    主题

    590

    帖子

    446

    银币

    中流砥柱

    Rank: 25

    铜币
    725
    发表于 2022-7-6 12:57:47 | 显示全部楼层
    SteveK,
    我希望我能让别人理解我的意思,所以请宽容我。我们有一个用于A1图纸的大幅面HP绘图仪。我们的大多数图纸都是以A1格式创建的,因为这是最有可能用于打印的格式。
    我们还有一台HP A3/A4激光打印机。我为打印机和绘图仪创建了不同的页面设置。如果您选择A1,则它将大幅面绘图仪的所有打印设置设置为A1打印,因此打印比例设置为1等。如果您选择页面设置以A3打印图形(正如我们经常对报告等所做的那样),则所有这些设置都设置为1:2等打印比例。
     
    我希望做的是得到一个反应器,它检测到我已经选择了要绘制在A1或A3上的图纸,并设置一个动态块来指示A1或A3。但也可以采用1:500的比例,如果绘图比例为1:2,则将动态块中的比例减半为1:250。
     
    我希望这能解释。。。。
    谢谢
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-5 05:57 , Processed in 0.509205 second(s), 72 queries .

    © 2020-2025 乐筑天下

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