找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1895|回复: 24

[求助]:使用mdl怎么画share CELL呀??

[复制链接]
发表于 2005-1-10 15:24:26 | 显示全部楼层 |阅读模式

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

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

×
我得图中要把cell 转换成share cell 但是我用mdlCell_getElmDscr函数生成的还是CELL呀 参数sharedFlag  我给得事1呀
请问怎么回事
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-1-11 09:25:00 | 显示全部楼层
你当前环境连接的cell库中有没有这个共享单元的名称??我们一般做的都是一般单元,如果是共享单元,单元库的对话框中where下应该显示共享。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-11 11:59:41 | 显示全部楼层
有共享单元定义 而且dgn中有这个单元 而且mdlCell_getElmDscr得返回值已经显示成功 只是在mdlElmdscr_add后在图中没有找到添加得元素 用选择集选择所有元素也没有见到增加得元素
filepos=mdlElmdscr_add(eldP); 中filepos也正常 而且每次运行字节数都增大
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-11 13:26:28 | 显示全部楼层
那就从eldP要素开始检查,看这个eldP描述是不是正确
要不,你把源程序发上来看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-11 14:04:08 | 显示全部楼层
bool=mdlCell_getElmDscr (&eldP1, NULL, NULL, 0, TRUE, 0, NULL, 0, 1,FALSE,wstr,NULL);
printf("tt %d %S\n",bool,wstr);                     //符号名也正确
mdlElmdscr_add(eldP1);
if (eldP1) mdlElmdscr_freeAll(&eldP1);
函数直接生成得eldP1呀 应该没有什么问题把
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-11 17:11:20 | 显示全部楼层
你的mdlCell_getElmDscr函数的参数多了吧,怎么12个参数阿,应该只有10个参数才对。
另外,我一般都这样用
mdlCell_getElmDscr(&elmDP,NULL,0,&cPoint,                        NULL,NULL,NULL,0,0,fcellname);
你用的是共享单元,那倒数第二个参数为1就可以了,cPoint是放置该单元的位置坐标。
你再看看mdl里这个函数的参数吧
int mdlCell_getElmDscr
(
MSElementDescr     **cellDscrPP,                  /* <= cell element descriptor */
MSElementDescr     **txtNodeDscrPP,                  /* <= elem descr for text node */
ULong         cellFilePos,            /* => cell's file pos in lib */
Dpoint3d         *origin,          /* => origin for placement */
Dpoint3d         *scale,           /* => scale factors */
RotMatrix        *rMatrix,            /* => rot matrix for placement */
short         *attributes,            /* => append attr data to header*/
int        ggroup,           /* => graphic group number */
int        sharedFlag,          /* => 0=no, 1=shared, 2=current */
char       *cellName            /* => name of cell (optional) */
)        ;
你看看 If cellFilePos is 0, mdlCell_getElmDscr scans the library for the cell using cellName. If sharedFlag is 1 or 2 and the user has turned shared cells on, the function places a new shared cell instance without reading the cell library and cellFilePos is ignored
你的设置全都不对。
我倒是查到了这个函数
int        mdlCell_getElmDscrExtended
(
MSElementDescr        **cellDscrPP,                /* => ptr to ptr to element descr   */
MSElementDescr        **txtNodeDscrPP,        /* => ptr-ptr to empty txnode descr */
MSElementDescr  **tagDscrPP,                /* => ptr-ptr to empty tag descr    */
MSElementDescr  **tagSetDscrPP,                /* => ptr-ptr to empty tag set descr */
ULong                cellFilePos,                /* => file position of cell in lib  */
Dpoint3d        *rOrigin,                /* => origin of cell                    */
Dpoint3d        *scale,                        /* => scale factors                    */
RotMatrix        *rotMatrix,                /* => rotation matrix for cell            */
short                *attributes,                /* => attrb data to append to hdr   */
int                ggroup,                        /* => graphic group number            */
int                sharedFlag,
char                *cellName                /* => name of cell                    */
);
他的参数就是12个,和你设置的模式一样,不过这个函数我没有用过,在mdl里面查不到,是在mscell.fdf里面查到的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-1-11 19:25:00 | 显示全部楼层
我得是v8呀当然函数和你得不一样 如果cell放置位置为空得话 他会使用0,0,0做为原点

mdlSharedCell_create只是建立了一个cell头吧 难道直接添加就能放到文件中吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-1-12 11:34:44 | 显示全部楼层
SharedCell本身是个简单元素,其定义是个复杂元素。
应该用mdlSharedCell_addToFile将其添加到DGN中!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-1-12 19:39:54 | 显示全部楼层
mdlSharedCell_create (&el, NULL, &org, NULL, &scale, L"001", NULL, 0, 0, NULL);
   if (mdlSharedCell_makeSureDefExists (&el) == SUCCESS){
      filePos = mdlSharedCell_addToFile (&el, &rMatrix, 0, 0, NULL);
   }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-13 16:18:46 | 显示全部楼层
mdlSharedCell_create (&g_el, NULL, &origin, NULL, 0, L"1110", NULL, 0, 0, NULL);
if (mdlSharedCell_makeSureDefExists (&g_el) == SUCCESS)
{
mdlSharedCell_addToFile (&g_el, NULL, 0, 0, NULL);

}
system fault:5 错误出现在mdlSharedCell_addToFile (&el, NULL 0, 0, NULL); 这一句

而且我想要重新改写这个符号得定义怎么办???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-13 17:52:50 | 显示全部楼层
请注意我的程序代码:mdlSharedCell_addToFile 这个函数的第二个参数“旋转矩阵”好像不能为NULL,我给它赋了值就不出错了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-20 20:08:16 | 显示全部楼层
mdlSharedCell_create (&el, NULL, &org, NULL, &scale, L"912001", NULL, 0, 0, NULL);
但是我 设置了比例之后 没有起作用 画出得符号始终比例是1, 更改了比例
还是一样 比例始终不变

使用mdlTMatrix_×××函数 也不能改变比例呀
请问怎么更改share cell的比例大小????????
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 09:53 , Processed in 0.380915 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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