MarcoW 发表于 2022-7-6 11:21:37

如何在fol上“批量BMPOUT”

你好,
 
我已将所有块保存到特定文件夹中。如果打开一个,则所有线/圆/等+属性定义。应该如此。。。
 
我想进行某种批处理操作,可以执行以下操作:
 
1.用*选择文件夹。dwg(块)
2.选择存储BMP的输出文件夹
 
对于每张图纸:
3、开放式绘图
4.将背景设置为任何RGB颜色(即254252240)
(或者我可以在处理所有dwg之前手动执行)
 
5、删除所有属性定义
6、选择图纸中的所有图元
7.将所有实体转换为Pline
8.将所有实体线设置为0.2mm
9、将所有实体的颜色更改为黑色
10.从(getvar“extmin”)到(getvar“extmax”)的矩形
11.从(getvar“extmin”)-(getvar“extmax”)因子25之间的中间缩放矩形
12.BMP全部输出(name=dwgname.BMP)
13、关闭而不保存!
下一个dwg。。。。
 
结果是一个包含所有块的BMP的文件夹。这些图像可用于制作工具选项板等。需要更改背景和pline以保持bmp清晰。
 
这是我的开始,但我马上就遇到了几个问题,比如“如何只过滤属性定义”以及如何使用BMPOUT命令,因为-BMPOUT不起作用。。。
 

(defun c:b2b ( / )

(setq Attributes (ssget "X" '((0 . "INSERT")))
)
(command "_.erase" Attributes "")
(command "_.zoom" "e")

(setq LowerLeft (getvar "extmin")
UpperRight (getvar "extmax")
); end of setq
(command "_.rectangle" LowerLeft UpperRight)
(command "_.scale" "_L" "" "m2p" LowerLeft UpperRight "30")
(princ)
); end of defun
(princ)

 
红色部分对于舒尔来说是错误的,但我认为属性定义没有过滤器。
 
非常感谢您的帮助/想法。

MSasu 发表于 2022-7-6 11:49:10

使用以下代码选择图形中定义的所有属性(独立,不包括在块定义中):
 
(setq Attributes (ssget "X" '((0 . "ATTDEF"))))
 
当做

MSasu 发表于 2022-7-6 11:52:14

关于BMPOUT命令,请尝试将FILEDIA系统变量设置为on Off(0),以确保对话框处于提示状态。不要忘了在以下时间后恢复:
 
(setq OldFileDia (getvar "FILEDIA"))   ;retain current state
(setvar "FILEDIA" 0)                   ;enable dialog on prompter

(command "_BMPOUT" MyPathForBMP MySelectionSet)

(setvar "FILEDIA" OldFileDia)          ;restore previous state
 
当做

fuccaro 发表于 2022-7-6 12:11:09

很久以前,我写了一个Lisp来批量清除我的绘图。它可以修改以满足您的需要。请参见此处。

MSasu 发表于 2022-7-6 12:33:52

要列出,请使用以下代码通过AutoLISP分别修改“模型”选项卡的背景色:
 
(vl-load-com)

(setq theModelBackground (vla-get-GraphicsWinModelBackgrndColor (vla-get-Display (vla-get-Preferences (vlax-get-acad-object)))))

(vla-put-GraphicsWinModelBackgrndColor (vla-get-Display (vla-get-Preferences (vlax-get-acad-object))) theModelBackground)
 
当做
页: [1]
查看完整版本: 如何在fol上“批量BMPOUT”