在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 138|回复: 8

[求助] skill小程序有个神奇的bug,请大神帮忙debug

[复制链接]
发表于 12 小时前 | 显示全部楼层 |阅读模式
悬赏100资产已解决


把polygon转换成Path的小程序,结果长方形不行。其他形状都可以。
刚试了一下3个都是: 直的不行,拐弯的可以,就离谱。(见附件)

第一个:

hiSetBindKey("Layout" "Ctrl<key>e" "polygon2Path()")
procedure( polygon2Path()
        cv = geGetEditCellView()
        objs = geGetSelSet()
foreach(obj objs  
            if( obj~>objType == "polygon" then
                leConvertPolygonToPath(obj)
                );if
))

第二个:
hiSetBindKey("Layout" "Ctrl<key>e" "polygon2Path()")
procedure( polygon2Path()
        cv = geGetEditCellView()
        objs = geGetSelSet()
        for(i 0 length(objs)-1
            obj = nth(i, objs)
            if(obj~>objType == "polygon" then
            leConvertPolygonToPath(obj))
        );for
)
第三个:

hiSetBindKey("Layout" "Ctrl<key>e" "polygon2Path()")
procedure( polygon2Path()
        cv = geGetEditCellView()
        objs = geGetSelSet()
        objp = setof(x objs x~>objType == "polygon")
        for(i 0 length(objp)-1
            obj = nth(i, objp)
                leConvertPolygonToPath(obj));endfor
);pro


path.png

最佳答案

查看完整内容

把判断改成 obj~>objType == "polygon" || obj~>objType == "rect"
发表于 12 小时前 | 显示全部楼层
把判断改成 obj~>objType == "polygon" || obj~>objType == "rect"
回复

使用道具 举报

发表于 12 小时前 | 显示全部楼层
因为长方形的objtype不是polygon ,所以你的obj 根本就没获取到它。
回复

使用道具 举报

发表于 11 小时前 | 显示全部楼层


   

        

                
  1. hiSetBindKey("Layout" "Ctrl<key>e" "Shape2Path()")
  2. procedure( Shape2Path()
  3.     foreach(obj geGetSelSet()
  4.         when(obj->objType=="rect"
  5.              obj = leConvertShapeToPolygon(obj)
  6.         )
  7.         when( obj~>objType == "polygon"
  8.                leConvertPolygonToPath(obj)
  9.          ) ; end when
  10.     ) ; end foreach
  11. )
            

   

    复制代码
回复

使用道具 举报

发表于 11 小时前 | 显示全部楼层


实测 leConvertPolygonToPath这个函数虽然叫的Polygon,但是可以直接把rect转为path,所以按3楼改就行了
回复

使用道具 举报

 楼主| 发表于 8 小时前 | 显示全部楼层


   
acrofoxAgain 发表于 2025-12-29 11:38
实测 leConvertPolygonToPath这个函数虽然叫的Polygon,但是可以直接把rect转为path,所以按3楼改就行了
...


虽然你发的稍晚,但容然非常感谢。
回复

使用道具 举报

 楼主| 发表于 8 小时前 | 显示全部楼层


   
liuliuliu66 发表于 2025-12-29 10:46
因为长方形的objtype不是polygon ,所以你的obj 根本就没获取到它。


第一次知道 长方形不是 polygon ,理论上说四边形也是多边形
回复

使用道具 举报

发表于 8 小时前 | 显示全部楼层


   
bingyue789 发表于 2025-12-29 14:44
第一次知道 长方形不是 polygon ,理论上说四边形也是多边形


不是长方形不属于polygon。你用Create Polygon画一个长方形,它就是polygon,用Create Rectangle画一个长方形,它就是rect。
回复

使用道具 举报

发表于 6 小时前 | 显示全部楼层
debug的时候可以多把中间变量什么的输出到ciw上,看是哪里的问题
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

手机版| 小黑屋| 关于我们| 联系我们| 用户协议&隐私声明| 版权投诉通道| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 ) |网站地图

GMT+8, 2025-12-29 23:22 , Processed in 0.019995 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表