EDA365电子论坛网

标题: 哪位大佬知道下面这种进度条是如何制作的 [打印本页]

作者: 亦久忆旧    时间: 2025-6-30 00:06
标题: 哪位大佬知道下面这种进度条是如何制作的
本帖最后由 亦久忆旧 于 2025-6-30 00:07 编辑

哪位大佬知道这种进度条是如何设置更新显示的?我现在在form中设计了1个进度条,但是不知道如何刷新显示,设置颜色

1.png (13.64 KB, 下载次数: 18)

1.png

作者: zc333    时间: 2025-6-30 09:01
本帖最后由 zc333 于 2025-6-30 09:02 编辑

图片点不开了呢?
作者: centem2015    时间: 2025-6-30 09:04
怎么看不到图片啊
作者: db-_-    时间: 2025-6-30 09:42
X:\Cadence\SPB_17.2\share\pcb\examples\skill\form\basic
这个路径下面有个axlform.il,你按照il里面的提示运行一下,相信你会form有更深的理解。

这个路径的其他SKILL也可以说是SKILL编程的官方案例,写得很标准,是个大宝藏了。
作者: 学无止境```    时间: 2025-6-30 11:12
db-_- 发表于 2025-6-30 09:42
X:\Cadence\SPB_17.2\share\pcb\examples\skill\form\basic
这个路径下面有个axlform.il,你按照il里面的 ...

这个有点看不明白怎么运行

作者: db-_-    时间: 2025-6-30 12:31
本帖最后由 db-_- 于 2025-6-30 12:32 编辑



补充一下 一行一行输入

作者: 学无止境```    时间: 2025-6-30 13:56
db-_- 发表于 2025-6-30 12:31
补充一下 一行一行输入

大佬,我发的图上的 完成率 :100 %,这个100应该是1个field吧,这个field的类型是什么啊?
作者: db-_-    时间: 2025-6-30 14:50
学无止境``` 发表于 2025-6-30 13:56
大佬,我发的图上的 完成率 :100 %,这个100应该是1个field吧,这个field的类型是什么啊?

text吧。  

作者: 学无止境```    时间: 2025-6-30 15:18
db-_- 发表于 2025-6-30 14:50
text吧。

TEXT是静态文本,但是这里是1个变量,

作者: db-_-    时间: 2025-6-30 15:35
学无止境``` 发表于 2025-6-30 15:18
TEXT是静态文本,但是这里是1个变量,

NO! 建议好好看看这个il文件噢。



作者: 学无止境```    时间: 2025-6-30 16:07
db-_- 发表于 2025-6-30 15:35
NO! 建议好好看看这个il文件噢。
  1. DBdoctor();导出之前检查PCB
  2.                             if(dbCheckStatus
  3.                                 then
  4.                                 CAM_Valid = axlFormGetField(GerberExport_form "CAM_BOX")
  5.                                     SMD_Value = axlFormGetField(GerberExport_form "SMD_BOX")
  6.                                     PDF_Value = axlFormGetField(GerberExport_form "PDF_BOX")
  7.                                     DXF_Value = axlFormGetField(GerberExport_form "DXF_BOX")
  8.                     ipc_value = axlFormGetField(GerberExport_form "checkbox_ipcversion")
  9.                                     ;更新状态显示
  10.                                     when(CAM_Valid
  11.                                         Export_Film()     ;导出光绘
  12.                                             Export_NCdrill()  ;导出钻孔数据
  13.                                             Export_rou()      ;导出槽孔数据
  14.                                             ;导出IPC文件
  15.                                             when(ipc_value
  16.                             case(ipc_value
  17.                                     ("IPC-D-356A"
  18.                                     ;调用ipc_out.exe导出->IPC-D-356A
  19.                                         Export_ipc356A()
  20.                                         )
  21.                                         ("IPC-D-356"
  22.                                     ;调用ipc_out.exe导出->IPC-D-356
  23.                                         Export_ipc356()
  24.                                         )
  25.                                 );end case                                                       
  26.                         );end when
  27.                                     );end when
  28.                                     when(SMD_Value
  29.                                             Export_xy()       ;导出坐标文件
  30.                                         Export_SMDPDF()   ;导出贴片 pdf
  31.                                     );end when
  32.                                     when(PDF_Value
  33.                                         Export_PDF()      ;导出贴片 pdf
  34.                                     );end when
  35.                                     
  36.                                     when(DXF_Value
  37.                                         Export_DXF()     ;导出贴片 DXF
  38.                                     );end when
  39.                                 else
  40.                                     axlUIConfirm("Error:Current design exit DRC")
  41.                                 );end if
