明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 14830|回复: 106

[讨论] 将dwg文件打包进自己的VLX(测试与实战)

  [复制链接]
发表于 2015-4-9 13:19 | 显示全部楼层 |阅读模式
将dwg文件打包进自己的VLX(测试与实战)
highflybird曰:DynamicWrapperX 是一个ActiveX部件,它可以极大程度地扩展LISP的编程范围,赋予DCL和VLISP更多功能
压缩包内Drawing2.dwg、Drawing2.txt、TEST1.VLX三个文件
1        Drawing2.dwg
2        Drawing2.txt是根据highflybird程序(http://bbs.mjtd.com/thread-85724-1-1.html),将Drawing2.dwg转成的二进制文件。
3        TEST1.VLX是将自写的lsp、Drawing2.txt编译的文件。

第一步 注册DynamicWrapperX
第二步 将Drawing2.dwg转成Drawing2.txt
第三步 编写自己的lisp文件,保存为w1.lsp
第四步 将w1.lsp、EditElv.txt编译成自己的vlx文件,test1.VLX
第五步 加载test1.VLX
第六步 执行命令w1.lsp内部自定义命令MyOpen,成功!!!


编写自己的lisp文件
(vl-load-com)
;;;Write Binary file from  strings
(defun WriteBinary (FileName buffer / wsObj str)
  (if (setq wsObj (vlax-create-object "ScriptControl"))
    (progn
      (vlax-put wsObj "language" "VBS")
      (setq str
       "Sub WriteBinary(FileName, Buf)
        Const adTypeBinary = 1
        Const adSaveCreateOverWrite = 2
        Dim stream, xmldom, node
        Set xmldom = CreateObject(\"Microsoft.XMLDOM\")
        Set node = xmldom.CreateElement(\"binary\")
        node.DataType = \"bin.hex\"
        node.Text = Buf
        Set stream = CreateObject(\"ADODB.Stream\")
        stream.Type = adTypeBinary
        stream.Open
        stream.write node.NodeTypedValue
        stream.saveToFile FileName, adSaveCreateOverWrite
        stream.Close
        Set stream = Nothing
        Set node = Nothing
        Set xmldom = Nothing
        End Sub"
      )
      (vlax-invoke wsObj 'ExecuteStatement str)
      (vlax-invoke wsObj 'run "WriteBinary" Filename buffer)
      (vlax-release-object wsObj)
      (princ)
    )
  )
)

(defun C:MyOpen (/ NAME)
  (or *ACAD* (setq *ACAD* (vlax-get-acad-object)))
  (setq name (vl-filename-mktemp "Drawing2.dwg"))
  (WriteBinary name (vl-get-resource "Drawing2"))
  (vla-Activate (vla-open (vla-get-Documents *ACAD*) name))
  (VL-file-delete name)  
  (princ)
)

本帖子中包含更多资源

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

x

点评

楼主:DynamicWrapperX 这个在win7 64位系统很难注册,你是否有什么好版本或好方法呢?  发表于 2015-4-10 11:48
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2020-3-14 15:55 | 显示全部楼层
感觉用高飞鸟大神的将dwg转化为二进制文件比较的费劲。可以还是喜欢古版主的转变二进制,简单、暴力、听话
发表于 2020-3-14 15:56 | 显示全部楼层
hpy 发表于 2015-4-9 19:26
dwg打包进VLX不用其他插件也可以实现。

应该说的是古版主的打包方法,简单暴力
发表于 2020-1-4 00:15 来自手机 | 显示全部楼层
hpy 发表于 2015-4-9 19:26
dwg打包进VLX不用其他插件也可以实现。

请问下怎么打包进vlx
 楼主| 发表于 2015-4-9 13:24 | 显示全部楼层
好象什么东西都可以打包
发表于 2015-4-9 14:03 来自手机 | 显示全部楼层
哈哈,谢谢大师分享心得
发表于 2015-4-9 14:13 | 显示全部楼层
回复看帖了
发表于 2015-4-9 15:04 | 显示全部楼层
这个是好东西……
发表于 2015-4-9 15:29 | 显示全部楼层
我去,这也可以
发表于 2015-4-9 17:26 | 显示全部楼层
这个是好东西
发表于 2015-4-9 18:54 | 显示全部楼层
黄大侠出新课题了!
发表于 2015-4-9 19:26 | 显示全部楼层
dwg打包进VLX不用其他插件也可以实现。

点评

说来听听呀  发表于 2015-4-10 16:29
发表于 2015-4-9 19:33 | 显示全部楼层
万能打包机吗。学习哈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 10:52 , Processed in 0.420546 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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