TA的每日心情 | 开心 2025-1-23 15:05 |
---|
签到天数: 17 天 [LV.4]偶尔看看III
|
本帖最后由 aarom 于 2025-1-22 22:15 编辑
各位有"世界級事業有成就的大師們", 你們邏輯太複雜了, 小弟弟資質魯鈍.
我這"事業無成"小弟弟的邏輯 : ( 只修改 SHAPE )
1.確認 OUTLINE :
(1) 確認 allegro 版本, 新版本(17.2以上),
有 outlineID = axlDBGetDesign()->designOutline 會抓 BOARD GEOMETRY/DESIGN_OUTLINE 的dbid.
(設定"BOARD GEOMETRY/OUTLINE"無用.)
(2) 確認 allegro 版本, 舊版本(16.6以下),
outlineID = axlDBGetShapes("BOARD GEOMETRY/OUTLINE") 可能會抓到不只一個dbid,
而且格式是LIST(代表一定至少要使用 car 抓dbid.), 個人我是會用面積比較, 取最大面積的單獨 dbid.
2.確認 PACKAGE GEOMETRY/DISPLAY_TOP 的 SHAPE :
(1) DisplayTopID=axlDBGetShapes("PACKAGE GEOMETRY/DISPLAY_TOP") 會抓到不只一個dbid, 所以必須使用 foreach 一個一個抓出單獨 dbid.
3.直接 ANDNOT. (以下小弟弟能力有限,說不出指令.)
(1) 使用 foreach 一個一個抓 DisplayTopID 的 dbid 跟 outlineID 的 ANDNOT 比對是否為 "真". ( 當然要先使用 axlPolyFromDB.)
(2) 若 ANDNOT 比對是否為 "真" , 使用修改 SHAPE 指令(不是創建指令. 也不要刪除.), 修改成"真"的 "單獨 DisplayTopID 的 dbid".
除非你存檔取代零件檔案, 及更新零件, 不然依以上做法, 只要 refresh symbol 會恢復原形. (不用抓零件.)
還望看懂的大師, 指點小弟弟指令 一,二. 尤其 "使用修改 SHAPE 指令(不是創建指令. 也不要刪除.)," 省略了一些詳細步驟.
使用 創建指令 是不會跟零件 有聯繫, (就是選了零件, 選不到SHAPE.),
使用了 refresh symbol 會恢復原形, 外加保留切除的 SHAPE ,就是重疊 SHAPE .
使用 修改指令 是會跟零件 有聯繫 (就是選了零件, 也選了SHAPE.), 使用了 refresh symbol 會恢復原形 .
|
|