乐筑天下

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

[编程交流] 更改I的引用名称

[复制链接]

2

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:52:29 | 显示全部楼层 |阅读模式
简化:
 
制作任何类型的autocad dwg文件。
将图像外部参照到in(jpg)
 
图像将有一些与其相关的路径(C:\temp\Daryl.JPG)
 
它还将有一个“参考名称”(myjunkyname)
 
如何将引用名称更改为图像的名称,减去。JPG公司
回复

使用道具 举报

2

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:08:09 | 显示全部楼层
不过,我仍然无法使用Lisp或VB识别和更改图像的引用名称。请-如果有人知道,我真的需要帮助。
回复

使用道具 举报

2

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:12:00 | 显示全部楼层
无论如何,是否需要修改此代码,使其能够查找带有通配符的名称?
我发现有三个公司徽标作为图像加载到我的DWG中。
 
 
有一个前缀和一个后缀的垃圾字符与公司标志名称在中间
 
 
123abcTACOLOGO456def。jpg公司
 
 
(高亮显示的红色部分是我想要更改引用名称的全部内容)
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 18:18:35 | 显示全部楼层
不要在其他帖子上问你的问题。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:28:15 | 显示全部楼层
请尝试以下操作:
  1. (defun c:renameallimages ( / dic img itm lst )
  2.    (if (setq lst (dictsearch (namedobjdict) "acad_image_dict")
  3.              dic (cdr (assoc -1 lst))
  4.        )
  5.        (while (setq lst (member (assoc 3 lst) lst))
  6.            (setq itm (cdr (assoc 3 lst))
  7.                  img (vl-filename-base (cdr (assoc 1 (entget (cdr (assoc 350 lst))))))
  8.                  lst (cdr lst)
  9.            )
  10.            (if (not (or (= img itm) (dictsearch dic img)))
  11.                (dictrename dic itm img)
  12.            )
  13.        )
  14.    )
  15.    (princ)
  16. )

运行上述命令后,您需要“重新加载所有引用”。
回复

使用道具 举报

2

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 18:41:33 | 显示全部楼层
李-成功了!非常感谢。现在,我将花一些时间自学所有步骤的功能(学习词汇和快速眼动)。你刚刚救了我多年的腕管疼痛。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:44:48 | 显示全部楼层
好东西Mark-如果您对代码有任何问题,请随时提问。
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 18:54:02 | 显示全部楼层
大家好!
 
我星期五做了一个代码,我没有立即在图像dict中看到多个assoc的可能性(顺便说一句,在你的代码中这是一个非常聪明的方法)。我刚回来看到李把我带到终点线。
 
考虑到用户可能不希望系统地将所有图片重命名为其文件名,并提示用户选择需要恢复参考名称的图像,我采取了一种稍微不同的方法。我本可以使用更少的变量和代码行,但选择了更好的可读性。
 
用法:启动,选择屏幕上的图像(加载或卸载),参考名称将恢复。图像的加载/卸载状态不会改变,不需要“手动”重新加载。
 
  1. (defun c:RES ( / img_enam img_entdesc img_hardrefEname image_hardref image_path image_dict img_newiname newiname_dxf newimage_dict)
  2. ;Restore image reference name by the name of the source image file (found at, without path/extension)
  3. ;made by Jef! on 2016 March 29.
  4. (setvar 'errno 0)
  5. (while (not (and (setq img_enam (car(entsel "\nSelect the image to restore path: ")))
  6.            (eq "IMAGE" (cdr (assoc 0 (entget img_enam))))
  7.              )
  8. )
  9. (cond
  10.            (   (= 52 (getvar 'errno))
  11.                (princ "\nYou must select an image object. Press "ESCAPE" to cancel")
  12.         (setvar 'errno 0)
  13.            )          
  14.            (   (null img_enam)
  15.                (princ "\nYou missed, try again.")
  16.            )
  17.     (   (not (eq "IMAGE" (cdr (assoc 0 img_entdesc))))
  18.         (princ "\nYou must select an image object.")
  19.     )
  20.         )
  21. )
  22. (setq img_entdesc   (entget img_enam)
  23. img_hardrefEname (cdr (assoc 340 img_entdesc))
  24.        image_hardref (entget img_hardrefEname)
  25. image_path    (cdr (assoc 1 image_hardref))
  26. image_dict    (entget (cdr (assoc 330 image_hardref)))
  27. img_newiname  (substr image_path
  28.                       (+ 2 (vl-string-position 92 image_path 0 t))
  29.                       (- (vl-string-position 46 image_path 0 t)
  30.                          (vl-string-position 92 image_path 0 t)
  31.                          1
  32.                       )
  33.               )
  34. newiname_dxf  (cons 3 img_newiname)
  35. newimage_dict (subst newiname_dxf (nth 1 (member (cons 350 img_hardrefEname) (reverse image_dict))) image_dict);massoc!!
  36. )
  37. (entmod newimage_dict)
  38. (entmod image_hardref)
  39. (princ)
  40. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 00:57 , Processed in 0.510178 second(s), 68 queries .

© 2020-2025 乐筑天下

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