乐筑天下

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

[编程交流] 没有LISP测试t的经验

[复制链接]

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:01:47 | 显示全部楼层 |阅读模式
就在几分钟前,我找到了这组VBA和Lisp代码来指定命名页面设置。然而,它总是向我返回错误:
 
(P设置“PDF分类账”);错误:无函数定义:PSETUP
 
这是我找到的箱子,有人能帮我吗?
 
  1. Dim PageSetup As String
  2. PageSetup = """LargeDoc 24x36{24x36}""": ThisDrawing.SendCommand "(psetup " & PageSetup & ") "
  3. Heres the Lisp code:
  4. ALL CREDITS OF THE LISP HAVE REMAINED.
  5. ; Jason Piercey . May 16th, 2003
  6. ; assign a pagesetup to a layout
  7. ; [layout] - string, layout name
  8. ; [setup] - string, pagesetup to assign
  9. ; return: T or nil
  10. ; modified by chris castelein 10-31-05
  11. ; to pass paper size as an argument.
  12. ; original prompt code left in and remarked out.
  13. (defun putPagesetup (layout setup / layouts plots)
  14. (defun item-p (collection item)
  15. (if
  16. (not
  17. (vl-catch-all-error-p
  18. (vl-catch-all-apply
  19. '(lambda () (setq item (vla-item collection item))))))
  20. item
  21. )
  22. )
  23. (and
  24. (or *acad* (setq *acad* (vlax-get-acad-object)))
  25. (or *doc* (setq *doc* (vla-get-activedocument *acad*)))
  26. (setq layouts (vla-get-layouts *doc*))
  27. (setq plots (vla-get-plotconfigurations *doc*))
  28. (setq layout (item-p layouts layout))
  29. (setq setup (item-p plots setup))
  30. (not (vla-copyfrom layout setup))
  31. )
  32. )
  33. (defun massoc (key alist / x nlist)
  34. (foreach x alist
  35. (if (eq key (car x))
  36. (setq nlist (cons (cdr x) nlist))
  37. )
  38. )
  39. (reverse nlist)
  40. )
  41. ; Return: list of all pagesetups defined in the current drawing or nil
  42. (defun getPagesetups ()
  43. (massoc 3 (dictsearch (namedobjdict) "Acad_PlotSettings"))
  44. )
  45. ; Jason Piercey . May 19th, 2003
  46. ; assign pagesetup to layout(s)
  47. ; LIMITED testing
  48. ; written for Shawn McDonald
  49. (defun psetup (page / lst res)
  50. (setq lst (mapcar 'strcase (getPagesetups)))
  51. (while (not page)
  52. ;(setq page (strcase (getstring T "\nspecify pagesetup to apply: ")))
  53. (if (or (= "" page) (not (member page lst)))
  54. (progn (princ "\npagesetup not found") (setq page nil))
  55. )
  56. )
  57. (initget "All Current")
  58. ;(if(not(setq res (getkword "\n[All/Current]apply pagesestup to which layout(s) <all>: ")))
  59. ;(setq res "All")
  60. (setq res "Current")
  61. (if (= "All" res)
  62. (foreach x (vl-remove "Model" (layoutlist)) (putPagesetup x page))
  63. (putPagesetup (getvar "ctab") page)
  64. )
  65. (princ "\nFinished")
  66. (princ)
  67. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:38:11 | 显示全部楼层
PSETUP的定义可以在摘录中找到,但在VBA调用时似乎没有加载。尝试将AutoLISP代码添加到您的启动套件中;然后,在那里定义的功能将在每个图形中可用。
请注意,从VBA调用AutoLISP例程可能非常棘手。
回复

使用道具 举报

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:48:23 | 显示全部楼层
问题是我甚至不知道怎么做。请帮帮我。我甚至不知道如何从命令栏调用该函数。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 09:06:36 | 显示全部楼层
请查看这些教程(由Lee Mac编写):
[列表]
  • 如何运行AutoLISP程序
  • 自动加载程序
    [/列表]
  • 回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-7-8 23:23 , Processed in 0.974602 second(s), 71 queries .

    © 2020-2025 乐筑天下

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