明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: simpleye

关于打印的问题

  [复制链接]
发表于 2013-3-23 20:46 | 显示全部楼层
还得回归到 myprint 的对映上
您得 榫接好
回复

使用道具 举报

发表于 2013-3-28 11:09 | 显示全部楼层
本帖最后由 llsheng_73 于 2013-3-28 11:16 编辑

注册表里边读取到的打印设备它能一定和你的CAD里边所能用的打印设备名称完全一致么,现在看样子好象是其中一个跟CAD里边的有一台打印机它名称不一样?
回复

使用道具 举报

 楼主| 发表于 2013-3-28 13:10 | 显示全部楼层
感谢各位,这个问题我已解决了,呵呵,就是把"A4"改成"",具体原因我也不太清楚。
回复

使用道具 举报

发表于 2013-3-29 10:11 | 显示全部楼层
楼主你好,请问如何将下面的打印程序改成自动获取系统打印机呢?
我不会改,诚请帮忙,谢谢

;蓝色横打
(defun c:fa()
(setq ss(ssget '((8 . "打印框"))))
(setq n 0)
(repeat (sslength ss)
(setq en (ssname ss n))
(setq obj (vlax-ename->vla-object en))
(vla-GetBoundingBox obj 'minpt 'maxpt)
(setq minPt (vlax-safearray->list minPt))
(setq maxPt (vlax-safearray->list maxPt))
(setq minptx (car minpt))
(setq minpty (cadr minpt))
(setq maxptx (car maxpt))
(setq maxpty (cadr maxpt))
(if (< (- maxptx minptx) (- maxpty minpty))
(dayin5 minpt maxpt)
(dayin6 minpt maxpt))
(setq n (1+ n)))(PRINC))
(defun dayin5(p1 p2);打印机名称,纸张,毫米,横向,反向,窗口,范围(P1,P2),布满,居中,按打印样式,线宽,按显示,不打印到文件,保存,继续打印
(command "plot" "y" "模型" "\Canon iP1100 series" "A4" "M" "P" "y" "W" P1 P2 "F" "C" "Y" "DWF Virtual Pens.ctb" "y" "a" "n" "y" "y"))
(defun dayin6(p1 p2)
(command "plot" "y" "模型" "\Canon iP1100 series" "A4" "M" "L" "y" "W" P1 P2 "F" "C" "Y" "DWF Virtual Pens.ctb" "y" "a" "n" "y" "y"))
回复

使用道具 举报

 楼主| 发表于 2013-3-29 12:30 | 显示全部楼层
代码我放出来了,在8楼,自动获取系统打印机,横向,纵向也自动识加别。
回复

使用道具 举报

发表于 2013-3-29 13:38 | 显示全部楼层
simpleye 发表于 2013-3-29 12:30
代码我放出来了,在8楼,自动获取系统打印机,横向,纵向也自动识加别。

真的不会改吖
回复

使用道具 举报

 楼主| 发表于 2013-3-29 20:56 | 显示全部楼层
669423907 发表于 2013-3-29 10:11
楼主你好,请问如何将下面的打印程序改成自动获取系统打印机呢?
我不会改,诚请帮忙,谢谢

   (defun defultprint (/ device)
      (vl-load-com)
     (substr (setq device
      (vl-registry-read
        "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows"
        "Device"
      )
      )
      1
      (vl-string-search "," device)
     )
   )
   
(defun c:fa()
(setq ss(ssget '((8 . "打印框"))))
(setq n 0)
(repeat (sslength ss)
(setq en (ssname ss n))
(setq obj (vlax-ename->vla-object en))
(vla-GetBoundingBox obj 'minpt 'maxpt)
(setq minPt (vlax-safearray->list minPt))
(setq maxPt (vlax-safearray->list maxPt))
(setq minptx (car minpt))
(setq minpty (cadr minpt))
(setq maxptx (car maxpt))
(setq maxpty (cadr maxpt))
(if (< (- maxptx minptx) (- maxpty minpty))
(dayin5 minpt maxpt)
(dayin6 minpt maxpt))
(setq n (1+ n)))(PRINC))
(defun dayin5(p1 p2);打印机名称,纸张,毫米,横向,反向,窗口,范围(P1,P2),布满,居中,按打印样式,线宽,按显示,不打印到文件,保存,继续打印
(setq myprint (defultprint))
(command "plot" "y" "模型" myprint "A4" "M" "P" "y" "W" P1 P2 "F" "C" "Y" "DWF Virtual Pens.ctb" "y" "a" "n" "y" "y"))
(defun dayin6(p1 p2)
(setq myprint (defultprint))
(command "plot" "y" "模型" myprint "A4" "M" "L" "y" "W" P1 P2 "F" "C" "Y" "DWF Virtual Pens.ctb" "y" "a" "n" "y" "y"))
回复

使用道具 举报

发表于 2013-3-30 11:33 | 显示全部楼层
simpleye 发表于 2013-3-29 20:56
(defun defultprint (/ device)
      (vl-load-com)
     (substr (setq device

非常感谢你的帮助
回复

使用道具 举报

发表于 2013-4-20 18:12 | 显示全部楼层
我估计是纸张配对问题,,你重点查一下


"A4" 对某些打印机可以,,对某些型号的打印机是不行的,程序要求完全匹配,,差一个空格都不行的
你查”打印机““首选项”里面的东东看看,,

我以前编A3打印机碰到过类似问题,,A4的没编过,,是估计的,,不一定对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 06:53 , Processed in 0.181359 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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