| 谢谢分享 |
| 学习了 |
![]() |
| 谢谢wg2005 的解答,我会努力的。 |
|
很好!自己解决!我赞同! 其实你的问题是很好解决的,但每个公司规范不一样,Value值的层面也不一样,有的公司是在COMPONENT VALUE/SILKSCREEN;有的是DEVICE TYPE/SILKSCREEN层;也有的在DEVICE TYPE/ASSEMBLY层等等,这样就很乱,可能写出来的程序适合你用,但又不适合其他人用。所以自己解决,适合自己公司规范的程序。 可以用两种方法实现; 其一,用到axlTransformObject函数;axlTransformObject(ldbid, ?move '(100.0, 0.0)) 它的坐标是相对坐标 1.获取器件的坐标; 2.获取器件对应的Ref和Value值信息的坐标; 3.通过comps_center_x - text_center_x ,comps_center_y - text_center_y得到他们在PCB板上面的差值; 4.利用axlTransformObject(txt , ?move list(comps_center_x - text_center_x ,comps_center_y - text_center_y)) 方法移动丝印到器件中心上。 5.从你提供的图片显示好像将这些丝印不是放置在器件中心,而是器件的左上脚和右下脚处。实现的方法就要获取器件的PLACE_BOUND信息了,每个公司对PLACE_BOUND定义是不一样的,正确的PLACE_BOUND大小是反映器件实体大小,但有的lib建库闲麻烦就随意画了一个区域,这样就比较麻烦点了。如果你的lib的PLACE_BOUND建的比较规范,那么就可以axlTransformObject(txt , ?move list(place_bound_x - text_center_x ,place_bound_x - text_center_y)) ;place_bound_x和y可以利用Bbox方法获取左上、左下、右上、右下角的坐标了。 其二,用到axlDBCreateText函数;axlDBCreateText( "Chamfer both sides", 7600:4600,myorient, "board geometry/plating_bar", nil)进行创建文字;它的坐标是绝对坐标。 如果你会编写程序,就很简单的办到了。如果你不会,想自学,及时提供中文教程,学起来都很吃力。就像C++语言一样,教程太多太多,即使看完了书能编出程序很难啊。没有人进行现场指导。 明年深圳在4月份左右会有相应的Skill培训,手把手的讲解,从基础开始,现场给你答解任何问题。 https://www.eda365.com/thread-30907-1-1.html |
| 没人帮我,看来只有自己学了. |
| 有一个SKILL只能把REF居中,但还不是很好用。也不是我想要的效果。我相信这样的SKILL是可以在ALLEGRO中做出来的,期待高手帮忙。 |
|
你想用偷懒的办法,是不行的。 要做成这个样子,不需要skill,你把库做好即可。把ref和value选择合适的字体,放到合适的地方, 这样在做assembly drawing的时候,就有上面的效果了。方向要手动改一下,allegro这个不好。 当然,sch要做好,要不然会没有value正确的信息。 |
| 这个功能在PROTEL中很好实现 ALLEGRO中不好弄啊。同样需要。 |
/1
关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )
GMT+8, 2025-11-22 09:45 , Processed in 0.171875 second(s), 29 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050