明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3034|回复: 16

【WMF】WMF输出

  [复制链接]
发表于 2019-5-2 15:23 | 显示全部楼层 |阅读模式
本帖最后由 1028695446 于 2019-5-6 21:51 编辑

用WORD做设计说明,需要插入图框时用的上

(defun c:WMF(/ wmffile p1 p2 p11 p22 ss1 dist)
        ;;判斷"符號表"否存在;龙龙仔http://bbs.mjtd.com/forum.php?mo ... =%B2%BC%BE%D6%C3%FB
        (defun HAS (TYPE_1 NAME)
                (if (not
                                        (vl-catch-all-error-p
                                                (vl-catch-all-apply
                                                        'vla-item
                                                        (list ((eval (read (strcat "vla-get-" TYPE_1)))
                                                                                        (vla-get-activedocument (vlax-get-acad-object))
                                                                                )
                                                                NAME
                                                        )
                                                )
                                        )
                                )
                        t
                )
        )
        (if (null vlax-dump-object) (vl-load-com) )
        (princ "\nWMF输出--矩形范围输出")
        (setvar "WMFBKGND" 0);;清除底色
        (setq dist 5);;这个是WMF的边界框
        (setq file_path (strcat (getvar "Tempprefix") "WMF"))
        (if (findfile file_path) (princ) (vl-mkdir file_path))       
        ;(setq wmffile (getfiled "\n选择WMF文件名: " (strcat (getvar "Tempprefix") "baidu\\WMF_01.wmf") "wmf" 1));手动输入文件保存位置
        (setq wmffile (strcat file_path "\\WMF_" (rtos (getvar "CDATE") 2 20)));;;被注解掉 这个保存位置自己修改,,注意是用"\\"替代Windows的"\"
        (if (setq p1 (getpoint "\n请指定矩形框第一点: "))
                (if(setq p2 (getcorner p1 "\n请指矩形框定对角点: "))
                        (if(setq ss1 (ssget "W" p1 p2))
                                (progn
                                        (if (HAS "LAYOUTS" "临时布局")
                                                (princ)
                                                (command "layout" "n" "临时布局");创建并切换布局
                                        )
                                        (command "layout" "s" "临时布局")
                                        (command "tilemode" "0")
                                        (command "erase" (ssget "X" '((0 . "VIEWPORT"))) "");删除所有布局视口
                                        (command "mview"
                                                (setq p11(list (- (car p1) dist) (- (cadr p1) dist) 0))
                                                (setq p22(list (+ (car p2) dist) (+ (cadr p2) dist) 0))
                                        )
                                        (command "zoom" "w" p11 p22);;不缩放的话就找不到可用于激活的视口了
                                        (if (= (getvar "CVPORT") 1)(command "mspace"));激活视口;(command "pspace");切换到图纸空间
                                        (command "zoom" "w" p11 p22);缩放
                                        (command "wmfout" wmffile ss1 "")
                                        (command "tilemode" "1");切换回模型空间
                                        (if (HAS "LAYOUTS" "临时布局")
                                                (command "layout" "D" "临时布局");删除临时布局
                                        )
                                        (startapp "explorer.exe" (vl-filename-directory wmffile));打开文件所在文件夹
                                        ;(startapp "mspaint.exe" (strcat wmffile ".wmf"));用画板打开WMF文件
                                        (princ "\nWMF文件输出成功>>>>>>>>>>>>>>>>>>")
                                        (princ)
                                )
                                (princ "错误提示--矩形框内没有实体")
                        )
                        (princ "错误提示--请按要求选择对角点")
                )
                (princ "错误提示--请按要求选择第一点")
        )
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

如果能 改成白底 黑线 ,并且复制到剪贴板,就完美了  发表于 2020-7-11 05:45
发表于 2021-12-3 08:29 | 显示全部楼层
likongshun 发表于 2021-12-2 22:38
楼主,这段代码放在哪个位置?不知为何我的输出图形没变化还是彩色的?

放置在切换到临时布局之后,设置临时布局的打印颜色。
                                        (if (HAS "LAYOUTS" "临时布局")
                                                (princ)
                                                (command "layout" "n" "临时布局");创建并切换布局
                                        )
                                        (command "layout" "s" "临时布局")
                                        (command "tilemode" "0")
发表于 2021-11-28 22:11 | 显示全部楼层
                ;导出图形设置成黑白色
                (setq
                        app (vlax-get-acad-object)
                        doc (vla-get-activedocument app)
                        layout (vla-get-activelayout doc)
                )           
                (vla-put-stylesheet layout "monochrome.ctb")
                (vla-put-ShowPlotStyles layout :vlax-true)
发表于 2021-12-2 22:38 | 显示全部楼层
linyangmjtd 发表于 2021-11-28 22:11
;导出图形设置成黑白色
                (setq
                        app (vlax-get-acad-object)

楼主,这段代码放在哪个位置?不知为何我的输出图形没变化还是彩色的?
发表于 2019-5-4 08:56 | 显示全部楼层
本帖最后由 sowin 于 2019-5-4 09:42 编辑

非常方便谢谢分享
发表于 2019-6-3 19:30 | 显示全部楼层
功能很实用
发表于 2019-6-14 14:39 | 显示全部楼层
好用,谢谢收藏了
发表于 2019-9-19 11:51 | 显示全部楼层
非常方便,多谢分享
发表于 2020-8-2 23:43 | 显示全部楼层
好人一生平安,看帖必回帖
发表于 2020-9-15 01:07 | 显示全部楼层
不知道为什么, 我输出不成功
发表于 2021-9-22 14:09 | 显示全部楼层
中望CAD能用吗?
发表于 2021-9-23 07:24 | 显示全部楼层
非常方便,多謝分享
发表于 2021-11-21 22:03 来自手机 | 显示全部楼层
如果可以复制到剪贴板,类似betterwmf的效果就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-30 00:00 , Processed in 0.256874 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表