明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2590|回复: 1

求教:如何让纸张列表与所选择的打印设备同步更新?

[复制链接]
发表于 2009-5-28 04:02 | 显示全部楼层 |阅读模式

求教:如何让纸张列表与所选择的打印设备同步更新?

 

如下图所示,这是我自己做的对话框,其中的打印设备列表已把系统所有的打印设备列出,可随意选择;其下面的纸张列表虽也取得,但无法随打印机的选择同时更新相应的列表,也就是说无法达到CAD系统自带打印对话框的效果。下面的两段程序应该如何关联才能达到此效果?

 

;;;获取当前所有打印机列表

(defun GetPrinterlist ()

  (vlax-safearray->list

    (vlax-variant-value

      (vla-getplotdevicenames

       (vla-item (vla-get-layouts

                  (vla-get-activedocument (vlax-get-acad-object))

                )

                "Model"

       )

      )

    )

  )

)

 

;;;获得纸张类型列表

(defun GetPaperList ()

  (setq    acadobj   (vlax-get-acad-object)

       doc  (vla-get-activedocument acadobj)

       layout      (vla-get-activelayout doc)

  )

  (vla-RefreshPlotDeviceInfo layout)

  (setq    CanPaperSizeVar

        (vla-GetCanonicalMediaNames layout)

       CanPaperSizeArr

        (vlax-variant-value CanPaperSizeVar)

       CanPaperSizeLIst

        (vlax-safearray->list CanPaperSizeArr)

       PaperSize '()

       index 0

  )

  (repeat (length CanPaperSizeList)

    (setq Papersize (cons (vla-GetLocaleMediaName

                         layout

                         (nth index CanPaperSizeList)

                       )

                       Papersize

                  )

         index       (1+ index)

    )

  )

  (reverse PaperSize)

)

 

 

以下是与对话框相关的操作

  ……

  (setq printerlist (getprinterlist))

  (start_list "printer")

  (mapcar 'add_list printerlist)

  (end_list)

  (if (setq paperlist (getpaperlist))

    (progn

      (start_list "paper")

      (mapcar 'add_list paperlist)

      (end_list)

)

  )

……

 楼主| 发表于 2009-5-28 04:07 | 显示全部楼层
真郁闷,不会贴图!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 17:15 , Processed in 0.263263 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表