找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2913|回复: 15

有objectdcl 2007了

[复制链接]
发表于 2006-9-19 23:53:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
http://sourceforge.net/project/showfiles.php?group_id=173347
有2007版本的源码了,可怜业余户不会编译,哪位高手编译后共享!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-9-20 08:01:23 | 显示全部楼层
http://jaist.dl.sourceforge.net/ ... ll_Installation.zip
这个是可以安装的版本啊

安装之后写了一篇学习日记,只是一个超级简单的入门记录,高手莫笑,记录如下,以后学习多了,再添加吧:)
[php]

Object dcl 学习日记
华南理工大学建筑学院 qjchen
http://qjchen.googlepages.com
1.入门
今天,Libo2000说objectdcl2007出了,于是下一个回来学习
下载地址是:
http://jaist.dl.sourceforge.net/ ... ll_Installation.zip
安装之后的界面如图所示:

由于之前对objectdcl一窍不通,所以只能从头学起了。
首先根据帮助,必须在autocad中把objectdcl的安装目录和其下的example设置为支持路径。
下一步,关闭acad重启,加载安装目录下的objectdcl2004.arx以及example下面的demo.lsp。
加载之后,让我们看看objectdcl都有些什么样子的功能:
输入序号后的相应命令:如demo,demo2等
1)Demo

block里面可以load dwg,于是我加入一个自己作的dwg图,可以显示,非缩略图形式。

slide中按道理应该可以看到幻灯片的,不过可能是作者忘记放这几个支持文件吧,没有看到东西。

Combobox里面有一些下拉框等控件


Misc中有进度条,查找目录,选择等控件,有一个angle slider是vb没有的控件,挺有趣的。
2)demo2

Demo2中第一个picture box,可以绘制许多类型的图形。

Slider里面有不少直观显示数值变化的控件
  
而Manipulation里面可以动态控制控件位置
3)demodockable:

demodockable 可以增加一个侧边栏
4)demomodelss

demomodelss 可以当浮动工具栏使用,在这个界面下,你仍然可以进行acad的其他操作,如画线等。
5)events:

events用于触发某种事件,还不大明白起什么作用。

6)html:

按道理应该显示objectdcl网站的,不知道哪里出问题看不到。
7)viewdwg

显示缩略图。
8)folder

显示目录选择框
9)MsgBox

出现不同类型的提示框
10)tree:



可以人为控制的树状结构
看完了它的功能,还是让人很向往的。下一步要学习怎么自己创建一个自己的objectdcl文件了。
按照帮助来,作一个Hello World程序
1)添加一个窗体

如上图操作,添加了一个叫DclForm1的窗体
2)添加两个控件,一个是label1,一个是textbutton1。

把textbutton的Caption选项改为OK。
3)输入需要的代码
把下面一段代码拷入到Lisp的编辑程序中:
(defun ObjectDCL_LoadArx ()   (if (not (member "objectdcl.arx" (arx)))      (arxload "objectdcl.arx" "ObjectDCL.arx not found.")   ))(defun c:Hello ()   ; ensure the ObjectDCL.arx file is loaded   (ObjectDCL_LoadArx)   ; call the method to load the Hello.odc file.   (Odcl_LoadProject "Hello")   ; call the method to show the Hellow world dialog box example   (Odcl_Form_Show Hello_DclForm1)   (princ))
如下图示,本人用的是Lisplink,其他任何文本编辑器也都是一样。

4)添加一段控制控件的代码

如上图,选择整个窗体,依次点右边的三个箭头,这个是关于窗体初始化时候作的事情。(注意,帮助文件中写的最后一个箭头是add to lisp,而实际中改成了copy to clipboard,应该是没有来得及改过来的缘故),去Lisp编辑器中把这段代码加上。
再如上图,选择ok按钮,依次点右边的三个箭头,这个是关于点击Ok键时候的事件触发。去Lisp编辑器中把这段代码加上。
        这个时候,可以看到新增加的代码是
(defun c:DclForm1_OnInitialize ()     (Odcl_MessageBox "To Do: code must be added to DclForm1" "To do"))(defun c:DclForm1_TextButton1_OnClicked ()     (Odcl_MessageBox "To Do: code must be added to TextButton1" "To do"))

