批量粘贴夹
我们已经绘制了一些图纸,现在我们想把我们的标志图像粘贴在所有这些图纸上。我们可以将单个图像粘贴到多个图形中的固定位置,具有固定比例和旋转,而不打开所有图形吗。如批处理或使用lisp。。 在记事本中。。。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,但应该给你一个起点。
确保在运行实时图形之前进行测试,首先将副本保存在某处!!! 这已经被多次提到,但再次提到,制作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" 谢谢你的回复。我从梅那里学到了很多东西http://www.Lee-mac.com关于脚本。但我在粘贴剪辑中遇到了问题,我不知道如何在脚本中从窗口复制图像。
我听到一些“shell”的声音,但它不起作用。实际上,我想从我的窗口文件夹中复制一个图像,并以固定插入点固定比例和0旋转的方式粘贴到autocad的许多文件中。 你看过我的帖子了吗?你只要把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
错误:功能错误: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
可以使用此程序:复制到图形
[谢谢你的推荐BIGAL] 认为括号可能是问题所在
try this
(setq name "F:/cadastral 2014/cadastral docs/sgnm.jpg")
or
(setq name "F://cadastral 2014//cadastral docs//sgnm.jpg")
将图像放置在第一个图形中的正确位置。
基点为0,0,0的Copybase。
将基准粘贴到所有其他需要的图形中,基点为0,0,0。
以上内容可以放在脚本或lisp中。 这是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]