You need to use EasyEDA editor to create some projects before publishing
Arranging parts in PBC using API javascript code
506 4
Yariv Hashai 4 years ago

Hello,

I'm having a board with some components, leds and capacitors. all the leds has a prefix with running numbers 1-200 and related capacitors with prefix of c1-c200

I searched for the API code for rotating and moving parts:
api('rotate', {ids:["gge2","gge3"],degree:90});
And for moving:
api('moveObjsTo', {objs:["gge2","gge3"], x: api('coordConvert', {type:'real2canvas',x: '10mm'}), y: api('coordConvert', {type:'real2canvas',y: '10mm'})});





The issue is that I don't know how to get the mapping between the IDs into the prefix, I was trying to rotate and move it via prefix without any success.

Does anyone familiar with how I can get the mapping between all my parts prefix to IDs? or moving parts via prefix?

Comments
andreasbernhofer 4 years ago

Hey,
you do know about "Format" -> "Distribute array"? You can use it to distribute the components in a regular pattern.
Or do you really need some arbitrary function based on the prefix? You can select e.g. all caps using the find function and the execute this:

api('getSelectedIds').split(',').forEach((id)=>{
  shape = api('getShape',{id: id});
  console.log(shape);
  prefix = Object.entries(shape.TEXT).filter(t=>t[1].type=='P')[0][1].text;
  // do your stuff with prefix and id
})

Footprints are complex shapes. You can find the prefix via Object.entries(shape.TEXT).filter(t=>t[1].type=='P')[0][1].text which finds the TEXT of the footprint of type P.
I'm sure there is a better function to get the prefix, but this is what came to my mind first ;)

Reply
andreasbernhofer 4 years ago

Okay, sure, there is a better way... the find function ;) `console.log( api('editorCall',{cmd: 'findComponent', args: ['U1','prefix']}).id );`
Better use this to iterate over your components.

Reply
andreasbernhofer 4 years ago

Sorry, correct syntax:
console.log( api('editorCall',{cmd: 'findComponent', args: ['U1','prefix']}).id );

Reply
Yariv Hashai 4 years ago

Amazing guys! thanks for the help!

Reply

Login or Register to add a comment
goToTop
你现在访问的是EasyEDA海外版,建议访问速度更快的国内版 https://lceda.cn(需要重新注册)
如果需要转移工程请在个人中心 - 工程 - 工程高级设置 - 下载工程,下载后在https://lceda.cn/editor 打开保存即可。
联系我们:https://docs.lceda.cn/cn/FAQ/Contact-Us/index.html不再提醒
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow -mockplus- -mockplus- -mockplus- -mockplus- -mockplus- -mockplus- -mockplus- -mockplus-@1x -mockplus-

Cookie Notice

Our website uses essential cookies to help us ensure that it is working as expected, and uses optional analytics cookies to offer you a better browsing experience. To find out more, read our Cookie Notice