rk25134 发表于 2022-7-5 23:46:42

插入多个图像

需要使用从1,2,3开始的图像文件名序列在A3页中插入图像。。。来自指定路径的etc

BIGAL 发表于 2022-7-6 01:09:31

这几乎和你的另一篇文章一样,你在那里使用了文件首选项,这是我不会做的,它很容易从一个给定的目录中列出dwg名称。这里有很多帖子。
 
无论如何,我已经做了你想要的,但在大约50张图片在一个去它是我们的电话簿,他或她在哪里?在本例中,它使用标签电话号码,并将其与具有相同号码的图像相匹配。
 
; routine to insert images based on a block position
(vl-load-com)
(defun *error* ( msg )
       (princ "\nerror: ")
       (alert (strcat "\n Missing phone number image" name))
       (princ)
)
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))

(setvar "clayer" "staffimages")
(setq ss1 (ssget "x"(list (cons 0 "INSERT") (cons 2 "phnum"))));block name is phnum
(setq len (sslength ss1))
(setq x 0)
; then insert block value at x,y

; need to pull out block find x,y and value
(repeat len
(foreach att (vlax-invoke (vlax-ename->vla-object (ssname SS1 x )) 'getattributes)
       (if (= "PHNUM" (strcase (vla-get-tagstring att))); tagname is phnum
       (progn
(setq blknum (vla-get-textstring att))
      (setq inspt (vla-get-insertionpoint att))
       )
)
)
;(setq blkval (rtos blknum 2 0))
(setq name (strcat "P:\\St Offices\\" blknum ".jpg"))
(princ (strcat "\n" name))

(vla-AddRaster mspace name inspt 1.5 0.0)
;(command "-image" "attach" name (vlax-3d-point inspt) 1.0 0.0)
(setq x (+ x 1))
) ;repeatlen
(setq ss1 nil)
(princ "alla done"
(princ)
页: [1]
查看完整版本: 插入多个图像