几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » SolidWorks二次开发
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2007-06-18, 11:54 AM   #1
hello098
初级会员
 
注册日期: 07-06
帖子: 7
精华: 0
现金: 20 标准币
资产: 20 标准币
hello098 向着好的方向发展
警告 【求助】SolidWorks2006 获得草图颜色

我用Feature::GetMaterialPropertyValues2 函数用在草图上是得不到颜色的,输出的double数组的值都是-1。Feature::GetMaterialPropertyValues 也得不到真实的Sketch颜色,请各位帮帮忙能不能用别的方法得到。
hello098离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
旧 2007-06-18, 03:03 PM   #2
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【求助】SolidWorks2006 获得草图颜色

1) 遍历特征树
// get the feature type name
featureTypeName = swFeature.GetTypeName();
2)判断是否为草图类型
if ( 0 != featureTypeName.Compare(_T("OriginProfileFeature")) )
3)从草图获取sketchSegment
vSketchSegments = swSketch.GetSketchSegments();
4)获取草图的颜色
ISketchSegment::GetColor
yogy离线中   回复时引用此帖
旧 2007-06-19, 08:13 AM   #3
hello098
初级会员
 
注册日期: 07-06
帖子: 7
精华: 0
现金: 20 标准币
资产: 20 标准币
hello098 向着好的方向发展
拇指朝下 回复: 【求助】SolidWorks2006 获得草图颜色

谢谢yogy!我试了一下,还是不行,SolidWork API help 里说

SketchSegment 的 get_Color() 只是对Drawing有效的

我在Part里用 无论设置Sketch为什么颜色,得到的都是同一个颜色值
long 8421504 您看看还有没其他的方法??再次感谢!!
hello098离线中   回复时引用此帖
旧 2007-06-19, 10:46 AM   #4
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【求助】SolidWorks2006 获得草图颜色

我测试和trace代码先。wait
~~~
测试结果如下:
我通过上述遍历的代码,偶尔能得到草图的不同颜色值。确实有时值不对!看来是SolidWorks的BUG。
建议:
1) open model 之后 rebuild
swRebuildOptions_e rebuildOptions = swRebuildAll; // rebuild any geometry not regenerated
swModelDoc.Rebuild (rebuildOptions);
2) 去除材质
3) 草图若是白色(255,255,255),总得到深灰色的值。

PS:8421504 对应 128,128,128 深灰色

此帖于 2007-06-22 11:54 AM 被 yogy 编辑.
yogy离线中   回复时引用此帖
旧 2007-06-22, 12:01 PM   #5
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【求助】SolidWorks2006 获得草图颜色

方便的话,写英文Email直接问API的技术支持吧!
apisupport@solidworks.com
yogy离线中   回复时引用此帖
旧 2007-06-22, 01:34 PM   #6
hello098
初级会员
 
注册日期: 07-06
帖子: 7
精华: 0
现金: 20 标准币
资产: 20 标准币
hello098 向着好的方向发展
默认 回复: 【求助】SolidWorks2006 获得草图颜色

多谢了!! 我回去试一下。
hello098离线中   回复时引用此帖
旧 2007-06-23, 02:02 PM   #7
yogy
高级会员
 
注册日期: 06-11
帖子: 1527
精华: 15
现金: 6353 标准币
资产: 6353 标准币
yogy 向着好的方向发展
默认 回复: 【求助】SolidWorks2006 获得草图颜色

一、设置面的颜色
要考虑颜色获取的优先级
1)得到系统级别的颜色设置
//Use the integer user-preference enumerations to get and set system-level or document-level settings and options. SldWorks::GetUserPreferenceIntegerValue and SldWorks::SetUserPreferenceIntegerValue get and set system-level settings and options; ModelDoc2::GetUserPreferenceIntegerValue and ModelDoc2::SetUserPreferenceIntegerValue get and set document-level settings and options. ((from SW_API help doc))
// system option: get the default shading color for the body
defaultRGBColor = swModelDoc.GetUserPreferenceIntegerValue (185 /*swDocumentColorShading*/);
2)得到模型的材质
//This property gets or sets a material's properties in the active configuration. The material values include the color (R,G,B values), reflectivity (ambient, diffuse, specular, shininess), transparency and emission. (from SW_API help doc)
// // get the default display properties of the model If one exists, it's
// color overrides the default shading color
m_vParameters = swModelDoc.GetMaterialPropertyValues();
3)得到feature的材质
4)得到face的材质

此帖于 2007-06-23 07:02 PM 被 yogy 编辑.
yogy离线中   回复时引用此帖
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 02:52 PM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多