乐筑天下

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

[编程交流] 取消定义命令-什么exa

[复制链接]

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 23:57:05 | 显示全部楼层 |阅读模式
大家好!
 
上周,在其他jdiala的帮助下,我重新定义了plot命令(到ACADDOC.LSP中),以在打印之前验证某些图层的线宽。
以下是上述lisp供参考
  1. (command "undefine" "plot")
  2. (defun C:plot (/ laylist lwlist laytbl)
  3. (setq laylist (list "DIM" "MD_Annotation" "MD_Hatching" "MD_Hidden" "MD_Visible")
  4.      lwlist  (list 9 -3 5 13 -3)
  5.      laytbl  (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  6. )
  7. (mapcar
  8. (function  
  9.    (lambda (a b)
  10.      (if
  11.        (tblsearch "LAYER" a)
  12.        (vla-put-Lineweight (vla-item laytbl a ) b)
  13.        (princ (strcat "\nLayer " (strcase a) " does not exist")) )))
  14.      laylist
  15.      lwlist
  16. )
  17. (princ "\n")
  18. (initdia)
  19. (command "_.plot")
  20. (princ)
  21. )

 
http://www.cadtutor.net/forum/showthread.php?82687-MD_-(viewbase)-层反应器图
 
Lisp程序就像它应该的那样工作。当我打印PDF文件时,PDF文件名已经存在(但未打开,也不是只读),如果我直接打印CAD询问是否要覆盖该文件,我说是,CAD打印,然后在PDF查看器中打开PDF。(正常行为)。如果我预览,退出预览窗口并从绘图窗口点击“ok”,也会发生同样的情况。但是现在,如果我在打印之前点击预览,在预览窗口中我右键单击,然后从右键单击菜单中选择打印,而不是询问我是否要覆盖它,Autocad不会询问任何问题并取消作业(在“单击以查看打印并发布详细信息”弹出窗口中这样说)。
 
如果我不加载acaddoc,行为就会恢复正常。lsp。
从我的角度来看,我认为lisp运行良好,问题可能来自取消定义原始plot命令。我现在不能停止问我的问题是“如果我未定义的plot命令包含超过(initdia)(命令“_.plot”)?
是否有任何方法可以查看原始命令(在本例中为原始Plot命令)的lisp/code?
是否可以以某种方式重新定义任何命令。。危险的
是否有某种方法可以将lisp添加到现有命令中,而不是重新定义以避免出现意外情况?
我曾计划重新定义一些命令,以确保遵循标准而不影响每个人的工作方式(如打印时的线宽控制),但现在我不再确定这是不是可行的方法。
 
如果您对上述问题有任何意见/建议/回答,我们将不胜感激!
 
谢谢
杰夫!
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 00:53:43 | 显示全部楼层
大家早上好!
 
我很惊讶,这个帖子没有答案,我想我会再试一次,把它碰一下!=)
在我看来,vue是最有趣的主题之一(重新定义命令),因为它似乎是添加由命令触发的简单事件处理程序以在所述命令启动之前更改默认行为的最简单方法。
我甚至会说(没有尝试过tho),它似乎也是一种非常容易掌握的替代品,可以替代外观更复杂的反应堆。。
 
重新定义命令是您要做的事情吗?避免这样做?你这样做有什么不好的经历吗?有没有办法确切地知道我们正在定义什么?欢迎你来分享你的想法!
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-6 01:17:37 | 显示全部楼层
早上好
重新定义打印以验证线宽、打印样式,根据需要还原值,重新定义关闭命令以存储一些未保存的变量(如defaultgizmo、hideprecision)。。。这就是我做的事情,我只是想确保我这样做不会造成问题。。
是否可以以某种方式重新定义任何命令。。危险的
重新定义命令是你经常做的事情吗?避免这样做?你这样做有什么不好的经历吗?有没有办法确切地知道我们正在定义什么?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:06 , Processed in 0.585831 second(s), 69 queries .

© 2020-2025 乐筑天下

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