明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3044|回复: 7

【请教】有什么函数可以擦看和添加cad打印机

[复制链接]
发表于 2010-8-22 15:53:00 | 显示全部楼层 |阅读模式
先擦看有无HP7600 355,没有就添加,用于打印plt文件,不知用什么函数。急
发表于 2010-8-22 19:15:00 | 显示全部楼层

呵呵,点击打印就好了

 楼主| 发表于 2010-8-22 21:50:00 | 显示全部楼层
我是说用lisp如何实现!!!
发表于 2010-8-23 08:18:00 | 显示全部楼层
读注册表
发表于 2010-8-23 08:55:00 | 显示全部楼层
  1. ;;;取得系统默认打印机:
  2. ;;;dos_getprn  fsxm-getprn 这个函数思路源自:xshrimp
  3. (defun fsxm-getprn (/ strprint)  ;Windows NT
  4.   (setq strprint
  5.   (vl-registry-read
  6.     (strcat
  7.       "HKEY_CURRENT_USER\\Software\\Microsoft\"
  8.       "Windows NT\\CurrentVersion\\Windows"
  9.     )
  10.     "Device"
  11.   )
  12.   )
  13.   (substr strprint 1 (vl-string-search "," strprint))
  14. )
  15. ;;;取得系统全部打印机:
  16. ;;;dos_printers => fsxm-printers
  17. (defun fsxm-printers (/ return wshnetwork printlst i)
  18.   (vl-catch-all-apply
  19.     '(lambda ()
  20.        (setq WshNetwork (vlax-create-object "wscript.Network"))
  21.        (setq return (vlax-invoke WshNetwork 'EnumPrinterConnections))
  22.        (setq i 1)
  23.        (vlax-release-object WshNetwork)
  24.        (repeat (/ (vlax-get return 'length) 2)
  25.   (setq printlst (cons (vla-item return i) printlst))
  26.   (setq i (+ 2 i))
  27.        )
  28.      )
  29.   )
  30.   printlst
  31. )
  32. ;;;设置系统默认打印机:
  33. ;;;dos_setprn => fsxm-setprn
  34. (defun fsxm-setprn (printername / wshnetwork)
  35.   (if (null
  36. (vl-catch-all-apply
  37.    '(lambda ()
  38.       (setq WshNetwork (vlax-create-object "wscript.Network"))
  39.       (vlax-invoke WshNetwork 'SetDefaultPrinter printername)
  40.     )
  41. )
  42.       )
  43.     t
  44.   )
  45. )
发表于 2010-8-23 08:56:00 | 显示全部楼层
  1. ;| (getlocprns) = 获取本地打印机. --------by 狂刀.2007.8
  2. 返回: (打印机名1 端口1 印机名2 端口2....) 列表
  3. 实例:
  4. (getlocprns)
  5. ;返回: ("Canon BJC-6500 (BJRSTR)" "LPT1:" "hp deskjet 695c series" "LPT1:")
  6. |;
  7. (defun getlocprns  (/ wsn prn i lst)
  8.    (setq wsn (vla-GetInterfaceObject (vlax-get-acad-object)
  9.          "WScript.Network")
  10.   prn (vlax-invoke wsn 'EnumPrinterConnections)
  11.   i   -1)
  12.    (repeat (vlax-invoke-method prn 'count)
  13.      (setq lst (cons (vla-item prn (setq i (1+ i))) lst))
  14.      )
  15. )
 楼主| 发表于 2010-8-23 13:10:00 | 显示全部楼层
谢谢!!!非常好的程序。但是我的hp7600 355 是acad打印机,由 文件->打印机管理器内添加的。不是windows系统打印机。请问如何查找。如果没有时,还要自动添加打印机。不知道如何添加
发表于 2010-8-23 15:13:00 | 显示全部楼层
查看命令: -plot是否需要详细打印配置?[是(Y)/否(N)] <否>: y
输入布局名或 [?] <布局1>:输入输出设备的名称或 [?] <HP Designjet 4020 HPGL2.pc3>: ?
可用打印设备。  "pdfFactory Pro"  "Microsoft XPS Document Writer"  "\\Czmy-rtx\HP Designjet 4020 HPGL2"  "\\Czmy-rtx\HP5200"  "\\Czmy-rtx\Kyocera KM-4850w"  "A0图纸.pc3"  "A1图纸.pc3"  "A2图纸.pc3"  "Default Windows System Printer.pc3"  "DWF6 ePlot.pc3"  "HP Designjet 4020 HPGL2.pc3"  "KM-4850w.pc3"  "pdfFactory Pro.pc3"  "ublishToWeb JPG.pc3"  "ublishToWeb PNG.pc3"
  1. (defun Plots ()(VL-LOAD-COM)
  2. (setq AcadObject (vlax-get-acad-object)
  3.       AcadDocument (vla-get-ActiveDocument AcadObject)
  4.       mSpace (vla-get-ModelSpace AcadDocument)
  5. )
  6. (setq preferenceSel (vla-get-Preferences AcadObject))
  7. (setq ACADPref (vla-get-Files preferenceSel))
  8. (setq originaValue (vla-get-PrinterConfigPath ACADPref))
  9. (vl-directory-files originaValue ".pc3" 1)
  10. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 10:44 , Processed in 0.166769 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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