这段代码明显达不到最终的要求,必须对里面的语句进行修改,看来这个只是给我们一个函数名称的功能了。比较奇怪的地方是它都采用了c:开始的函数,这个在objectdcl的帮助中有说明。
那么,把上面两段话修改,改成如下内容:
(defun c:DclForm1_OnInitialize ()     ; call the method to set the textual display of the Label to state "Hello World"     (Odcl_Control_SetProperty "Hello" "DclForm1" "Label1" "Caption" "Hello World")) (defun c:DclForm1_TextButton1_OnClicked ()     ; call the method to close the Hello World dialog box example.     (Odcl_Form_Close Hello_DclForm1))
注意,objectdcl的安装目录中有objectdcl manual.doc和objectdcl.hlp两个文件,第一个似乎版本更新一些,在hlp中的帮助是还没有更新。看这段代码,我们发现有一批新的函数odcl开头的函数。

关于c:函数和普通dcl中常用的actiontile,帮助文件说了如下的话:
Your program will never need to call this method directly, ObjectDCL will call it for you when the user press the OK button. The C: in the defun may seem like it should be declared without the C: because its a function to be called by another program and not by a user, but ObjectARX requires the C: in many cases to be able to actually activate the function. By requiring this, we have taken this confusing step out for you, so you don’t have to keep track of what events from what dialog box types require what type of declaration of defun’s.In Standard DCL you would normally use the ActionTile calls to set variables and close commands to close the dialog box, with ObjectDCL we have setup defun’s that it calls instead.  This allows more flexible and powerful steps, procedures and checking to take place when a user takes an action.  Using this event defun system, you can easily setup any action to check the user’s input against certain conditions and rules. You can also call ObjectDCL supplied to modify the look or contents of ObjectDCL controls.

大致的意思是,objectdcl中会用到不少c:开头的函数,至于为什么这样,你就先别理照作就是。而actiontile比较麻烦,objectdcl用了另外的方法来处理,根据灵活。
好了,把刚才编辑成功的几段代码存为hello.lsp
5)保存文件:
把这个窗体文件在objectdcl中存到acad的支持目录下,赋名为hello.odc。如下图所示

6)运行程序
在acad中加载hello.lsp,必要的时候加载objectdcl2004.arx,输入hello命令,出现如下图形:

2006.9.20
[/php]

具体的有图片版本放在这里,
http://qjchen.googlepages.com/chinese
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-21 20:35:14 | 显示全部楼层
这个还是2004的,看文件属性还是2005年修改的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-21 21:58:48 | 显示全部楼层
那真不好意思,由于是初次学习,因此搞错了。还是请高手出手编译吧:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-21 23:11:49 | 显示全部楼层
可以问一下?objectdcl是干什么用的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-12 12:47:32 | 显示全部楼层
编译后的objectdcl2007.arx可以下载了,但是对话框不兼容,需要重新保存!
http://sourceforge.net/project/showfiles.php?group_id=173347
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8612个

财富等级: 富甲天下

发表于 2006-10-13 08:44:07 | 显示全部楼层
那个可执行文件不能用,不知怎么重新保存?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-1 01:39:33 | 显示全部楼层
那个执行文件是可以用的,只是不能打开旧版本的对话框。
我想可能要将原来的对话框重新画一下了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-3 13:13:14 | 显示全部楼层
楼上说说怎么用那个执行文件?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-3 23:38:31 | 显示全部楼层
不知问题解决了没有?唉……
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-4 00:37:38 | 显示全部楼层
直接运行就可以了,不过不要打开就文件,需要重新制作,因为现在保存后的odc文件是一个文本文件,不象以前的版本是编译的。所以旧文件不能打开。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-4 23:40:11 | 显示全部楼层
真正的好用的OBJECTDCL2007出来了,昨天刚出炉的。
下载了打开原来的ODC另存就可以在ACAD2007下运行了。
下载地址:
http://sourceforge.net/project/showfiles.php?group_id=173347
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-5 13:46:57 | 显示全部楼层
路过,帮忙顶上去
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-5 16:38:33 | 显示全部楼层
好消息,尽管还存在一些Bug,但仍值得期待...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-8 00:25:34 | 显示全部楼层
只是保存后的文件,用它自己却打不开,还要用原先的那个才行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 10:29 , Processed in 0.239166 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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