找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3337|回复: 79

[求助]:mdl开发中遇到的问题?(建议跟贴)

[复制链接]
发表于 2004-6-14 08:33:44 | 显示全部楼层 |阅读模式

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

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

×
我刚接触MDL,那位大侠能否介绍一下mdl开发的流程(步骤)!我在此先谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-14 10:42:53 | 显示全部楼层
ms的mdl目录里面有例子 只要修改mc文件就可以编写你自己的程序 这是最简单的方法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-14 15:46:41 | 显示全部楼层
怎样编译mc,h文件?我在资料上看到“mcomp ”编译命令,但是不知道怎么样用?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-15 08:12:45 | 显示全部楼层
①启动MicroStation程序组中的MicroStation Development Shell;
②在出现的黑窗口中用CD命令进入某例子目录中;
③键入bmake回车即可根据该目录中的制作文件MKE自动调用编译程序mcomp.exe和连接程序mlink.exe以及资源编译程序rcomp.exe和库程序rlib.exe生成ma(MicroStation应用)文件。
④进入MicroStation,键入MDL LOAD XXX即可运行刚生成的MA文件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-17 10:06:20 | 显示全部楼层 |阅读模式

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

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

×
mstndevvars.bat文件内容如下:
@echo off

echo Visual C++ product directory could not be found.
echo Set nttools to Visual C++ product directory.
echo Set LIB and INCLUDE appropriately.
set nttools=
set LIB=
set INCLUDE=

set MS=C:\Bentley\Program\MicroStation
set BMAKE_OPT=-I%MS%\mdl\include -I%MS%\jmdl\include
set PATH=%PATH%;%MS%;%MS%\mdl\bin;%MS%\jmdl\bin
set CLASSPATH=.;%MS%\jmdl\lib\classes.zip;%MS%\jmdl\lib\jmdlsdk.jar;%MS%\jmdl\lib\swingall.jar;%MS%\jmdl\lib\bentley.jar;%MS%\jmdl;%CLASSPATH%
set MLINK_STDLIB=C:\Bentley\Program\MicroStation\mdl\library\builtin.dlo

C:
cd \Bentley\Program\MicroStation

请问一下
LIB和INCLUDE需要设置路径吗?MLINK_STDLIB的路径设置对不对?
我在编译ref_bord.mc(从论坛上拷贝的),出现了下面问题
C:\ref_bord>bmake ref_bord.mke
Bentley Systems Make Utility. Version 7.15, Sep 14 1999
Wed Jun 16 15:11:28 2004

C:\Bentley\Program\MicroStation\mdlapps\ref_bord.ma: C:\Bentley\Program\MicroSta
tion\mdl\objects\ref_bord.mo C:\Bentley\Program\MicroStation\mdl\library\mdllib.
dlo C:\Bentley\Program\MicroStation\mdl\library\ditemlib.dlo
文件名、目录名或卷标语法不正确。
BMAKE: call trace
    line:   33, C:\ref_bord\ref_bord.mke
Wed Jun 16 15:11:28 2004, elapsed time: 0:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-17 11:12:13 | 显示全部楼层
① LIB和INCLUDE环境变量是用于VC++程序的编译链接的,如果你的项目中是纯MDL开发的,这两项没有用(实际上这几行上面的英文注释已经说得很清楚);
②我机器上的MLINK_STDLIB是如下设置的:
set MLINK_STDLIB=%MS%\mdl\library\builtin.dlo %MS%\mdl\library\dgnfileio.dlo %MS%\mdl\library\toolsubs.dlo
③如果MLINK_STDLIB指向了正确的路径,ref_bord的编译可能就没有问题了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-17 14:13:15 | 显示全部楼层
最好先试试ms自带的例子 容易编译
下载的例子 可能mke文件里的路径不对
你把程序发来看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-17 18:19:15 | 显示全部楼层
其他例子编译没出问题,参照MicroStation迷提供的设置,我设置了MLINK_STDLIB,还是出现了问题,我在机子上检索了相关文件,发现没有dgnfileio.dlo文件。 不知是否与此有关?
ref_bord.mc如下:
#include        mdl.h
#include        tcb.h
#include         refernce.h
#include         mselemen.fdf//头文件都有尖括号

extern ReferenceFile *refFileP;
/*-----------------------------------------+
|                    main                  |
+------------------------------------------*/
Private void main(void)
{
  int refNo,numVertices;
  DPoint3d pts[MAX_VERTICES],delta;
  MSElement el;
  for(refNo=0;refNo<tcb->maxRefs;refNo++)
  {
    if(refFileP[refNo].file_id.cache_slot==0)
    continue;
    if(refFileP[refNo].clip.clipP->x==REF_LMINI4&&
    refFileP[refNo].clip.clipP->y==REF_LMINI4)
    continue;
    for(numVertices=0;numVertices<refFileP[refNo].clip.clip_vertices;numVertices++)
    {
      if(refFileP[refNo].clip.clipP[numVertices].x==DISCONNECT)
      break;
      pts[numVertices].x=refFileP[refNo].clip.clipP[numVertices].x
      +refFileP[refNo].display.mast_org.x;
      pts[numVertices].y=refFileP[refNo].clip.clipP[numVertices].y
      +refFileP[refNo].display.mast_org.y;
      pts[numVertices].z=fc_zero;
     }
     mdlShape_create(&el,NULL,pts,numVertices,0);
     mdlElement_display(&el,NORMALDRAW);
     mdlElement_add(&el);
  }
  mdlSystem_exit(0,1);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-18 08:05:08 | 显示全部楼层
shengl: 你用的是哪个版本的MS ? 我的MSV8中有这个文件呀!见附件(压缩成了RAR,因为DLO文件不让作为附件)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-6-18 13:43:29 | 显示全部楼层
楼主 我真是服你了 问问题的时候请你说清楚些
请你使用ms自带的例子好吗 这样容易找问题
等你编译通过了在试其它的例子

在dos窗口下 打入如下命令 请将ms的路径换成你的路径
path e:\win32app\ustation\mdl\bin
set MS=e:\win32app\ustation
set IPATH=d:\win32app\ustation\mdl\include
set MDL_COMP=-ie:\win32app\ustation\mdl\include
set RSC_COMP=-ie:\win32app\ustation\mdl\include

然后进入例子目录 使用bmakewin 编译
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-22 12:22:47 | 显示全部楼层
自带的例子,我编译了几个,没出问题。
编译了从论坛上下载的20个mdl例子,也没出问题。
我想可能是版本的问题吧

请问mdl函数中有没有通过鼠标选择元素的函数,捕捉元素(比如线串)上点的函数?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-6-24 16:27:23 | 显示全部楼层
请问:有没有调用软件中的“修改元素属性”对话框的函数?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-24 16:35:03 | 显示全部楼层
mdl直接修改元素属性
如果你只是想调用某个命令 可以是mdlInput_sendKeyin 或者mdlInput_sendCommand
例如 mdlInput_sendKeyin ("change icon", 0, 0, NULL);   //修改元素属性对话框
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 12:39 , Processed in 0.486596 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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