找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 693|回复: 14

[求助]:关于复杂链的问题

[复制链接]
发表于 2004-9-26 17:57:09 | 显示全部楼层 |阅读模式

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

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

×
我用mdlElement_setSymbology(&(elEdp->el),&Erco,&Erwe,&Erwe);改变元素的颜色和线宽,类型;
结果复杂链的颜色改变了,但是线宽,类型没有改变。而线串元素颜色和线宽,类型对改变了。

mdlElmdscr_read(&elEdp,pPos->filePos,MASTERFILE,FALSE,NULL);
mdlElement_setSymbology(&(elEdp->el),&Erco,&Erwe,&Erwe);
                                mdlElmdscr_add(elEdp);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-26 21:41:50 | 显示全部楼层
要修改复杂串 所有的组成元素都要修改 只修改复杂头是不行的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-9-27 12:57:17 | 显示全部楼层
mdlElement_getSymbology,mdlElement_setSymbologyzm 对于单元的,取不出颜色,也设置不了颜色,这是怎么回事?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-27 13:47:46 | 显示全部楼层
不是已经说了吗!
mdlElement_XXX类函数只能对简单元素(如线、形、线串、弧、文本等)操作,而要对复杂元素(如复杂链、复杂形、单元、文本节点等)进行操作,必须用mdlElmdscr_XXX类函数!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-27 15:42:41 | 显示全部楼层
gp341: 像您所述的方法也无法设置单元的颜色吧?!我觉得还得用mdlElmdscr_setSymbology !!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-28 08:04:37 | 显示全部楼层
哦,我还是第一次听说。反正我不敢这么用!从道理上说不通。我回头在J版下详细测试一下再向大家说明。
------------------------------------------------------------------------------
我编写了下面一段代码用mdlElement_setSymbology来改变所有单元的线符,但没有起作用。我怀疑你的单元是否是共享单元呀?如果是共享单元它就是简单元素了,就可以用mdlElement_setSymbology了。

Private void changeCellsSymbology (void)
{
   int                            i, scanWords, numAddr, status, clr=3, wght=3, style=3;
   ULong                       elemAddr[50], filePos;
   Scanlist       scanList;
   MSElementDescr *edP = NULL;
   
        mdlScan_initScanlist (&scanList);
   mdlScan_noRangeCheck (&scanList);
   scanList.scantype            =  ELEMTYPE;
   scanList.extendedType = FILEPOS;
   scanList.typmask[0]   = TMSK0_CELL_HEADER;
          mdlScan_initialize (0, &scanList);
   do {
           scanWords = sizeof(elemAddr)/sizeof(short);
           status = mdlScan_file (elemAddr, &scanWords, sizeof(elemAddr),        &filePos);
           numAddr = scanWords / sizeof(short);
           for (i=0; i<numAddr; i++){
                   mdlElmdscr_read (&edP, elemAddr, 0, FALSE, &filePos);
                   if (edP){
                      mdlElement_setSymbology (&edP->el, &clr, &wght, &style);
                      mdlElmdscr_freeAll (&edP);
                   }
           }
        } while (status == BUFF_FULL);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-28 13:31:46 | 显示全部楼层
V7下是没有mdlElmdscr_setSymbology函数。
需要用mdlElmdscr_operation对复杂元素的每个成员进行操作!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-28 15:24:18 | 显示全部楼层
请问:
第一:mdlElmdscr_operation,Edp,mdlElement_getSymbology,params,         opFlags )mdlElement_getSymbology得到的颜色怎么和全局变量联系起来,这里的全局变量是自己定义的还是系统默认的?能否举一例子。
第二:我想通过这种方式Edp->h.dhdr.b.color获得,但是不知怎么做才是正确。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-28 16:29:12 | 显示全部楼层
mdlElmdscr_operation指定一个回调函数(Callback),在回调函数中会传入单元的每个分量元素,在回调函数中用mdlElement_setSymbology。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-30 13:47:55 | 显示全部楼层
如果Cell单元使用不同颜色的元素组成,mdlElement_getSymbology/mdlElmdscr_getSymbology
取得的Color如何计算?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-30 16:36:10 | 显示全部楼层
好像没有mdlElmdscr_getSymbology函数。
如果Cell单元使用不同颜色,就用mdlElement_getSymbology去取得各个分量元素的线符。
如Cell的元素描述符为*edP,则edP->el为单元头元素,edP->h.firstElem->el为单元中的第一个图形元素,edP->h.firstElem->h.next->el为第二个图形元素。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-9 23:09 , Processed in 0.210104 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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