[code="lisp]

;打印函数,lujing可为nil,orpdf为T或nil,为T是打印pdf,为nil是打印到设备

(defun gm-dayin(dayinji tufu p1 p2 xiankuan fenshu lujing orpdf yulan / acaddoc fangxiang jixu medianame mspace p3 plot pointtemp1 pointtemp2 st x x1 x2 y y1 y2)

;设定系统变量,确保cad在前台进行打印,这样后一次打印会在前一次打印完成后才开始,避免错误

(setvar "backgroundplot" 0)

;由p1和p2坐标判断是横向还是纵向

(if (> (cadr p1) (cadr p2)) (setq p3 p1

p1 (list (car p1) (cadr p2) 0)

p2 (list (car p2) (cadr p3) 0)))

(setq x1 (car p1) y1 (cadr p1) x2 (car p2) y2 (cadr p2))

(setq x (abs (- x1 x2)) y (abs (- y1 y2)) )

(if (> y x) (setq st "p") (setq st "l"))

;当路径不为nil时,给路径加上后缀名

(if (/= lujing nil)(setq lujing (strcat lujing ".pdf")))

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

mspace(vla-get-activelayout acaddoc)

plot (vla-get-plot acaddoc)

)

(setq p1 (trans p1 0  2)

p2 (trans p2 0 2)

)

;处理p1和p2

(setq p1 (reverse (cdr (reverse p1))))

(setq p2 (reverse (cdr (reverse p2))))

(setq pointTemp1 (vlax-make-safearray vlax-vbDouble '(0 . 1)))

(vlax-safearray-fill pointtemp1 p1)

(setq pointTemp2 (vlax-make-safearray vlax-vbDouble '(0 . 1)))

(vlax-safearray-fill pointtemp2 p2)

;设定打印机

(vla-put-configname mspace dayinji)

;设定打印样式表

(vla-put-stylesheet mspace "monochrome.ctb" )

(vla-refreshplotdeviceinfo mspace)

;设定打印区域

(vla-setwindowtoplot mspace pointtemp1 pointtemp2)

;设定打印形式为窗口打印,必须在设定打印区域之后

(vla-put-plottype mspace acWindow)

;设定布满图纸打印

(vla-put-standardscale mspace acscaletofit)

;设定是否居中打印

(vla-put-centerplot mspace :vlax-true)

;不居中打印时的设置

;(setq p3 (vlax-make-safearray vlax-vbDouble '(0 . 1)))

;(vlax-safearray-put-element p3 0 0)

;(vlax-safearray-put-element p3 1 0)

;(vla-put-plotorigin mspace p3)

;将图纸大小转换成标准介质名称返回

(setq medianame (gm-putlocalemedianame mspace tufu))

(vla-put-canonicalmedianame mspace medianame)

(vla-getpapersize mspace 'chang 'kuan)

(if (> chang kuan)(setq fangxiang "heng")(setq fangxiang "shu"))

;设定横向或者纵向,l横向,p纵向

(cond

((and (eq "heng" fangxiang) (= st "l")) (vla-put-plotrotation mspace ac0degrees))

((and (eq "shu" fangxiang) (= st "l")) (vla-put-plotrotation mspace ac90degrees))

((and (eq "heng" fangxiang) (= st "p")) (vla-put-plotrotation mspace ac90degrees))

((and (eq "shu" fangxiang) (= st "p")) (vla-put-plotrotation mspace ac0degrees))

(T exit)

)

;设定是否打印对象线宽

(if (= (strcase xiankuan) "Y")

(vla-put-plotwithlineweights mspace :vlax-true)

(vla-put-plotwithlineweights mspace :vlax-false))

;打印预览

(if (= yulan "y")(progn

(vla-displayplotpreview plot acfullpreview)

(setq jixu (getstring "/n 打印本张(Y)不打印本张(N):(Y)"))

(if (= jixu "") (setq jixu "y")))

(setq jixu "y")

)

(setq jixu (strcase jixu))

;打印份数

(vla-put-numberofcopies plot fenshu)

(cond

((and (= jixu "Y") (= orpdf T)) (vla-plottofile plot lujing))

((and (= jixu "Y") (= orpdf nil)) (vla-plottodevice plot dayinji))

(T nil)

)

;恢复系统变量

(setvar "backgroundplot" 0)

)

;;;返回图纸尺寸本地名称所对应的标准名称

(defun gm-putlocalemedianame(mspace bendiming / i localmedianame medianame medianames)

(setq medianames (vla-getcanonicalmedianames mspace)

i 0

medianames (vlax-safearray->list (vlax-variant-value medianames))

)

(while (< i (length medianames))

(setq localmedianame (vla-getlocalemedianame mspace (nth i medianames)))

(if (eq localmedianame bendiming) (setq medianame (nth i medianames)

i (1+ (length medianames)))

(setq i (1+ i))

)

)

medianame

)[/code]

打桥位lisp_通用打印函数,可指定参数,可打印pdf相关推荐

  1. php 函数 打印,php打印函数入门教程

    关于php打印函数我们需要了解php打印函数种类,简单实用以及功能区别,总结各个打印函数的实用场景以及相关最佳实践. 函数介绍 1. echoecho用于输出一个或者多个字符串, 不换行 如果输出对象 ...

  2. 打印函数 lodop

    Lodop属性和方法详解 例子: LODOP.PRINT_INIT("打印任务名"); LODOP.SET_PRINT_COPIES(2); bdhtml=window.docum ...

  3. windows无法访问指定设备_打印驱动架构之windows

    Windows打印驱动框架 Windows的打印驱动从总体架构上来说,包括一个渲染组件和一个配置组件.我们可以回想一下最开始的总体架构图. 渲染组件就是负责将应用程序传来的每一页的绘制命令(GDI命令 ...

  4. php通用检测函数集合

    <? // [文件名]: c_check.inc // [作 用]: 通用检测函数集 // [作 者]: 天灰 // [最后修改日期]: 2001/05/11[cxx] // [变量定义规则]: ...

  5. php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)

    1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump(); 1 echo() 可以同时输出多个字符串,可以多 ...

  6. 一步步编写操作系统 71 直接操作显卡,编写自己的打印函数71-74

    一直以来,我们在往屏幕上输出文本时,要么利用bios中断,要么利用系统调用,这些都是依赖别人的方法.咱们还用过一个稍微有点独立的方法,就是直接写显存,但这貌似又没什么含量.如今我们要写一个打印函数了, ...

  7. php家检乘除,php通用检测函数集(转)_php

    php通用检测函数集 转http://wb.josetech.com/userHome/4/jaxp/add-ons/news/13/20020828/51.html 发布时间:2002-08-28 ...

  8. 在ARM芯片中使用打印函数总结

    ** 在ARM芯片中使用打印函数总结: ** 在使用的stdio.h库可以找到对应的函数原型 1.printf函数 原型:#pragma __printf_args extern _ARMABI in ...

  9. 使用js实现指定div内容打印功能

    最近正在开发OA系统,涉及到了页面打印的相关操作.在实际的开发过程中,浏览器本身自带的打印操作默认打印整个可视界面,但是往往不能满足实际项目需要,打印页面指定内容的功能在OA系统中更加常见.网络上有很 ...

最新文章

  1. XML学习总结(1)——XML入门
  2. jQuery技术内幕:深入解析jQuery架构设计与实现原理
  3. 039_Dialog对话框
  4. observable_Java Observable setChanged()方法与示例
  5. WPF入门教程系列十四——依赖属性(四)
  6. MYSQL创建、删除、修改索引语法
  7. python模拟浏览器下载文件_python第一个脚本,模拟浏览器下载文件 | 学步园
  8. B站DR-CANup主电路系统建模_基尔霍夫定律的解题过程分析
  9. 洛谷 3373 【模板】线段树 2
  10. 使用本机IP调试web项目
  11. 群晖3617可以有几个网卡_Synology 群晖 DS1621+ 六盘位NAS 开箱拆解评测
  12. js修改地址栏url_前端实战总结如何在不刷新页面的情况下改变URL
  13. 怎么用谷歌学术检索下载外文文献
  14. C++语法基础--句柄类
  15. ROS中使用A星算法进行路径规划
  16. 纬地道路纵断面设计教程_如何高效算量?市政道路从识图算量到施工工艺,一篇全搞定!...
  17. pdf转换成word转换器免费下载
  18. 阿里云要引领数据库市场?这话没毛病
  19. Invalid prop: custom validator check failed for prop “pagination“.
  20. 通过python刷android步数,使用 Python 修改微信/QQ/支付宝运动步数

热门文章

  1. 力扣 2212. 射箭比赛中的最大得分
  2. 【L2-026 小字辈】天梯赛L2系列详解
  3. SSI--什么是SHTML?
  4. 铁路牵引变电所智能运维研究
  5. 一秒7步解决校园网刷知乎显示不了图片
  6. “泰迪杯”挑战赛 - 基于Java的面向网络舆情的关联度分析(附算法代码)
  7. McObject受邀参加“金证股份2014个股期权用户会议”顺利落下帷幕
  8. linux挂载光盘的命令,Linux系统下挂载光盘的教程
  9. 纯手工搭建DCGAN,从零开始
  10. 第3章 PyTorch神经网络工具箱(1/2)