明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 30281|回复: 190

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

    [复制链接]
发表于 2015-4-9 11:06 | 显示全部楼层 |阅读模式
本帖最后由 自贡黄明儒 于 2015-4-9 11:07 编辑

将别的VLX打包进自己的VLX(测试与实战)
highflybird曰:DynamicWrapperX 是一个ActiveX部件,它可以极大程度地扩展LISP的编程范围,赋予DCL

和VLISP更多功能
压缩包内EditElv.VLX、EditElv.txt、TEST.VLX三个文件
1        EditElv.VLX是G版发布的拉线赋等高线高程程序
2        EditElv.txt是根据highflybird程序(http://bbs.mjtd.com/thread-85724-1-1.html),将

EditElv.VLX转成的二进制文件。
3        TEST.VLX是将EditElv.lsp、EditElv.txt编译的文件。

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


自己的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:EditElv (/ NAME)
  (setq name (vl-filename-mktemp "EditElv.vlx"))
  (WriteBinary name (vl-get-resource "EditElv"))
  (load name)
  (VL-file-delete name)
  (C:EditElv)
)



本帖子中包含更多资源

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

x

点评

不需要使用DynamicWrapperX,也可以是任意格式的文件。只需要将任意文件转换成十六进制的文本文件直接打包进VLX,然后调用时判断若任意文件不存在,将vl-get-resource的十六进制字符写出到任意文件即可  发表于 2016-3-3 19:35
XLRX_API函数库有支持二进制文件和16进制文本文件的互转函数!XLRX-File-Binary2Text、XLRX-File-TextStr2Binary、XLRX-File-Text2Binary、XLRX-File-Binary2TextStr!详细语法参见帮助文件!  发表于 2015-4-16 09:49
楼主 DynamicWrapperX 在win7以上 64位系统注册用不了,另外如果在这样的系统下安装的cad2006(只有32位)和2012以上(64位的)这样好像也没有办法 32位和64位的cad都能用,是否有什么好办法呢?  发表于 2015-4-13 11:45
该技术可以为情报机构服务  发表于 2015-4-11 16:53

评分

参与人数 1明经币 +1 收起 理由
ucuc2003 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2023-5-6 19:39 | 显示全部楼层
狂顶
用力顶
我用力顶
我很用力顶
再加上千斤顶
总之把它顶到顶
接着使出葵花宝顶
就算顶到史前也要顶
老子看了会用道德经顶
孔子亲自拜你为师天天顶
秦始皇站在阿房宫上使劲顶
汉高祖挥师杀向东罗马为你顶
吕布抛弃了貂禅而选择了帮你顶
张三丰见了后用太极拳九式全力顶
左冷禅召开武林盟主大会商讨如何顶
西门吹雪从此学会了最强一招剑神一顶
发表于 2022-12-19 12:20 | 显示全部楼层
令: (WriteBinary name (vl-get-resource "XK"))
声明失败: 文件 ..\KERN\FNS\VRTLIB.CPP,行 366:
st_readablep(istm)
LPP: 上个错误可能是致命错误; 错误: 声明失败: 文件 ..\KERN\FNS\VRTLIB.CPP,行 366:
st_readablep(istm)
发表于 2022-12-20 11:52 | 显示全部楼层
新手不太懂,CAD2014无法运行,,,找了找,请转http://bbs.mjtd.com/forum.php?mo ... ight=DynamicWrapper,用这里的转就可以了。。感谢大神们的分享!1
发表于 2015-4-9 11:26 | 显示全部楼层
感谢楼主分享。。。。
发表于 2015-4-9 11:28 | 显示全部楼层
本帖最后由 lucas_3333 于 2015-4-9 11:31 编辑

感谢分享,学习学习

话说这样打包进去有什么用?

点评

这样你就可以拥有一个vlx就可以了。  发表于 2015-4-9 11:55
发表于 2015-4-9 11:30 | 显示全部楼层
看起来很不错!
发表于 2015-4-9 11:42 | 显示全部楼层
没啥说的先顶在下!!!!!!!!!!
发表于 2015-4-9 12:29 | 显示全部楼层
黄工好久不见.感谢分享!

点评

到晓东cad去混了一段时间  发表于 2015-4-9 13:26
发表于 2015-4-9 12:33 | 显示全部楼层
这个东西好,纯支持!
发表于 2015-4-9 12:42 | 显示全部楼层
感谢楼主分享。。。。
发表于 2015-4-9 12:54 | 显示全部楼层
这个东西好,必须支持!
发表于 2015-4-9 13:07 | 显示全部楼层
学习黄大师                     
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 09:02 , Processed in 0.357245 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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