找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23142|回复: 10

[已解决] 请高手帮忙修改一个旋转元件值的SKILL

[复制链接]
发表于 2014-3-19 20:37:34 | 显示全部楼层 |阅读模式
主要是我们公司经常要调元件的值,很麻烦,比调丝印还那个,所以现在想在以前调REF自动旋转和到中心的基础上修改,修改成我现在对元件COMPONENT VALUE  ---〉SILKSCREEN_TOP  自动旋转和到中心
 楼主| 发表于 2014-3-19 20:37:35 | 显示全部楼层
忘记了附件

复件 move_ref_center.zip

878 Bytes, 下载次数: 25, 下载积分: 贡献 1

发表于 2014-3-19 21:14:18 | 显示全部楼层
很好的想法,顶起。
发表于 2014-3-19 22:05:43 | 显示全部楼层
move_ref_center.rar (1.1 KB, 下载次数: 70)

text_center.gif

自动调整,不需要手动去选择text

  1. axlCmdRegister("mcenter" 'move_ref_center)
  2. procedure( move_ref_center()
  3. popup = axlUIPopupDefine(nil list(list("Done" `axlFinishEnterFun)))
  4. axlUIPopupSet(popup)

  5. axlClearSelSet()

  6. axlSetFindFilter( ?enabled  list( "noall" "text")  ?onButtons  list( "noall" "text"))
  7. curVisible = axlVisibleGet()
  8. axlVisibleDesign(nil)
  9. axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_TOP" t);可自行修改调整的层面
  10. axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_BOTTOM" t);可自行修改调整的层面
  11. alltexts = nil
  12. axlClearSelSet()
  13. axlAddSelectAll()
  14. alltexts = axlGetSelSet()
  15. when(alltexts
  16. foreach(texts alltexts
  17.   sym = texts -> parent
  18.   when( sym
  19.     comps_bbox = axlDBAltOrigin('center sym)
  20.     comps_center_x = xCoord(comps_bbox)
  21.     comps_center_y = yCoord(comps_bbox)
  22.     comps_angle = sym -> rotation
  23.     text_angle_a = texts -> rotation
  24.     r_angle = comps_angle - text_angle_a

  25. axlTransformObject(texts , ?angle  r_angle)
  26.   text_angle_b = texts -> rotation
  27. when(90<=text_angle_b && text_angle_b<270
  28.   axlTransformObject(texts , ?angle  180)
  29.   )
  30.   text_angle_c = texts -> rotation
  31.   text_center_bbox = axlDBAltOrigin('center texts)
  32.   excursion = axlGetParam(strcat("paramTextBlock:" texts->textBlock))->height

  33.   when(0<text_angle_c && text_angle_c<90
  34.    text_center_x = xCoord(text_center_bbox)
  35.    text_center_y = yCoord(text_center_bbox)
  36.    text_angle_d = text_angle_c
  37.    m_x = comps_center_x - text_center_x + 0.15 * excursion * sin(3.14159/180 * text_angle_d)
  38.    m_y = comps_center_y - text_center_y - 0.15 * excursion* cos(3.14159/180 * text_angle_d)
  39.   )
  40.    when(270<=text_angle_c && text_angle_c<360 || text_angle_c == 0
  41.     text_center_x = xCoord(text_center_bbox)
  42.     text_center_y = yCoord(text_center_bbox)
  43.     text_angle_d = 360 - text_angle_c
  44.     m_x = comps_center_x - text_center_x - 0.15 * excursion * sin(3.14159/180 * text_angle_d)
  45.     m_y = comps_center_y - text_center_y - 0.15 * excursion * cos(3.14159/180 * text_angle_d)
  46.    )
  47.     axlTransformObject(texts , ?move list(m_x ,m_y) )
  48.    )
  49.    );end foreach
  50. );end when
  51. axlVisibleSet(curVisible)
  52. axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_TOP" t)
  53. axlVisibleLayer("COMPONENT VALUE/SILKSCREEN_BOTTOM" t)
  54. );end
复制代码
 楼主| 发表于 2014-3-19 22:17:06 | 显示全部楼层
vivienluo 发表于 2014-3-19 22:05
自动调整,不需要手动去选择text

感谢vivienluo的热心帮忙!
发表于 2014-3-19 22:21:14 | 显示全部楼层
学习了,vivienluo厉害啊
 楼主| 发表于 2014-3-19 22:41:03 | 显示全部楼层
乱七八遭的,看看有没有用

skill.zip

577.68 KB, 下载次数: 57, 下载积分: 贡献 1

发表于 2014-3-19 22:49:48 | 显示全部楼层
yujianlai 发表于 2014-3-19 22:41
乱七八遭的,看看有没有用

先收藏再说,谢谢。
发表于 2015-7-7 09:37:54 | 显示全部楼层
支持一下,学习ing
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备2026063727号 )

GMT+8, 2026-10-24 08:23 , Processed in 0.065599 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表