更新图形图层和fil
我有一大套图纸,我想做以下工作:[列表]
[*]将图形另存为新文件名
[*]重命名每个图形中的某些图层
[*]更新位于图形中纯文本的图形名称。
[/列表]
我有一个。包含以下内容的csv(包含所有受影响图形的列表):
OLDFILENAME NEWFILENAME OLDLAYERNAME NEWLAYERNAME
这就是我目前所拥有的,我走对了吗?如何使用csv数据查找/替换图形中的文本/并将其保存为新文件名。如果可能的话,我想把它作为一个批处理过程。
;;-----------------------=={ Read CSV }==---------------------;; ;; ;; ;;Parses a CSV file into a matrix list of cell values. ;; ;;------------------------------------------------------------;; ;;Author: Lee Mac, Copyright © 2012 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;;Arguments: ;; ;;filename - filename of CSV file to read ;; ;;------------------------------------------------------------;; ;;Returns:List of lists - sublist is row of cell values ;; ;;------------------------------------------------------------;;
;;-------------------------------------------------------------------------------;;
(defun LM:ReadCSV ( filename / _replacequotes _csv->lst file line lst )
(defun _replacequotes ( str / pos )
(setq pos 0)
(while (setq pos (vl-string-search"\"\"" str pos))
(setq str (vl-string-subst "\"" "\"\"" str pos)
pos (1+ pos)
)
)
str
)
(defun _csv->lst ( str pos / s )
(cond
( (null (setq pos (vl-string-position 44 str pos)))
(if (wcmatch str "\"*\"")
(list (_replacequotes (substr str 2 (- (strlen str) 2))))
(list str)
)
)
( (wcmatch (setq s (substr str 1 pos)) "\"*\"")
(cons
(_replacequotes (substr str 2 (- pos 2)))
(_csv->lst (substr str (+ pos 2)) 0)
)
)
( (wcmatch s "\"*[~\"]")
(_csv->lst str (+ pos 2))
)
( (cons s (_csv->lst (substr str (+ pos 2)) 0)))
)
)
(if (setq file (open filename "r"))
(progn
(while (setq line (read-line file))
(setq lst (cons (_csv->lst line 0) lst))
)
(close file)
)
)
(reverse lst)
)
;;-------------------------------------------------------------------------------;;
(defun c:updatedwgs ( fromfilename tofilename fromlayername tolayername / data file )
(if
(and
(setq file (getfiled "Select CSV File" "" "csv" 16))
(setq data (LM:ReadCSV file))
)
(progn
(princ "\n(")
(foreach line data
(progn
(princ "\n ") (prin1 line)
(setq fromfilename (car line)
tofilename (cadr line)
fromlayername (caddr line)
tolayername (cadddr line)
)
)
(if (tblsearch "LAYER" fromlayername) ; found the layer
(progn
(command "-layer" "U" fromlayername "")
(command "rename" "layer" fromlayername tolayername)
)
)
)
)
(princ "\n)")
)
(princ)
)
;;-------------------------------------------------------------------------------;;
为什么要从我的代码中删除标题?
很抱歉,那天快结束了,我只想复制并粘贴我正在处理的主要部分,以了解我是否朝着正确的方向前进。我是新手,下次会记住的。 以下是来源:
http://lee-mac.com/readcsv.html
请调整你的帖子,同时阅读我的使用条款。 考虑使用一个可能更容易的脚本,并且不需要太多的编码经验
打开dwg1重命名la 1 2另存为dwg1x关闭n
打开dwg2重命名la 1 2另存为dwg2x关闭n
打开dwg3重命名la 1 2另存为dwg3x关闭n
首先,尝试使用这个start下角CMD,将其更改为您想要的目录,例如K:cd\project52
目录*。dwg>目录。文本/b
将la 1 2重命名为saveas
打开drlst。txt在记事本等复制粘贴我用文字做搜索和替换行尾^ p代码的相关位像“打开”,然后“重命名la 1 2另存为”和复制列alt和鼠标等职位,如果你需要帮助。1-2分钟的图形堆示例
我很肯定李,如果你没有冒犯他太多的话,他有一个剧本作者来完成这类任务。
页:
[1]