请高手帮忙修改一个旋转元件值的SKILL
主要是我们公司经常要调元件的值,很麻烦,比调丝印还那个,所以现在想在以前调REF自动旋转和到中心的基础上修改,修改成我现在对元件COMPONENT VALUE---〉SILKSCREEN_TOP自动旋转和到中心忘记了附件 很好的想法,顶起。
自动调整,不需要手动去选择text
axlCmdRegister("mcenter" 'move_ref_center)
procedure( move_ref_center()
popup = axlUIPopupDefine(nil list(list("Done" `axlFinishEnterFun)))
axlUIPopupSet(popup)
axlClearSelSet()
axlSetFindFilter( ?enabledlist( "noall" "text")?onButtonslist( "noall" "text"))
curVisible = axlVisibleGet()
axlVisibleDesign(nil)
axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_TOP" t);可自行修改调整的层面
axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_BOTTOM" t);可自行修改调整的层面
alltexts = nil
axlClearSelSet()
axlAddSelectAll()
alltexts = axlGetSelSet()
when(alltexts
foreach(texts alltexts
sym = texts -> parent
when( sym
comps_bbox = axlDBAltOrigin('center sym)
comps_center_x = xCoord(comps_bbox)
comps_center_y = yCoord(comps_bbox)
comps_angle = sym -> rotation
text_angle_a = texts -> rotation
r_angle = comps_angle - text_angle_a
axlTransformObject(texts , ?angler_angle)
text_angle_b = texts -> rotation
when(90<=text_angle_b && text_angle_b<270
axlTransformObject(texts , ?angle180)
)
text_angle_c = texts -> rotation
text_center_bbox = axlDBAltOrigin('center texts)
excursion = axlGetParam(strcat("paramTextBlock:" texts->textBlock))->height
when(0<text_angle_c && text_angle_c<90
text_center_x = xCoord(text_center_bbox)
text_center_y = yCoord(text_center_bbox)
text_angle_d = text_angle_c
m_x = comps_center_x - text_center_x + 0.15 * excursion * sin(3.14159/180 * text_angle_d)
m_y = comps_center_y - text_center_y - 0.15 * excursion* cos(3.14159/180 * text_angle_d)
)
when(270<=text_angle_c && text_angle_c<360 || text_angle_c == 0
text_center_x = xCoord(text_center_bbox)
text_center_y = yCoord(text_center_bbox)
text_angle_d = 360 - text_angle_c
m_x = comps_center_x - text_center_x - 0.15 * excursion * sin(3.14159/180 * text_angle_d)
m_y = comps_center_y - text_center_y - 0.15 * excursion * cos(3.14159/180 * text_angle_d)
)
axlTransformObject(texts , ?move list(m_x ,m_y) )
)
);end foreach
);end when
axlVisibleSet(curVisible)
axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_TOP" t)
axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_BOTTOM" t)
);end
vivienluo 发表于 2014-3-19 22:05 static/image/common/back.gif
自动调整,不需要手动去选择text
感谢vivienluo的热心帮忙! 学习了,vivienluo厉害啊 乱七八遭的,看看有没有用
yujianlai 发表于 2014-3-19 22:41 static/image/common/back.gif
乱七八遭的,看看有没有用
先收藏再说,谢谢。 支持一下,学习ing 学习。。。学习 。。。
页:
[1]
2