乐筑天下

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

[编程交流] 脚本文件

[复制链接]

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-5 16:39:06 | 显示全部楼层 |阅读模式
需要创建一个脚本文件来运行下面的lisp例程,需要打开*。文件夹中的dwg文件一次一个,然后运行lisp例程,保存文件,然后关闭文件,然后打开目录中的下一个文件。
非常感谢您的帮助。
 
  1. ; (purge-unreferenced-images)
  2. (defun purge-unreferenced-images (/ ss1 ctr id symlst enamelst delent vl_delent ipath iname tmp)
  3. (defun remlst (/ tmp1)
  4. (setq
  5.    tmp        (length (member (cdr (assoc 340 (entget delent))) enamelst))
  6. )
  7. (repeat (- (length symlst) tmp)
  8.    (setq tmp1 (cons (car symlst) tmp1))
  9.    (setq symlst (cdr symlst))
  10. )
  11. (setq tmp (list (car symlst)))
  12. (setq symlst (append (reverse tmp1) (cdr symlst)))
  13. )
  14. (defun massoc (key alist / x nlist)
  15. (foreach x alist
  16.    (if        (eq key (car x))
  17.      (setq nlist (cons (cdr x) nlist))
  18.    )
  19. )
  20. (reverse nlist)
  21. )
  22. (vl-load-com)
  23. (setq ss1 (ssget "x" '((0 . "IMAGE"))))
  24. (setq ctr 0)
  25. (setq id (dictsearch (namedobjdict) "acad_image_dict"))
  26. (setq symlst (massoc 3 id))
  27. (setq enamelst (massoc 350 id))
  28. (if ss1
  29.    (progn
  30.      (while (< ctr (sslength ss1))
  31. (setq delent (ssname ss1 ctr))
  32. (setq vl_delent (vlax-ename->vla-object delent))
  33. (setq ipath (vla-get-ImageFile vl_delent))
  34. (remlst)
  35. (setq iname (strcat (vl-filename-base ipath) (vl-filename-extension ipath)))
  36. (if (and (not (findfile ipath))
  37.          (not (findfile iname))
  38.     )
  39.   (progn
  40.     (dictremove (cdr (car id)) (car tmp))
  41.     (append tmp symlst)
  42.     (ssdel delent ss1)
  43.     (vla-delete vl_delent)
  44.   )
  45.   (progn
  46.     (setq ctr (1+ ctr))
  47.   )
  48. )
  49.      )
  50.    )
  51. )
  52. (while symlst
  53.    (dictremove (cdr (car id)) (car symlst))
  54.    (setq symlst (cdr symlst))
  55. )
  56. )
  57. (defun c:PUI()
  58. (purge-unreferenced-images)
  59. (princ)
  60. )
  61. (princ)
回复

使用道具 举报

46

主题

161

帖子

104

银币

后起之秀

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

铜币
242
发表于 2022-7-5 17:12:13 | 显示全部楼层
http://www.lee-mac.com/scriptwriter.html
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:35:01 | 显示全部楼层
您可以使用我的脚本编写器程序执行此任务。
 
假设您的LISP文件名为“purge unreferenced images.lsp”,“脚本行”如下所示:
  1. _.open *file* (load "purge-unreferenced-images.lsp" nil) (if purge-unreferenced-images (purge-unreferenced-images)) _.qsave _.close
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-5 17:57:51 | 显示全部楼层
谢谢大家。。。你们是救生员
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 13:52 , Processed in 0.423245 second(s), 71 queries .

© 2020-2025 乐筑天下

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