复制代码
大佬,上面的函数都是使用axlRunBatchDBProgram导出的相关文件,这个为什么不是顺序执行的
作者: db-_-    时间: 2025-6-30 16:31
学无止境``` 发表于 2025-6-30 16:07
大佬,上面的函数都是使用axlRunBatchDBProgram导出的相关文件,这个为什么不是顺序执行的

你是各个export用什么函数执行的?



作者: 学无止境```    时间: 2025-6-30 16:37
db-_- 发表于 2025-6-30 16:31
你是各个export用什么函数执行的?
  1. ;-----------------------导出光绘/钻孔/槽孔/坐标/pdf/DXF/ipc文件----------------------------------------
  2. ;在进行导出相关文件之前,先运行DBdoctor检查设计有无错误
  3. defun( DBdoctor ()
  4.     ;调用dbdoctor.exe检查设计
  5.     sprintf(format "dbdoctor -$ -check_only %s" axlCurrentDesign())
  6.         dbCheckStatus = axlRunBatchDBProgram("Checking db records" format  ?logfile "dbdoctor" ?noProgress t ?warnProgram t)
  7. );end defun
  8. ;调用artwork.exe导出->光绘文件
  9. defun( Export_Film ()
  10.     axlRunBatchDBProgram("export artwork" "artwork -$ %s" ?logfile "photoplot" ?noProgress t ?warnProgram t)
  11. );end defun
  12. ;调用nctape.exe导出钻孔文件
  13. defun( Export_NCdrill ()
  14.     sprintf(cmd "nctape -$ -b -o -n %s.drl %%s", axlCurrentDesign())
  15.     axlRunBatchDBProgram("Generating Drill Files..." cmd ?logfile "ncdrill" ?noProgress t ?warnProgram t)
  16. );end defun
  17. ;调用ncroute.exe导出槽孔文件
  18. defun( Export_rou ()
  19.     sprintf(cmd "ncroute -$ -o -n %%s.rou %s"  axlCurrentDesign())
  20.     axlRunBatchDBProgram("Create ncroute" cmd ?logfile "ncroute" ?noProgress t ?warnProgram t)
  21. );end defun
  22. ;调用plctxt.exe输出->坐标文件
  23. defun( Export_xy ()
  24.         sprintf(cmd "plctxt -$ -c %%s %%s %s_xy_ByBodyCenter" axlCurrentDesign())
  25.     axlRunBatchDBProgram("Export place xy" cmd  ?logfile "plctxt" ?noProgress t ?warnProgram t)
  26. );end defun
  27. ;选择IPC版本时,导出IPC文件
  28. defun( Export_ipc356A ()
  29.     sprintf(cmd "ipc356_out -$ -A %%s %s.ipc" axlCurrentDesign())
  30.     axlRunBatchDBProgram("Export IPC-D-356A" cmd  ?logfile "ipc356_out" ?noProgress t ?warnProgram t)
  31. );end defun
  32. ;选择IPC版本时,导出IPC文件
  33. defun( Export_ipc356 ()
  34.     sprintf(cmdFmt "ipc356_out -$ %%s %s.ipc" axlCurrentDesign())
  35.     axlRunBatchDBProgram("Export IPC-D-356" cmdFmt ?logfile "ipc356_out" ?noProgress t ?warnProgram t)
  36. );end defun
  37. ;导出所有光绘层PDF文件
  38. defun( Export_PDF ()
  39.         ;输出光绘层PDF
  40.         sprintf(cmd "pdf_out -$  -p -B %%s -o %s" axlCurrentDesign())
  41.         axlRunBatchDBProgram("Export PDF" cmd ?logfile "pdf_out" ?noProgress t ?warnProgram t)
  42. );end defun
  43. ;导出贴片所需的PDF文件
  44. defun( Export_SMDPDF ()
  45.         ;输出SMD PDF
  46.     sprintf(cmd "pdf_out %%s -p -B -x -C -f ASM_TOP -f ASM_BOTTOM -o %s_SMD" axlCurrentDesign())
  47.         axlRunBatchDBProgram("Export SMD PDF" cmd ?logfile "pdf_out"  ?noProgress t ?warnProgram t)
  48. );end defun
复制代码



作者: 学无止境```    时间: 2025-6-30 16:38
db-_- 发表于 2025-6-30 16:31
你是各个export用什么函数执行的?

运行后如图所示,和利用allegro的UI导出的不一样

1.png (294.17 KB, 下载次数: 5)

1.png

作者: db-_-    时间: 2025-6-30 16:44
学无止境``` 发表于 2025-6-30 16:38
运行后如图所示,和利用allegro的UI导出的不一样

你能详细说说哪里的顺序不一样吗,我简单看了一下 IPC 坐标 SMD DXF顺序都没问题。

作者: 学无止境```    时间: 2025-6-30 17:23
db-_- 发表于 2025-6-30 16:44
你能详细说说哪里的顺序不一样吗,我简单看了一下 IPC 坐标 SMD DXF顺序都没问题。

这里我运行以后,发现这些导出程序都是同步运行的,不是按照我代码的顺序执行的,所以最后打开了3个pdf的log,觉得应该是异步执行才能正常,就是dbdoctor执行完,没有问题再执行

作者: zjcszn    时间: 2025-7-1 01:04
db状态不是这么判断的,有专门的函数
作者: db-_-    时间: 2025-7-1 09:45
楼上说的很对,dbdoctor用的不对,它本身没有返回值,不能瞎用。一切按照手册来。
作者: 学无止境```    时间: 2025-7-1 10:43
zjcszn 发表于 2025-7-1 01:04
db状态不是这么判断的,有专门的函数

那我应该如何做
作者: qwertyuasdfdfa    时间: 2025-7-2 09:09
?ddddddddffffffffffffffffffffffff




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