明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3916|回复: 9

[OpenDCL] 求助 opendcl不兼容问题

[复制链接]
发表于 2011-1-24 13:50:23 | 显示全部楼层 |阅读模式
请教一个问题 我用cad2006+理正建筑v4.1 调用opendcl非模态对话框 一调用就非法中断 调用opendcl下面的modeless.lsp也是一样  而在纯cad下没有问题,能帮助分析一下原因么

另外odcl怎样打包到vlx文件中

谢谢各位指点
发表于 2011-3-29 11:27:12 | 显示全部楼层
参看\OpenDCL Studio\ENU\Samples\ 下找distsample*.lsp 样例文件
   
The DistSample*.* files are lisp source code and OpenDCL files to
    demonstrate how to embed an OpenDCL project (saved as a .odcl.lsp
    file) into a vlx file, and then how to use said resource as one
    might normally use a regular OpenDCL project file.
 楼主| 发表于 2011-4-3 21:56:57 | 显示全部楼层
cjs 发表于 2011-3-29 11:27
参看\OpenDCL Studio\ENU\Samples\ 下找distsample*.lsp 样例文件

我是过了,还是不行,必须把lsp改为txt文件才可以
发表于 2011-4-4 22:06:33 | 显示全部楼层
本帖最后由 jh1005 于 2011-4-4 22:11 编辑

例如:lsp文件为test.lsp,odcl对话框文件为qq.odcl,另存为qq.odcl.lsp,修改工程文件test.prv
(PRV-DEF (:target . "TEST.VLX")
         (:active-x . T)
         (:separate-namespace)
         (:protected . T)
         (:load-file-list (:lsp "test.lsp") )
         (:require-file-list( :txt "qq.odcl.lsp"))
         (:ob-directory)
         (:tmp-directory)
         (:optimization . st)
)

用工程文件test.prv重新打包
发表于 2011-4-4 22:09:38 | 显示全部楼层
调用对话框:
(Dcl_Project_Import (vl-get-resource "qq.odcl"))
(dcl_form_show qq_xxxx)
发表于 2011-4-6 11:32:31 | 显示全部楼层
你可能没看清楚,那还需要odcl文件,打开qq.odcl.lsp,复制其中的内容到你写的lsp文件中,直接编译lsp文件就可以了。如下:
(defun _Load_ODCL_Stream (password alias / project rtype)
  (setq        project
         '复制内容
) ;_ 结束setq
    ((dcl_project_import project password alias))
  ) ;_ 结束cond
) ;_ 结束defun
主程序:
(defun
...
  (_Load_ODCL_Stream nil nil)
...
)
发表于 2011-4-7 22:20:39 | 显示全部楼层
3楼方法是把qq.odcl.lsp也打包进vlx里了,就成了txt,可以用vl-get-resource读取。
调用对话框用4楼的语句就可以,打包了就无需odcl文件。
(个人不喜欢把对话框打包进去,因为调出对话框会慢一点。)
 楼主| 发表于 2011-4-8 00:09:22 | 显示全部楼层
本帖最后由 brainstorm 于 2011-4-8 00:09 编辑

感谢大家帮助,我用的是这种
可以用vl-get-resource读取。
调用对话框用4楼的语句就可以,打包了就无需odcl文件
 楼主| 发表于 2011-4-8 00:18:04 | 显示全部楼层
本帖最后由 brainstorm 于 2011-4-8 00:20 编辑

回复 brainstorm 的帖子

再请教一个问题
假定使用非模态对话框,我现在正在屏幕上执行 (getpoint),这时鼠标回到对话框上,希望终止当前(getpoint),而激活另一段lisp代码,如何实现,我现在存在的问题是,提示 不能重复进入lisp
发表于 2012-8-22 10:23:40 | 显示全部楼层
brainstorm 发表于 2011-4-8 00:09
感谢大家帮助,我用的是这种
可以用vl-get-resource读取。
调用对话框用4楼的语句就可以,打包了就无需od ...

请问vl-get-resource函数支持的最长字符串是多少?
如果我存入的TXT文件有100万个字符可以支持吗?目前我用不到那么长的TXT,但我想知道允许的最大长度。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 08:07 , Processed in 0.192267 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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