Costinbos77 发表于 2022-7-6 07:18:03

检查插入的图像名称

如何检查图纸中是否有图片名称。因为如果你尝试插入另一个同名的图像,是在寻找第一个。
 
Costin

MSasu 发表于 2022-7-6 07:33:13

这将列出图形中加载的所有图像所在的路径-不考虑重复:
(if (setq ssetImages (ssget "_X" '((0 . "IMAGE"))))
(while (> (sslength ssetImages) 0)
(print (strcat "\n"
                (cdr (assoc 1 (entget (cdr (assoc 340 (entget (setq imageItem (ssname ssetImages 0))))))))))
(setq ssetImages (ssdel imageItem ssetImages))
)
)

Costinbos77 发表于 2022-7-6 07:45:34

谢谢你的主意,我试试看。
 
我在1970年和1930年的赤平投影中做了一个计算命名计划的例行程序,如果图像已经插入,但发现没有插入路径存储的图像。
 
Costin

Lee Mac 发表于 2022-7-6 07:59:44

通过Visual LISP,还有另一种方法:
(defun _ListImages ( doc )
   (vlax-for f (vla-get-filedependencies doc)
       (if (= "acad:image" (strcase (vla-get-feature f) t))
         (print (vla-get-fullfilename f))
       )
   )
   (princ)
)
(_ListImages (vla-get-activedocument (vlax-get-acad-object)))

Costinbos77 发表于 2022-7-6 08:10:06

我们测试了两个建议。Dxf代码的经典版本工作良好。ActiveX版本不工作。我附上了一个例子。
 
将Tiff文件以dwg文件以外的其他方式存储以查看问题。尝试插入TIFF文件。这就是我想要解决的问题。
Tiff示例。图纸

Lee Mac 发表于 2022-7-6 08:18:40

示例图形中的图像未找到,因此未在“文件依赖项”集合中列出。
 
我的ActiveX代码与MSasu的代码不同;我的代码正在迭代文件依赖项集合,而MSasu的代码正在检查图形数据库中的图像实体。
页: [1]
查看完整版本: 检查插入的图像名称