lxl217114 发表于 2020-10-30 09:47:02

本帖最后由 lxl217114 于 2020-10-30 09:53 编辑

突然有个小想法,就是图块列表里头能不能有多套图框的方案。
有时候接手别人的图纸,就会有描述方式不同,比如:
A2加长1/4的图框
一、有部分设计师:图框命名是A2+1/4;
二、也有些设计师:图框命名是A2+0.25
当然,情况可能会比我例举的更加复杂。

所以为了适应当前要出力的情况,调整图块列表以后。
上一次的图块列表就会失效,下次如果要用回之前的图框设置,那就需要再调整列表里面的设置了。



mhit2000 发表于 2020-11-3 13:50:11

msteel批量打印在图框图纸设置这比楼主这方便,楼主可以借鉴一下!!!

cadlearner 发表于 2020-11-4 14:26:15

大佬,本萌新之前也一直想要自己二次开发CAD实现这样的批量打印功能。但是网上资源参差不齐,没有头绪,感觉自己在浪费时间。希望大佬能给些资源,指条明路,我是想用lisp来实现。

kyky1002 发表于 2020-11-4 20:20:08

又更新了?感谢分享

kyky1002 发表于 2020-11-4 20:22:07

下载压缩包坏了,解压不了

CAD新军 发表于 2020-11-4 21:30:50

lxl217114 发表于 2020-10-30 09:47
突然有个小想法,就是图块列表里头能不能有多套图框的方案。
有时候接手别人的图纸,就会有描述方式不同, ...

这个我写了,我是用来打印计算书和图纸的。命令是pp
(defun c:pp( / path poplst sel dcl_id dd tmp tmppath fn newcfg confirm show_list)
(setq path (LJ:GetLoadPath))

(setq tmp (vl-filename-mktemp nil nil ".dcl"))
(setq fn (open tmp "w"))
(write-line "changecfg:dialog {" fn)
(write-line "label = \"切换批量打印CFG 请配合ludaweb BPlot\" ;" fn)
(write-line "    :text {" fn)
(write-line "      key = \"title\" ;" fn)
(write-line "      label = \"选择CFG文件\" ;" fn)
(write-line "    }" fn)
(write-line "    :popup_list {" fn)
(write-line "      key = \"cfg\" ;" fn)
(write-line "    }" fn)
(write-line "    spacer_1;" fn)
(write-line "    :row{" fn)
(write-line "    :button{ key = \"swap\"; label = \"更新备份\"; }" fn)
(write-line "    ok_cancel;" fn)
(write-line "    }" fn)
(write-line "}" fn)
(close fn)

;表显示
(defun show_list (key newlist)
(start_list key)      ;
(mapcar 'add_list newlist)
(end_list)
)

(setq poplst (vl-directory-files path"*.cfg" 1))
(setq sel "0")
(setq dcl_id (load_dialog tmp))
(new_dialog "changecfg" dcl_id)
(show_list "cfg" poplst)
(set_tile "cfg" sel);初始选择
(setq confirm nil)
(action_tile "cfg" "(setq sel $value)")
(action_tile "swap" "(if confirm(done_dialog 2) (alert (setq confirm \"你要替换原有设置,请再按一次确认操作\")))")
(action_tile "accept" "(done_dialog 1)")
(setq dd (start_dialog))
(cond    ((= dd 1)
          (setq newcfg (strcat path (nth (atoi sel) poplst)))
          (setq tmppath (vl-filename-directory tmp))
      (vl-file-delete (strcat tmppath "\\batchplot.cfg"))
      (vl-file-copynewcfg (strcat tmppath "\\batchplot.cfg"))
      )
      ((= dd 2)
          (setq newcfg (strcat path (nth (atoi sel) poplst)))
          (setq tmppath (vl-filename-directory tmp))
      (vl-file-delete newcfg)
      (vl-file-copy   (strcat tmppath "\\batchplot.cfg") newcfg)
      )
   )
   (vl-file-delete tmp)
   (princ)
)




(defun LJ:GetLoadPath ( / path)
;(princ "\n即将获取加载目录……")
(if (wcmatch (setq path (getvar "lastprompt")) "*(LOAD \"*\")")
(progn
    (setq path (cadr (parse path "\"")))
    (while (vl-string-search "/" path)
      (setq path (vl-string-subst "\\" "/" path))
      )
    ;(alert (strcat "\n拖入方式加载目录:" path))
    )
(progn
    (setq path (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Profiles\\" (getvar "CPROFILE") "\\Dialogs\\Appload") "MainDialog"))
    ;(alert (strcat "\nAPPLOAD方式加载目录:" path))
    )
)
)

CAD新军 发表于 2020-11-4 21:33:15

xiaobaixiaobu 发表于 2020-10-27 11:29
有时候图纸打印会要好多次,改些内容就要重新做PDF,不知道能否做到这样:程序允许设置不同图框一次性批量 ...

建议你换个思路,不要用选择顺序,而让生成文件顺序给你排序,很多人就是这样打图的。比如图号设置为块属性或者一个专门图层,然后生成pdf时,文件名插入图号,这样打图就是全选,不用管顺序,生成的文件自动按照图号排列

lxl217114 发表于 2020-11-6 09:46:16

CAD新军 发表于 2020-11-4 21:30
这个我写了,我是用来打印计算书和图纸的。命令是pp

厉害,我去试试去

crystalboy 发表于 2020-11-6 11:12:37

现发现一个问题,批量打印的时候,打印预览的时候,用鼠标中键对预览的结果放大缩小,多放大缩小以及平移几次后,预览一下就不见了或者是预览里面会出现没圈选的图纸或者是出现三维坐标的变形。退出到模型空间后,cad图纸也不见了,只有zoom a 后才能看见。

lxl217114 发表于 2020-11-6 13:22:51

mhit2000 发表于 2020-11-3 13:50
msteel批量打印在图框图纸设置这比楼主这方便,楼主可以借鉴一下!!!

msteel批量,只支持单个dwg文件的吧
页: 108 109 110 111 112 113 114 115 116 117 [118] 119 120 121 122 123 124 125 126 127
查看完整版本: 在秋枫发布的源码基础上修改的批量打印程序v3.6.1(2025-03-23更新)