明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 惜惜2

[提问] 提取文件名称关键字

[复制链接]
 楼主| 发表于 2024-9-9 10:27:13 | 显示全部楼层
lijiao 发表于 2024-9-9 10:00
你把下面这段代码保存为lsp文件,然后把这个lsp文件放在启动组里就行了.

每次打开文件时,它都会自动运行 ...

感谢,如果是在布局空间就不生效了,能否通用啊
发表于 2024-9-9 10:33:27 | 显示全部楼层
惜惜2 发表于 2024-9-9 10:27
感谢,如果是在布局空间就不生效了,能否通用啊

把(410 . "Model")去掉
 楼主| 发表于 2024-9-9 10:35:32 | 显示全部楼层
kozmosovia 发表于 2024-9-9 10:33
把(410 . "Model")去掉

谢谢
 楼主| 发表于 2024-9-19 16:23:07 | 显示全部楼层
本帖最后由 惜惜2 于 2024-9-19 16:36 编辑
lijiao 发表于 2024-9-9 10:00
你把下面这段代码保存为lsp文件,然后把这个lsp文件放在启动组里就行了.

每次打开文件时,它都会自动运行 ...
  1. <blockquote>(setq filename (vl-filename-base (getvar "dwgname")))


大佬帮忙最后的看下哪里错了,在你的基础上面增加的,用于提取关键字,提取到了后提取第2-4的字符并写入客户
 楼主| 发表于 2024-9-19 16:38:23 | 显示全部楼层
  1. (setq filename (vl-filename-base (getvar "dwgname")))
  2. (if (setq space-pos (vl-string-search " " filename))
  3.   (progn
  4.     (setq drawing-number (substr filename 1 space-pos))
  5.     (setq part-name (substr filename (+ space-pos 2)))
  6.     (setq ss (ssget "x" '((0 . "INSERT"))))
  7.     (repeat (setq n (sslength ss))
  8.       (setq blockref (SSNAME SS (setq n (1- n))))
  9.       (setq blockref (vlax-ename->vla-object blockref))
  10.       (if (= (vla-get-HasAttributes blockref) :vlax-true)
  11.         (foreach attrib
  12.                  (VLAX-SAFEARRAY->LIST
  13.                    (VLAX-VARIANT-VALUE (vla-getattributes blockref))
  14.                  )
  15.           (cond        ((= (vla-get-tagstring attrib) "客户图号")
  16.                  (vla-put-textstring attrib drawing-number)
  17.                 )
  18.                 ((= (vla-get-tagstring attrib) "零件名称")
  19.                  (vla-put-textstring attrib part-name)
  20.                 )
  21.                 ((= (vla-get-tagstring attrib) "设计日期")
  22.                  (vla-put-textstring attrib (rtos (getvar "CDATE") 2 0))
  23.                 )
  24.                 (IF
  25.                  (= (vla-get-tagstring attrib) "编号")
  26.                  (setq product-code (vla-get-textstring attrib))
  27.                 )
  28.                 (IF
  29.                  (= (vla-get-tagstring attrib) "客户")
  30.                  (let ((extracted-code (substr product-code 2 3)))
  31.                       (vla-put-textstring attrib extracted-code)
  32.                  )
  33.                 )
  34.           )
  35.         )
  36.       )
  37.     )
  38.   )
  39. )
  40. )
  41. (princ)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 20:26 , Processed in 0.172830 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表