乐筑天下

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

[编程交流] 编辑批处理LISP

[复制链接]

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 00:13:03 | 显示全部楼层
所以这应该行得通?
 
  1. (defun C:OPB (/ *good-files* acapp adoc file_obj full-names-list osd)
  2. (alert
  3.    "\nPlease wait a minute
  4. \nto ending of batch file operation"
  5. )
  6.   (vl-load-com)
  7. (setq    acapp (vlax-get-acad-object)
  8.    adoc  (vla-get-activedocument acapp)
  9. )
  10. (vla-startundomark adoc)
  11. (setq osd (vla-getvariable adoc "SDI"))
  12. (vla-setvariable adoc "SDI" 0)
  13. (setq olsp (vla-getvariable adoc "LISPINIT"))
  14. (vla-setvariable adoc "LISPINIT" 0)
  15. (if (setq full-names-list
  16.         (list-dwg (browse-folder "SELECT FOLDER" "C:\"))
  17.      )
  18.    ; change on your start path folder
  19.    (progn
  20.      (mapcar
  21.    (function
  22.      (lambda (i)
  23.        (progn
  24.          (setq file_obj (vla-open (vla-get-documents acapp) i))
  25.          (setq *good-files* (cons file_obj *good-files*))
  26.          ;;here will your batch function:
  27.        (REPSTRING "TEXT1" "TEXT2")
  28.          (vla-setvariable file_obj "mirrtext" 0)
  29. ;          (vla-setvariable file_obj "insunits" 0)
  30. ;          (vla-setvariable file_obj "annotativedwg" 0)
  31.          (vla-close file_obj :vlax-true)
  32.          (vlax-release-object file_obj)
  33.          (setq file_obj nil)
  34.        )
  35.      )
  36.    )
  37.    full-names-list
  38.      )
  39.      (cond ((zerop (length *good-files*))
  40.         (princ "\nThere isn't opened files\n")
  41.        )
  42.        ((not (eq (length full-names-list) (length *good-files*)))
  43.         (princ "\nSome files is not opened\n")
  44.        )
  45.        (T nil)
  46.      )
  47.    )
  48.    (princ "\nThere isn't .DWG files in selected directory\n")
  49. )
  50. (vla-setvariable adoc "SDI" osd)
  51. (vla-setvariable adoc "LISPINIT" olsp)  
  52. (vla-endundomark adoc)
  53. (princ)
  54. )
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 00:15:30 | 显示全部楼层
 
 
我以这种形式运行了这个程序,但它不会替换文本,但不会出现任何错误。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:17:04 | 显示全部楼层
看起来字符串替换函数是区分大小写的-请记住这一点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:20:56 | 显示全部楼层
这可能对您更有效:
 
  1. 8

 
旧代码仅替换字符串的第一个匹配项,这将替换所有匹配项。
 
此外,这包括多重引线。
 
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 00:24:28 | 显示全部楼层
这是我设置的:
 
  1. 9
我只是一直得到**没有找到文本或属性块**
没有更改任何文本
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:26:03 | 显示全部楼层
啊,当然!
 
您正在activedoc之外操作。。。这不允许所有命令调用/ent*方法和SELSET。。
 
好的,请容忍我一点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:29:42 | 显示全部楼层
试试这个:
 
  1. 10
{Untested}
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 00:33:27 | 显示全部楼层
它没有EROR,也没有那个消息,但是文本没有任何变化。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:36:30 | 显示全部楼层
很抱歉,代码已更新,在使用文档集合打开图形时,可能需要额外一行进行保存。
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 00:38:41 | 显示全部楼层
 
完美的谢谢李。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:34 , Processed in 1.094560 second(s), 70 queries .

© 2020-2025 乐筑天下

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