乐筑天下

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

[编程交流] 反应堆文件已打开!?

[复制链接]

33

主题

73

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
165
发表于 2022-7-6 14:55:39 | 显示全部楼层 |阅读模式
以下代码应在文件打开、保存和关闭时发出警报。Save和Close可以正常工作,但beginOpen-EndOpen什么都不做。有没有在文件打开时工作的反应堆?我有Autocad 2008。
 
  1. [font=Arial][size=2][font=Arial][size=2][font=Courier New][size=2](defun add-reactors( / )
  2. (vlr-dwg-reactor nil '(
  3.                          (:vlr-beginClose . beginCloseCallback)
  4.                          (:vlr-beginDwgOpen . beginOpenCallback)
  5.                          (:vlr-endDwgOpen . endOpenCallback)
  6.                          (:vlr-beginSave . beginSaveCallback)
  7.                          (:vlr-saveComplete . saveCompleteCallback)
  8.                        )
  9. )
  10. )[/size][/font][/size][/font][font=Arial][size=2][font=Courier New][size=2](defun beginCloseCallback(ro args / )
  11. (princ"\n=====>Aktuelle Zeichnung wird geschlossen")
  12. (princ "\nTaste drücken\n")
  13. (read-char)
  14. (princ)
  15. )[/size][/font][/size][/font]
  16. [font=Arial][size=2][font=Courier New][size=2]
  17. (defun beginOpenCallback(ro args / )
  18. (princ(strcat "\n=====>Zeichnung " (car args) " soll geöffnet werden"))
  19. (princ)
  20. )[/size][/font][/size][/font]
  21. [font=Arial][size=2][font=Courier New][size=2](defun endOpenCallback(ro args / )
  22. (princ(strcat "\n=====>Zeichnung " (car args) " wurde geöffnet"))
  23. (princ)
  24. )[/size][/font][/size][/font]
  25. [font=Arial][size=2][font=Courier New][size=2](defun beginSaveCallback(ro args / )
  26. ;(princ(strcat "\n=====>Aktuelle Zeichnung soll als " (car args) " gespeichert werden"))
  27. (princ(type(car args)))  (terpri)
  28. (princ)
  29. )[/size][/font][/size][/font]
  30. [font=Arial][size=2][font=Courier New][size=2](defun saveCompleteCallback(ro args / )
  31. ;(princ(strcat "\n=====>Aktuelle Zeichnung wurde als " (car args) " gespeichert"))
  32. (princ(type(car args))) (terpri)[/size][/font][/size][/font]
  33. [font=Arial][size=2][font=Courier New][size=2]  (princ "\nTaste drücken\n")
  34. (read-char)
  35. (princ)
  36. )[/size][/font][/size][/font]
  37. [font=Arial][size=2][font=Courier New][size=2]; one shot by load
  38. (add-reactors[/size][/font][/size][/font]
  39. [/size][/font]
回复

使用道具 举报

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 15:21:44 | 显示全部楼层
确保它是持久的反应器,并确保回调函数在startapp加载,但当转移到其他电脑时,你必须先加载回调函数,它才能工作。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:37:58 | 显示全部楼层
 
Wizman,简单介绍一下——持久反应堆和瞬态反应堆之间的区别是什么?
回复

使用道具 举报

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 15:42:29 | 显示全部楼层
持久性反应堆仍在图纸中。reactor对象可以通过函数持久化(vlr pers reactor object)。一旦持久化,反应器会自动加载自身,因为它嵌入到反应器持久化字典中。因此无需再次加载。
 
瞬态电抗器是正常的默认类型的电抗器,一旦图纸关闭,它就不再起作用。
 
但是回调函数(在事件上运行的lisp)不会自动加载,除非加载到启动套件或acaddoc中。lsp。我还没有见过一个回调函数没有在starup或(load)函数中使用start就可以正常工作。但可以通过扩展数据、ldata、xrecord或注册表来嵌入回调。但仍然缺少一个阅读功能。但是,也许回叫功能也可以像dict中保存反应堆一样保存和加载。也许有人可以提供缺失的链接。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:00:13 | 显示全部楼层
 
感谢Wizman的澄清-有趣的东西
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 20:58 , Processed in 0.364700 second(s), 62 queries .

© 2020-2025 乐筑天下

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