11.png (104.08 KB, 下载次数: 4)
222.png (9.51 KB, 下载次数: 5)
aarom 发表于 2022-03-26 01:40:31
本帖最后由 aarom 于 2022-3-26 02:03 编辑
他的寫法是在 form 裡,單獨控制每層的"顏色"及"是否顯示".
你異想天開不改form, 想利用二個選項,
1."BOARD GEOMETRY/OUTLINE" 選項同時控制"BOARD GEOMETRY/DESIGN_OUTLINE" "BOARD GEOMETRY/CUTOUT" "BOARD GEOMETRY/OUTLINE".
2."SilkT"選項同時控制"REF DES/SILKSCREEN_TOP" "ACKAGE GEOMETRY/SILKSCREEN_TOP" "BOARD GEOMETRY/SILKSCREEN_TOP"
問題他是單獨層的控制! 你要你列出的層面一層一層選嗎??
你想清楚再說, 這裡應該有人會幫. (不一定會是我.)
還是只要選項不管顏色,就能一齊控.
----------------------------------------
例如:這是他 form 的"BOARD GEOMETRY/OUTLINE" 單獨控制. 每增加一個層,就要增加一組,及改Y軸數字, 判斷名稱.(你框的是判斷完要的結果.)
fprintf(h "FIELD outline_color\n")
fprintf(h "FLOC 2 1\n")
fprintf(h "COLOR 2 1\n")
fprintf(h "ENDFIELD\n")
fprintf(h "FIELD outline_check\n")
fprintf(h "FLOC 4 1\n")
fprintf(h "CHECKLIST \"Board Geometry/Outline\"\n")
fprintf(h "ENDFIELD\n")
db-_- 发表于 2022-03-26 01:36:59
复制粘贴不就好了。
form里面一份
初值一份
form相应函数一份
callback里面再复制这一份就好了。
复制代码
- ("SilkT_check"
- axlVisibleLayer("REF DES/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleUpdate(t)
- )
aarom 发表于 2022-03-26 01:40:31
本帖最后由 aarom 于 2022-3-26 02:03 编辑
他的寫法是在 form 裡,單獨控制每層的"顏色"及"是否顯示".
你異想天開不改form, 想利用二個選項,
1."BOARD GEOMETRY/OUTLINE" 選項同時控制"BOARD GEOMETRY/DESIGN_OUTLINE" "BOARD GEOMETRY/CUTOUT" "BOARD GEOMETRY/OUTLINE".
2."SilkT"選項同時控制"REF DES/SILKSCREEN_TOP" "ACKAGE GEOMETRY/SILKSCREEN_TOP" "BOARD GEOMETRY/SILKSCREEN_TOP"
問題他是單獨層的控制! 你要你列出的層面一層一層選嗎??
你想清楚再說, 這裡應該有人會幫. (不一定會是我.)
還是只要選項不管顏色,就能一齊控.
----------------------------------------
例如:這是他 form 的"BOARD GEOMETRY/OUTLINE" 單獨控制. 每增加一個層,就要增加一組,及改Y軸數字, 判斷名稱.(你框的是判斷完要的結果.)
fprintf(h "FIELD outline_color\n")
fprintf(h "FLOC 2 1\n")
fprintf(h "COLOR 2 1\n")
fprintf(h "ENDFIELD\n")
fprintf(h "FIELD outline_check\n")
fprintf(h "FLOC 4 1\n")
fprintf(h "CHECKLIST \"Board Geometry/Outline\"\n")
fprintf(h "ENDFIELD\n")
db-_- 发表于 2022-03-26 17:56:58
上面不变。改一下这个函数就行。
功能点击一个check,开启/关闭三个层。颜色没有意义,忽略即可。
复制代码
- defun( ViewLayer_Callback (h)
- case( h -> curField
- ("outline_check"
- axlVisibleLayer("BOARD GEOMETRY/OUTLINE" ,h->curValue)
- axlVisibleLayer("BOARD GEOMETRY/DESIGN_OUTLINE" ,h->curValue)
- axlVisibleLayer("BOARD GEOMETRY/CUTOUT" ,h->curValue)
- axlVisibleUpdate(t)
- )
- ("SilkT_check"
- axlVisibleLayer("REF DES/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleUpdate(t)
- )
- )
- )
zs_king 发表于 2022-03-26 20:50:01
[quote]db-_- 发表于 2022-03-26 17:56:58
上面不变。改一下这个函数就行。
功能点击一个check,开启/关闭三个层。颜色没有意义,忽略即可。
复制代码
- defun( ViewLayer_Callback (h)
- case( h -> curField
- ("outline_check"
- axlVisibleLayer("BOARD GEOMETRY/OUTLINE" ,h->curValue)
- axlVisibleLayer("BOARD GEOMETRY/DESIGN_OUTLINE" ,h->curValue)
- axlVisibleLayer("BOARD GEOMETRY/CUTOUT" ,h->curValue)
- axlVisibleUpdate(t)
- )
- ("SilkT_check"
- axlVisibleLayer("REF DES/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleLayer("PACKAGE GEOMETRY/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_TOP" ,h->curValue)
- axlVisibleUpdate(t)
- )
- )
- )
aarom 发表于 2022-3-27 20:04
建議勾選和顏色要分開.
可以一起選或單獨選開關, 不然就只留勾選.
只是建議
aarom 发表于 2022-3-27 20:04
建議勾選和顏色要分開.
可以一起選或單獨選開關, 不然就只留勾選.
只是建議
1621142761 发表于 2022-3-28 19:17
做成这样了,不过我又有问题了,做了个on和off,这两个不知道怎么做,能不能帮忙添加一下,想让点ON的时 ...
1.41 KB, 下载次数: 0, 下载积分: 贡献 -30 , 威望 -10
zs_king 发表于 2022-03-28 19:21:05
不如对着365里面的quicklayer做。
aarom 发表于 2022-03-28 22:11:41
我做的是這樣.
[attach]336398[/attach]
aarom 发表于 2022-03-29 08:12:15
本帖最后由 aarom 于 2022-3-29 08:18 编辑
顯示一齊選或不選......
defun( ViewLayer_Callback (h)
case( h -> curField
("outline_check"
axlVisibleLayer("BOARD GEOMETRY/OUTLINE" ,h->curValue)
axlVisibleLayer("BOARD GEOMETRY/DESIGN_OUTLINE" ,h->curValue)
axlVisibleLayer("BOARD GEOMETRY/CUTOUT" ,h->curValue)
axlFormSetField(w,"outline_color",axlLayerGet("BOARD GEOMETRY/OUTLINE")->visible) ;傳回chechlist-"outline_color" 選或不選,但顏色黑是另外處理.
axlFormSetField(w,"outline_color1",axlLayerGet("BOARD GEOMETRY/DESIGN_OUTLINE")->visible)
axlFormSetField(w,"outline_color2",axlLayerGet("BOARD GEOMETRY/CUTOUT")->visible)
axlVisibleUpdate(t)
)
("SilkT_check"
axlVisibleLayer("REF DES/SILKSCREEN_TOP" ,h->curValue)
axlVisibleLayer("ACKAGE GEOMETRY/SILKSCREEN_TOP" ,h->curValue)
axlVisibleLayer("BOARD GEOMETRY/SILKSCREEN_TOP" ,h->curValue)
axlFormSetField(w,"SilkT_color",axlLayerGet("REF DES/SILKSCREEN_TOP")->visible)
axlFormSetField(w,"SilkT_color1",axlLayerGet("ACKAGE GEOMETRY/SILKSCREEN_TOP")->visible)
axlFormSetField(w,"SilkT_color2",axlLayerGet("BOARD GEOMETRY/SILKSCREEN_TOP")->visible)
axlVisibleUpdate(t)
)
aarom 发表于 2022-3-29 08:12
顯示一齊選或不選......
defun( ViewLayer_Callback (h)
case( h -> curField
动画.gif (77.19 KB, 下载次数: 2)
1621142761 发表于 2022-3-29 19:52
不好意思,看错了,我试了下你的方法,但是不知为啥我做的点子选项无法开关,能否帮忙看下
1.43 KB, 下载次数: 0, 下载积分: 贡献 -30 , 威望 -10
selena19730105 发表于 2022-3-29 15:49
哭哭~又是威望值不夠不能下載~

zs_king 发表于 2022-3-29 07:18
像这个类型的代码,可以相同样式的,用List+循环来做,可能会稍微好点 !
下面这个图提供一下思路。。 ...

zs_king 发表于 2022-03-30 11:23:28
[quote]1621142761 发表于 2022-03-29 19:58:27
[quote]selena19730105 发表于 2022-3-29 15:49
哭哭~又是威望值不夠不能下載~

zs_king 发表于 2022-3-30 11:23
不是完整版的,ON和OFF还不知道怎么做,正在请各路大神帮忙
动画.gif (222.42 KB, 下载次数: 2)
aarom 发表于 2022-3-29 08:12
顯示一齊選或不選......
defun( ViewLayer_Callback (h)
case( h -> curField
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) | Powered by Discuz! X3.2 |