乐筑天下

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

[编程交流] 更新图形图层和fil

[复制链接]

3

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:11:13 | 显示全部楼层 |阅读模式
我有一大套图纸,我想做以下工作:
 
 
[列表]
  • 将图形另存为新文件名
  • 重命名每个图形中的某些图层
  • 更新位于图形中纯文本的图形名称。
    [/列表]
    我有一个。包含以下内容的csv(包含所有受影响图形的列表):
    OLDFILENAME NEWFILENAME OLDLAYERNAME NEWLAYERNAME
     
     
    这就是我目前所拥有的,我走对了吗?如何使用csv数据查找/替换图形中的文本/并将其保存为新文件名。如果可能的话,我想把它作为一个批处理过程。
     
     
     
    1. ;;-----------------------=={ 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   ;; ;;------------------------------------------------------------;;
    2. ;;-------------------------------------------------------------------------------;;
    3. (defun LM:ReadCSV ( filename / _replacequotes _csv->lst file line lst )
    4.    
    5.    (defun _replacequotes ( str / pos )
    6.        (setq pos 0)
    7.        (while (setq pos (vl-string-search  """" str pos))
    8.            (setq str (vl-string-subst """ """" str pos)
    9.                  pos (1+ pos)
    10.            )
    11.        )
    12.        str
    13.    )
    14.    (defun _csv->lst ( str pos / s )
    15.        (cond
    16.            (   (null (setq pos (vl-string-position 44 str pos)))
    17.                (if (wcmatch str ""*"")
    18.                    (list (_replacequotes (substr str 2 (- (strlen str) 2))))
    19.                    (list str)
    20.                )
    21.            )
    22.            (   (wcmatch (setq s (substr str 1 pos)) ""*"")
    23.                (cons
    24.                    (_replacequotes (substr str 2 (- pos 2)))
    25.                    (_csv->lst (substr str (+ pos 2)) 0)
    26.                )
    27.            )
    28.            (   (wcmatch s ""*[~"]")
    29.                (_csv->lst str (+ pos 2))
    30.            )
    31.            (   (cons s (_csv->lst (substr str (+ pos 2)) 0)))
    32.        )
    33.    )
    34.    (if (setq file (open filename "r"))
    35.        (progn
    36.            (while (setq line (read-line file))
    37.                (setq lst (cons (_csv->lst line 0) lst))
    38.            )
    39.            (close file)
    40.        )
    41.    )
    42.    (reverse lst)
    43. )
    44. ;;-------------------------------------------------------------------------------;;
    45. (defun c:updatedwgs ( fromfilename tofilename fromlayername tolayername / data file )
    46. (if
    47.        (and
    48.            (setq file (getfiled "Select CSV File" "" "csv" 16))
    49.            (setq data (LM:ReadCSV file))
    50.        )
    51.        (progn
    52.            (princ "\n(")
    53.            (foreach line data
    54.          (progn
    55.                (princ "\n    ") (prin1 line)
    56.        (setq fromfilename (car line)
    57.         tofilename (cadr line)
    58.         fromlayername (caddr line)
    59.                 tolayername (cadddr line)
    60.        )
    61.    )
    62.          
    63.    (if (tblsearch "LAYER" fromlayername) ; found the layer
    64.      (progn
    65.        (command "-layer" "U" fromlayername "")
    66.        (command "rename" "layer" fromlayername tolayername)
    67.      )
    68.    )
    69.          )
    70.            )
    71.            (princ "\n)")
    72.        )
    73.    
    74.     (princ)
    75. )
    76. ;;-------------------------------------------------------------------------------;;
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 08:38:24 | 显示全部楼层
    为什么要从我的代码中删除标题?
    回复

    使用道具 举报

    3

    主题

    4

    帖子

    1

    银币

    初来乍到

    Rank: 1

    铜币
    15
    发表于 2022-7-6 08:51:31 | 显示全部楼层
     
    很抱歉,那天快结束了,我只想复制并粘贴我正在处理的主要部分,以了解我是否朝着正确的方向前进。我是新手,下次会记住的。
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 09:04:41 | 显示全部楼层
    以下是来源:
     
    http://lee-mac.com/readcsv.html
     
    请调整你的帖子,同时阅读我的使用条款。
    回复

    使用道具 举报

    106

    主题

    1万

    帖子

    101

    银币

    顶梁支柱

    Rank: 50Rank: 50

    铜币
    1299
    发表于 2022-7-6 09:11:35 | 显示全部楼层
    考虑使用一个可能更容易的脚本,并且不需要太多的编码经验
     
    打开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分钟的图形堆示例
     
    我很肯定李,如果你没有冒犯他太多的话,他有一个剧本作者来完成这类任务。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-9 08:52 , Processed in 0.449510 second(s), 62 queries .

    © 2020-2025 乐筑天下

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