EDA365电子论坛网

标题: S.O.S ~ 關於變更 Shape Fill [打印本页]

作者: penny190    时间: 2022-12-27 14:04
标题: S.O.S ~ 關於變更 Shape Fill
本帖最后由 penny190 于 2022-12-28 09:37 编辑

想請問各位大大,有沒有skill 或 方法 , 可以一次性地變更整張Board file shape 的 Fill style.就是轉入的board file shape是網狀銅,如何可以將整張board file變成實心銅.

thanks



作者: ninik342    时间: 2022-12-27 15:33
https://www.eda365.com/forum.php?mod=viewthread&tid=672541&highlight=skill
你参考一下

作者: ninik342    时间: 2022-12-27 15:37
这是最新版本
作者: penny190    时间: 2022-12-27 17:41
ninik342 发表于 2022-12-27 15:37
这是最新版本


裡面似乎沒有這個功能
謝謝回覆

作者: aarom    时间: 2022-12-27 21:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: penny190    时间: 2022-12-28 09:49
aarom 发表于 2022-12-27 21:58
設定可以設啊...........

Cadence Allegro 的shape 默认显示模式是通过 菜单 “Setup” -> “User Prefe ...

設定已經是勾選了 ~~
我的意思是在不改變 User Preferences Editor設定下,可以選擇整張板子的shape
在parameters..../Shape fill下將 Fill style 變更為Solid的狀態 ( 目前的狀況是只能一次編輯一塊shape)
謝謝


作者: db-_-    时间: 2022-12-28 10:09
skill foreach(i axlDBGetShapes("BOUNDARY") axlShapeChangeDynamicType(i nil t))

在控制台输入这行命令。

看看是要这个效果吗?

此过程不可逆,请注意备份。
作者: penny190    时间: 2022-12-28 16:16
db-_- 发表于 2022-12-28 10:09
skill foreach(i axlDBGetShapes("BOUNDARY") axlShapeChangeDynamicType(i nil t))

在控制台输入这行命 ...


不好意思 , 我指的不是 ~ 動態銅箔與靜態銅箔的切換
而是拿到 pads 轉入 allegro 的檔案,shape 均為網狀shape , 一個一個轉換成solid 很浪費時間
所以才想請問各位大大,有沒有方法 OR SKILL 可以一次選取所有的shape 進行編輯

thanks

Noname.jpg (30.88 KB, 下载次数: 3)

Noname.jpg

作者: db-_-    时间: 2022-12-29 11:47
  1. axlCmdRegister("recs" 'dbRecreateShape
  2.             ?cmdType "interactive"
  3.             ?doneCmd '_dbRecreateShapeDone
  4.             ?cancelCmd '_dbRecreateShapeCancel
  5. )

  6. procedure(dbRecreateShape()
  7. (let (items lay net poly)

  8.     axlUIPopupSet(axlUIPopupDefine(nil
  9.                 '(("Done" _dbRecreateShapeDone)
  10.                   ("Oops" _dbRecreateShapeOops)     ;回退到上一步
  11.                   ("Cancel" _dbRecreateShapeCancel)
  12.     )))
  13.     axlClearSelSet()
  14.     axlSetFindFilter(?enabled `("NOALL" "SHAPES" "boundary_shapes") ?onButtons `("all"))
  15.     axlAddSelectAll()
  16.     items = axlGetSelSet()
  17.     axlClearSelSet()
  18.     mk_recs = axlDBTransactionStart()

  19.     foreach(i items      ;每个处理对象遍历
  20.         when(i->fill && i->fill != t
  21.             poly = axlPolyFromDB(i ?layer i->layer || car(i->startEnd) ?xhatch nil)
  22.             lay = i->layer
  23.             net = i->net->name
  24.             axlDeleteObject(i)
  25.             axlDBCreateShape(car(poly) t lay net)
  26.         )
  27.     )

  28.     dbRecreateShapeEvent()
  29.     axlUIPopupSet(nil)
  30. ))

  31. (defun _dbRecreateShapeDone ()
  32.     axlFinishEnterFun()
  33.     axlDBTransactionCommit(mk_recs)
  34. )

  35. (defun _dbRecreateShapeCancel ()
  36.     axlCancelEnterFun()
  37.     axlDBTransactionRollback(mk_recs)
  38. )

  39. (defun _dbRecreateShapeOops ()
  40.     axlDBTransactionOops(mk_recs)
  41. )

  42. procedure( dbRecreateShapeEvent()
  43. (let (event loop )
  44.     loop = t
  45.     while( loop
  46.         event = axlEnterEvent('(PICK) "" nil)
  47.         caseq(event->type
  48.             (DONE
  49.                 loop = nil
  50.                 _dbRecreateShapeDone()
  51.             )
  52.             (CANCEL
  53.                 loop = nil
  54.                 _dbRecreateShapeCancel()
  55.             )
  56.         )
  57.     )
  58. ))
复制代码


作者: penny190    时间: 2022-12-30 09:55
非常感謝大大幫忙解決我的困擾,大大的減少了我工作的時間,真的是感激不盡




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2