乐筑天下

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

[编程交流] 电子传递lisp

[复制链接]

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 10:47:02 | 显示全部楼层 |阅读模式
大家好,我收到了一个电子传递Lisp程序,但我有一个问题。
a) 。我找不到运行lisp的命令提示符
b) 。我不确定Lisp程序在整个过程中做了什么。
 
我希望它做的是创建一个电子传递。压缩文件并放在原始文件旁边。然后分离x参照
 
我在调色板上创建了一个按钮,用于分离所有工作正常的x-Ref-xr D*。但如果能用Lisp程序同时做到这两件事,那就太好了。有人有这样的Lisp程序吗?
 
  1. ;***SCRIPTABLE ETRANSMIT
  2. (apply
  3. '(lambda ()
  4. (SETVAR "CMDECHO" 0)
  5. (COMMAND "QSAVE" )
  6. ;;;*-----------------------------------------------------------
  7. (COMMAND "LAYER" "UNLOCK" "*" "")
  8. (COMMAND "TILEMODE" "0" )
  9. (COMMAND "pspace" )
  10. (command "LAYER" "t" "VIEWPORT" "u" "*" "m" "VIEWPORT" "c" "8" "VIEWPORT" "T" "0" "S" "0" "")
  11. (if(="Model" (getvar "ctab"))
  12. (setq XX1 (ssget "_X" '((0 . "viewport"))))
  13. (progn
  14. (foreach mb (vl-remove "Model"(layoutlist))
  15. (setvar "ctab" mb)
  16. (setvar "psltscale" 1)
  17. (setvar "ltscale" 1)
  18. (setq XX1 (ssget "_X" '((0 . "viewport"))))
  19. (command "-vports" "lock" "off" xx1 ""))))
  20. ;;;*-----------------------------------------------------------
  21. (defun removexref (xrefname / blkname)
  22. (if (setq blkname (tblsearch "block" xrefname))
  23. (if (= (cdr (assoc 70 blkname)) 12)
  24. (command ".xref" "d" xrefname)
  25. )
  26. )
  27. (princ)
  28. )
  29. (defun remove-unloaded-xrefs ()
  30. (vlax-for block (vla-get-blocks
  31. (vla-get-activedocument
  32. (vlax-get-acad-object)))
  33. (if (and (= :vlax-true (vla-get-isxref block))
  34. (= 0 (vla-get-count block))
  35. )
  36. (vla-detach block)
  37. )
  38. )
  39. )
  40. (apply
  41. '(lambda ()
  42. (remove-unloaded-xrefs)
  43. (princ)
  44. )
  45. '()
  46. )
  47. ;;;*-----------------------------------------------------------
  48. (defun TODAY ( / d yr mo da)
  49. (setq d (rtos (getvar "CDATE") 2 6)
  50. yr (substr d 3 2)
  51. mo (substr d 5 2)
  52. DAY (substr d 7 2)
  53. );setq
  54. (strcat yr mo DAY)
  55. );defun
  56. ;;;*-----------------------------------------------------------
  57. (defun NOW ( / d hr mi se)
  58. (setq d (rtos (getvar "CDATE") 2 6)
  59. hr (substr d 10 2)
  60. mi (substr d 12 2)
  61. se (substr d 14 2)
  62. );setq
  63. (strcat hr mi se)
  64. );defun
  65. ;;;*-----------------------------------------------------------
  66. (SETQ CPFIX (getvar "dwgprefix"))
  67. (SETQ CDNAM (getvar "dwgNAME"))
  68. (SETQ NDIR (STRCAT "eTran-" (today) "/" ))
  69. (vl-mkDir (strcat CPFIX NDIR ))
  70. ;;;*-----------------------------------------------------------
  71. (SETQ NFNAME (strcat (vl-filename-base (getvar "dwgname")) "-" (today) (NOW) ))
  72. ;;;*------------------------------------------------------------
  73. (command "saveas" "2004" (strcat (getvar "dwgprefix") NDIR NFNAME ".dwg"))
  74. ;;;*------------------------------------------------------------
  75. (command "ETRANSMIT" "CH" "ETRANS" "C" (strcat (getvar "dwgprefix") NFNAME ))
  76. ;;;*------------------------------------------------------------
  77. (COMMAND "QSAVE" )
  78. ;;;*------------------------------------------------------------
  79. (princ)
  80. )
  81. '()
  82. )

 
谢谢
 
米尔西
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 10:51:56 | 显示全部楼层
_-电子传递
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 10:54:29 | 显示全部楼层
 
不,这仅在命令行中运行电子传递命令。
 
此lisp代码中没有命令定义。
它将在加载后立即运行。
回复

使用道具 举报

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 10:58:14 | 显示全部楼层
你有一个Lisp程序,将电子传递???还是电子传递和分离x-refs???有命令提示吗???
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 11:01:01 | 显示全部楼层
试试这个很简单的。。。
  1. (defun c:try ()
  2. (vl-cmdf "_.qsave" "_.-etransmit" "_c" pause )
  3. )

 
祝你好运
 
塔瓦特
回复

使用道具 举报

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 11:05:10 | 显示全部楼层
谢谢你的帮助,它几乎成功了。这段简单的代码让我深入了解了lisp代码。但是没有。zip文件已创建。请参见下面的AutoCAD文本窗口。
 
命令:_-电子传递
正在更新字段。。。
输入选项[创建传递包/仅报告/当前设置/选择
设置]:\u c
正在收集文件。。。
传递包的文件名:\更新块*Model\u空间的索引
完成。
已创建传输:\。拉链
命令:T
 
米尔西
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 11:07:34 | 显示全部楼层
现在,我已经试了很多次了,真是太棒了。
 
打开新图形,执行代码并再次检查。
代码唯一会询问你文件的位置。。。
 
尝试不同的方式。
祝你好运
 
塔瓦特
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:09:20 | 显示全部楼层
  1. (command "_.qsave"
  2.         "_.-etransmit"
  3.         "_c"
  4.         (strcat (getvar 'dwgprefix)
  5.                 (vl-filename-base (getvar 'dwgname))
  6.                 ".zip"
  7.         )
  8. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 11:14:10 | 显示全部楼层
这是代码的结果。。。。文件已创建。
  1. Command: try _.qsave
  2. Command: _.-etransmit
  3. Updating fields...
  4. Enter an option [Create transmittal package/Report only/CUrrent setup/CHoose
  5. setup] <Report only>: _c
  6. Gathering files ...
  7. [color="Red"]Transmittal created[/color]: D:\Projects\C-62 Saffarini\C-62 Drainage\DRAINAGE REV.5 -
  8. Standard.zip.

 
当做
 
塔瓦特
回复

使用道具 举报

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 11:16:18 | 显示全部楼层
这真是太棒了,我真是太感谢你了,艾伦。。。
 
在没有命令提示的情况下,如何将其放置在Palette上的按钮上?或者添加defun C:et命令提示符容易吗?
 
 
米尔西
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:12 , Processed in 0.648189 second(s), 72 queries .

© 2020-2025 乐筑天下

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