subodh_gis 发表于 2022-7-5 22:58:44

批量粘贴夹

我们已经绘制了一些图纸,现在我们想把我们的标志图像粘贴在所有这些图纸上。我们可以将单个图像粘贴到多个图形中的固定位置,具有固定比例和旋转,而不打开所有图形吗。如批处理或使用lisp。。

Dave^ 发表于 2022-7-5 23:06:03

在记事本中。。。
 

open "C:\\path\to\drawing\drawing1.dwg"
-insert "C:\\path\to\logo\logo.jpg" (you'll have to experiment with the options that follow - run "-insert" from the command line within autocad to check what works etc)
qsave
qclose
open "C:\\path\to\drawing\drawing2.dwg"
...

 
构建脚本后,使用将其保存在某处。scr扩展,然后在autocad的命令行中键入scr,浏览到新的。scr文件,它将运行。
 
不是完美的,我现在不是一台cad pc,但应该给你一个起点。
 
确保在运行实时图形之前进行测试,首先将副本保存在某处!!!

BIGAL 发表于 2022-7-5 23:14:19

这已经被多次提到,但再次提到,制作dwg列表的两种方法www.Lee-mac。com有一个非常好的脚本编写程序。
 
另一种方法是通过CMD左下角的go to correct directory and do dir*获取dwg列表。dwg/b>目录。txt所有DWG的列表将在目录列表中。txt。使用word可以搜索行尾^ p使用此命令可以使用search&replace将脚本的其余部分保存为txt文件而不是doc。
 
dgw1
dwg2
replace ^p ^popen
now open dwg1
open dwg2

replace ^p imageattach "C:\\path\to\logo\logo.jpg" "0,0" 1 0 close "Y"
now
open dwg1imageattach "C:\\path\to\logo\logo.jpg" "0,0" 1 0 close "Y"
open dwg2imageattach "C:\\path\to\logo\logo.jpg" "0,0" 1 0 close "Y"

subodh_gis 发表于 2022-7-5 23:20:25

谢谢你的回复。我从梅那里学到了很多东西http://www.Lee-mac.com关于脚本。但我在粘贴剪辑中遇到了问题,我不知道如何在脚本中从窗口复制图像。
我听到一些“shell”的声音,但它不起作用。实际上,我想从我的窗口文件夹中复制一个图像,并以固定插入点固定比例和0旋转的方式粘贴到autocad的许多文件中。

BIGAL 发表于 2022-7-5 23:31:46

你看过我的帖子了吗?你只要把jpg保存在硬盘上的某个地方,你就可以简化脚本,我会再次提供一个答案。我一次插入大约40张图片,作为公司的员工目录,全自动。
 

this is script
open dwg1 (load "myinslogo") close y
open dwg2 (load "myinslogo") close y
open dwg3 (load "myinslogo") close y

 

; this is code for myinslogo.lsp put somewhere in your search path.
(setvar "Ctab" "Model")
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq name "C:\temp\yourlogo.jpg")
(setq inspt (list x y)) ; put your x y inspoint here
(vla-AddRaster mspace name inspt 1.5 0.0) ; scale & rotation change 1.5 & 0.0

subodh_gis 发表于 2022-7-5 23:38:24

错误:功能错误:1033.0
 
这是脚本
 
open "C:\Users\subodh\Desktop\Sign pro\Manchitra_Patna\Phulwari_1_1_Panapurtofir_Ka_Kha_Ga.dwg" (load "myinslogo") close y
 
这是myinslogo。lsp
 
(setvar "Ctab" "Model")
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(setq name "F:\cadastral 2014\cadastral docs\sgnm.jpg")
(setq inspt (1033.0 289.0)) ; put your x y inspoint here
(vla-AddRaster mspace name inspt 0.3 0.0) ; scale & rotation change 1.5 & 0.0

Lee Mac 发表于 2022-7-5 23:41:07

可以使用此程序:复制到图形
 
[谢谢你的推荐BIGAL]

BIGAL 发表于 2022-7-5 23:50:23

认为括号可能是问题所在
 
try this
(setq name "F:/cadastral 2014/cadastral docs/sgnm.jpg")
or
(setq name "F://cadastral 2014//cadastral docs//sgnm.jpg")

Dave^ 发表于 2022-7-5 23:55:02

将图像放置在第一个图形中的正确位置。
 
基点为0,0,0的Copybase。
 
将基准粘贴到所有其他需要的图形中,基点为0,0,0。
 
以上内容可以放在脚本或lisp中。

BIGAL 发表于 2022-7-6 00:05:25

这是dwg中多页布局页面上的插入图像,您只需删除询问日期的代码。我看不出先将图像保存到磁盘有什么问题。
 

; Put co-ordinators sig on plans
(vl-load-com)
(setq layold (getvar "clayer"))
(setvar "clayer" "TEXT")
(setvar "imageframe" 0)
(setvar "textstyle" "standard")
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)
(SETVAR "LUNITS" 2) ; decimal
(setvar "aunits" 0) ; dec degrees
(SETVAR "ANGBASE" 0.0) ; north up
(SETVAR "ANGDIR" 0) ; clockwise
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for lay (vla-get-Layouts doc)
(setq plotabs (cons (vla-get-name lay) plotabs))
)
(setq plottablist (acad_strlsort plotabs))
(setq len (length plottablist))
(setq x 0)
(setq ans (getstring "\n Please enter date of signing.."))
(setvar "textstyle" "standard")
(repeat len
(setq name (nth x plottablist))
(princ name)
(if (/= name "Model")
   (progn
   (setvar "ctab" name)
;(setvar "imageframe" 0)
    ; (command "-CHANGE" "L" "" "P" "TR" "0" "")
; change transparency
(command "-Insert" "P:/BIGAL" "439,15" 1"" 0)

    (setq ts (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))))
   (if (zerop ts)
          (command "TEXT" "498,18" "3.5" "0" ans)
          (command "TEXT" "498,18" "0" ans)
      )      
   )
)
(setq x (+ x 1))
)

(setvar "clayer" layold)
(setvar "osmode" oldsnap)
(setq len nil
         plotabs nil
         plottablist nil)
(princ)
页: [1]
查看完整版本: 批量粘贴夹