乐筑天下

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

[编程交流] 检查插入的图像名称

[复制链接]

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 07:18:03 | 显示全部楼层 |阅读模式
如何检查图纸中是否有图片名称。因为如果你尝试插入另一个同名的图像,是在寻找第一个。
 
Costin
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:33:13 | 显示全部楼层
这将列出图形中加载的所有图像所在的路径-不考虑重复:
  1. (if (setq ssetImages (ssget "_X" '((0 . "IMAGE"))))
  2. (while (> (sslength ssetImages) 0)
  3. (print (strcat "\n"
  4.                 (cdr (assoc 1 (entget (cdr (assoc 340 (entget (setq imageItem (ssname ssetImages 0))))))))))
  5. (setq ssetImages (ssdel imageItem ssetImages))
  6. )
  7. )
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 07:45:34 | 显示全部楼层
谢谢你的主意,我试试看。
 
我在1970年和1930年的赤平投影中做了一个计算命名计划的例行程序,如果图像已经插入,但发现没有插入路径存储的图像。
 
Costin
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:59:44 | 显示全部楼层
通过Visual LISP,还有另一种方法:
  1. (defun _ListImages ( doc )
  2.    (vlax-for f (vla-get-filedependencies doc)
  3.        (if (= "acad:image" (strcase (vla-get-feature f) t))
  4.            (print (vla-get-fullfilename f))
  5.        )
  6.    )
  7.    (princ)
  8. )
  1. (_ListImages (vla-get-activedocument (vlax-get-acad-object)))
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 08:10:06 | 显示全部楼层
我们测试了两个建议。Dxf代码的经典版本工作良好。ActiveX版本不工作。我附上了一个例子。
 
将Tiff文件以dwg文件以外的其他方式存储以查看问题。尝试插入TIFF文件。这就是我想要解决的问题。
Tiff示例。图纸
081809pj0hcshgusohh20c.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:18:40 | 显示全部楼层
示例图形中的图像未找到,因此未在“文件依赖项”集合中列出。
 
我的ActiveX代码与MSasu的代码不同;我的代码正在迭代文件依赖项集合,而MSasu的代码正在检查图形数据库中的图像实体。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:01 , Processed in 1.397358 second(s), 66 queries .

© 2020-2025 乐筑天下

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