|
|
发表于 2014-3-19 22:05:43
|
显示全部楼层
move_ref_center.rar
(1.1 KB, 下载次数: 70)
自动调整,不需要手动去选择text
- axlCmdRegister("mcenter" 'move_ref_center)
- procedure( move_ref_center()
- popup = axlUIPopupDefine(nil list(list("Done" `axlFinishEnterFun)))
- axlUIPopupSet(popup)
- axlClearSelSet()
- axlSetFindFilter( ?enabled list( "noall" "text") ?onButtons list( "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 , ?angle r_angle)
- text_angle_b = texts -> rotation
- when(90<=text_angle_b && text_angle_b<270
- axlTransformObject(texts , ?angle 180)
- )
- 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
复制代码 |
|