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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: wangyan2059

[求助] 版图层次化

[复制链接]
 楼主| 发表于 2014-4-29 09:01:48 | 显示全部楼层
本帖最后由 wangyan2059 于 2014-4-29 09:32 编辑

说说这样做的好处吧:我想做的是选中一个单元加选中几个元素,按一键就能够将这几个元素打包到这个单元中,要的就是快捷嘛,相反,选中几个元素就一键就能打平到上一层,而不是顶层。这样做还有一个好处有是能自动打层次化的两邻层间的孔。这个程序在论坛中有的。前面两个小程序配合这个打孔的程序稍做修改就能实现这个要求。
发表于 2014-4-30 14:18:09 | 显示全部楼层
回复 7# wangyan2059

看下skdfref.pdf下Shape Transformation Functions
dbTransformPoint是不是你要的转换功能
 楼主| 发表于 2014-5-4 18:34:40 | 显示全部楼层
上面的程序是这个功能,但是它要用(3.000 :5.000)这种格式,中间的:号怎么弄上去啊,用什么函数吗,我的坐标都是(3.000  5.000)这种,用不了这个函数啊。
发表于 2014-5-5 13:57:33 | 显示全部楼层
回复 13# wangyan2059
range(
n_num1
n_num2
)
=> l_result
Description
Returns a list whose first element is n_num1and whose tail is n_num2. Prefix form of the : operator.

实际上是个list

a=(1:2)
=>(1 2)
type(a)
=>list
 楼主| 发表于 2014-5-8 10:01:09 | 显示全部楼层
本帖最后由 wangyan2059 于 2014-5-8 14:34 编辑

procedure( addColon(listPoint origin rotation)
prog( (listPathOne num_1 num_2 OnePoint)
listPathOne='()
foreach( OnePoint listPoint
num_1=car(OnePoint)
num_2=car(cdr(OnePoint))
listPoint=range(num_1 num_2)
listPoint=dbTransformPoint(listPoint list(origin rotation 1.0) )
listPathOne=append(listPathOne list(listPoint))
)
return(listPathOne)
);prog
);procedure
这个只是内层转外层的坐标
发表于 2014-5-10 13:27:15 | 显示全部楼层
回复 15# wangyan2059


    看来我表达有问题嘛....
    dbTransformPoint(l_point  l_list), l_point:这里是叫你提供一个点坐标的list,

    list(1 2) , '(1 2) , (1:2) ,它们的返回值就是你看到的(1 2).

    我上面不是告诉你怎么加冒号(,只是告诉你是什么意思...
 楼主| 发表于 2014-9-29 17:56:31 | 显示全部楼层
hiSetBindKey( "Layout" "<Key>F10" "transfer123()")

procedure( Orientation(orienta points)
prog( (listPoints  temp x0 y0 onePoint )

count=length(points)-1
println(count)

listPoints='()        

for( i 0 count


onePoint=car(points)


x0=car(onePoint)

y0=car(cdr(onePoint))
                 points=cdr(points)   


case(orienta

("R0"



)

("R90"


temp=y0

y0=x0

x0=0-temp)

("R180"  


y0=0-y0

x0=0-x0)

("R270"


temp=y0

y0=0-x0

x0=temp)

("MX"  


y0=0-y0)

("MY"   


x0=0-x0)

("MXR90"


temp=0-y0

y0=x0

x0=temp )

("MYR90"


x0=0-x0

temp=y0

y0=x0

x0=0-temp)

    )
listPoint=list(x0 y0)
listPoints=append(listPoints list(listPoint))                 

i=i+1

       )

return(listPoints)
    );prog);procedure

procedure( OutXY(orienta points orientPoint)
   prog( (listsPoints  count  pointsList X Y  x0 y0 i)
println(orienta)
    listsPoints=Orientation(orienta points)
    count=length(listsPoints)-1
    pointsList='()
X=car(orientPoint)
Y=car(cdr(orientPoint))
println(Y)
    for( i 0 count
    pointsOne=car(listsPoints)
     listsPoints=cdr(listsPoints)
     x0=car(pointsOne)+X
     y0=car(cdr(pointsOne))+Y
    lists=list(x0 y0)
     pointsList=append(pointsList list(lists))
    i=i+1
    )
    println(pointsList)
    return(pointsList)   
);pro
);procedure


procedure( transfer123()
let( (OutPints)
orientPoint='(-116.1 -18.15)
orienta="R90"
points='((7.65 0) (7.65 10.65) (2.2 10.65) (2.2 20.95))
println(points)
OutPints=OutXY(orienta points orientPoint)
);let
);procedure
 楼主| 发表于 2015-9-9 13:26:40 | 显示全部楼层
选中打包的元素,再选中打包进的单元,把元素的坐标转换到单元内部去就行了。
发表于 2015-9-9 14:11:09 | 显示全部楼层
功能做好了没有啊?



回复 18# wangyan2059
发表于 2018-11-21 21:19:47 | 显示全部楼层
太好了 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 06:22 , Processed in 0.020168 second(s), 5 queries , Gzip On, Redis On.

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