乐筑天下

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

[编程交流] Can#039;没有发现问题

[复制链接]

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 18:16:35 | 显示全部楼层 |阅读模式
你好
我正在尝试修改我经常使用的lisp:
  1. ;PLOT WITH ONE CLICK - PREDEFINE SETTINGS and PICK OBJECTS (FRAME) RECTANGLE
  2. (defun c:VLD_PLT-REC2 (/ ss SHEETSIZE mn mx PSC FILENAME)
  3.    (vl-load-com)
  4. ;REDEFINE SHEETSIZE:
  5.                            (progn (initget "A4 A3 A2 A1 A0")
  6.                            (setq SHEETSIZE (getkword "\nChoose [A4/A3/A2/A1/A0] <A4>: "))
  7.                            (if (null SHEETSIZE)
  8.                                (setq SHEETSIZE "A4")
  9.                            )
  10.                            (cdr
  11.                                (assoc SHEETSIZE
  12.                                       '(
  13.                                         ("A4" . "ISO full bleed A4 (297.00 x 210.00 MM)")
  14.                                         ("A3" . "ISO full bleed A3 (420.00 x 297.00 MM)")
  15.                                         ("A2" . "ISO full bleed A2 (594.00 x 420.00 MM)")
  16.                                         ("A1" . "ISO full bleed A1 (841.00 x 594.00 MM)")
  17.                                         ("A0" . "ISO full bleed A0 (841.00 x 1189.00 MM)")
  18.                                        )
  19.                                )
  20.                            )
  21.                     )
  22. ;REDEFINE ORIENTATION Landscape/Portrait
  23. (progn (initget "Landscape Portrait")
  24. (setq OR-LP (getkword "\nChoose [Landscape/Portrait] <Landscape>: "))
  25. (if (null OR-LP)
  26. (setq OR-LP "Landscape")
  27. )
  28. )
  29. ;REDEFINE PLOTSCALE:
  30. (progn (setq PSC (getstring "\nINPUT PLOT SCALE (X=XXX/FIT) <FIT> :"))
  31. (if (eq PSC "")
  32. "FIT"
  33. PSC
  34. )
  35. )
  36. ;Pick object, type name and plot:
  37.    (while (setq ss (ssget "_:S:E" '((0 . "INSERT,LWPOLYLINE"))))
  38.        (progn
  39.            (vla-getboundingbox (vlax-ename->vla-object (ssname ss 0)) 'mn 'mx)
  40.     (command "PLOTTRANSPARENCYOVERRIDE" "2")
  41.            (command "plot"
  42.                     "yes"
  43.                     "model"
  44.                     "DWG To PDF.pc3"
  45.                     SHEETSIZE
  46.                     "Millimeters"
  47.                     OR-LP
  48.                     "no"
  49.                     "Window"
  50.                     (trans (vlax-safearray->list mn) 0 1)
  51.                     (trans (vlax-safearray->list mx) 0 1)
  52.              PSC
  53.                     "Center"
  54.                     "Y"
  55.                     "BLACK-GRAY-WHITE.ctb"
  56.                     "Y"
  57.                     "As displayed"
  58.                     (progn (setq FILENAME (getstring T "\nNAME OF THE FILE <ASD>:"))
  59.                            (if (eq FILENAME "")
  60.                                "ASD"
  61.                                FILENAME
  62.                            )
  63.                     )
  64.                     "Y"
  65.                     "Y"
  66.            )
  67.        )
  68.    )
  69.    (princ)
  70. )

但我不知道在“选择对象,键入名称和绘图”之后有什么问题。
有人能帮我吗?提前谢谢!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:41:37 | 显示全部楼层
尝试以下操作-我还没有测试过:
  1. ;PLOT WITH ONE CLICK - PREDEFINE SETTINGS and PICK OBJECTS (FRAME) RECTANGLE
  2. (defun c:VLD_PLT-REC2 ( / fnm mn mx or-lp psc pto sht ss )
  3.    (initget "A4 A3 A2 A1 A0")
  4.    (setq sht
  5.        (cdr
  6.            (assoc (cond ((getkword "\nChoose [A4/A3/A2/A1/A0] <A4>: ")) ("A4"))
  7.               '(
  8.                    ("A4" . "ISO full bleed A4 (297.00 x 210.00 MM)")
  9.                    ("A3" . "ISO full bleed A3 (420.00 x 297.00 MM)")
  10.                    ("A2" . "ISO full bleed A2 (594.00 x 420.00 MM)")
  11.                    ("A1" . "ISO full bleed A1 (841.00 x 594.00 MM)")
  12.                    ("A0" . "ISO full bleed A0 (841.00 x 1189.00 MM)")
  13.                )
  14.            )
  15.        )
  16.    )
  17.    (initget "Landscape Portrait")
  18.    (setq OR-LP (cond ((getkword "\nChoose [Landscape/Portrait] <Landscape>: ")) ("Landscape")))
  19.    
  20.    (if (= "" (setq PSC (getstring "\nINPUT PLOT SCALE (X=XXX/FIT) <FIT> :")))
  21.        (setq PSC "FIT")
  22.    )
  23.    (if (setq pto (getvar 'plottransparencyoverride))
  24.        (setvar 'plottransparencyoverride 2)
  25.    )
  26.    (while (setq ss (ssget "_:S:E" '((0 . "INSERT,LWPOLYLINE"))))
  27.        (vla-getboundingbox (vlax-ename->vla-object (ssname ss 0)) 'mn 'mx)
  28.        (command "_.-plot" "_Y" "Model" "DWG To PDF.pc3" sht "_M" OR-LP "_N" "_W"
  29.            (trans (vlax-safearray->list mn) 0 1)
  30.            (trans (vlax-safearray->list mx) 0 1)
  31.            PSC "_C" "_Y" "BLACK-GRAY-WHITE.ctb" "_Y" "_A"
  32.            (if (= "" (setq fnm (getstring t "\nNAME OF THE FILE <ASD>:"))) "ASD" fnm)
  33.            "_Y" "_Y"
  34.        )
  35.    )
  36.    (if pto (setvar 'plottransparencyoverride pto))
  37.    (princ)
  38. )
  39. (vl-load-com) (princ)
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 19:13:00 | 显示全部楼层
哇!李,你的日常工作进展得很快!
我的猜测是使用VLA的好处。
谢谢你!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:27:47 | 显示全部楼层
不客气,我很高兴它对你有用。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:31 , Processed in 0.524268 second(s), 60 queries .

© 2020-2025 乐筑天下

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