1028695446 发表于 2019-5-2 15:23:12

【WMF】WMF输出

本帖最后由 1028695446 于 2019-5-6 21:51 编辑

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

(defun c:WMF(/ wmffile p1 p2 p11 p22 ss1 dist)
        ;;判斷"符號表"否存在;龙龙仔http://bbs.mjtd.com/forum.php?mod=viewthread&tid=4844&highlight=%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 "错误提示--请按要求选择第一点")
        )
)

likongshun 发表于 2021-12-2 22:38:29

linyangmjtd 发表于 2021-11-28 22:11
;导出图形设置成黑白色
                (setq
                        app (vlax-get-acad-object)


楼主,这段代码放在哪个位置?不知为何我的输出图形没变化还是彩色的?

小鸟 发表于 2024-7-24 15:53:27

楼主 输出怎么设置原大小 背景跟模型空间一样。我现在输出 再输入回来尺寸就变了,有没有办法做到是1:1的?

春江在线 发表于 2024-9-2 15:40:47

xman00 发表于 2021-11-21 22:03
如果可以复制到剪贴板,类似betterwmf的效果就好了

有没有大佬做出这个的效果来?
悬赏一下

sowin 发表于 2019-5-4 08:56:18

本帖最后由 sowin 于 2019-5-4 09:42 编辑

非常方便谢谢分享

烟盒迷唇 发表于 2019-6-3 19:30:02

功能很实用

kedenggao 发表于 2019-6-14 14:39:00

好用,谢谢收藏了

sunny_8848 发表于 2019-9-19 11:51:41

非常方便,多谢分享

maiko 发表于 2020-8-2 23:43:24

好人一生平安,看帖必回帖

yhly555 发表于 2020-9-15 01:07:24

不知道为什么, 我输出不成功

liums79 发表于 2021-9-22 14:09:57

中望CAD能用吗?

白色微風1991 发表于 2021-9-23 07:24:45

非常方便,多謝分享

xman00 发表于 2021-11-21 22:03:42

如果可以复制到剪贴板,类似betterwmf的效果就好了
页: [1] 2
查看完整版本: 【WMF】WMF输出