乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 47|回复: 3

请教有关打印设置数据的访问

[复制链接]

5

主题

18

帖子

2

银币

初来乍到

Rank: 1

铜币
38
发表于 2006-8-23 15:32:00 | 显示全部楼层 |阅读模式
想用.net访问CAD的文档打印设置字典(PlotSettings),查了一些资料,只知这些数据是存在字典里,可不知如何访问和修改,请高人指教。
另,若想在自己的对话框中调用CAD自带的打印设置对话框(如下图),并能让设置好的打印数据传回自己的对话框,用什么函数可以实现??
谢谢

ilpdn4emszx.JPG

ilpdn4emszx.JPG

回复

使用道具 举报

16

主题

48

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
112
发表于 2009-2-2 11:56:00 | 显示全部楼层
关注。。。。
回复

使用道具 举报

2

主题

20

帖子

5

银币

初来乍到

Rank: 1

铜币
28
发表于 2010-8-25 12:07:00 | 显示全部楼层
关注中,怎么没人回答
回复

使用道具 举报

14

主题

80

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2010-8-27 16:32:00 | 显示全部楼层
看这个
  1. Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  2. Dim acCurDb As Database = acDoc.Database
  3. Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  4. Dim acLayoutMgr As LayoutManager
  5. acLayoutMgr = LayoutManager.Current
  6. Dim acLayout As Layout
  7. acLayout = acTrans.GetObject(acLayoutMgr.GetLayoutId(acLayoutMgr.CurrentLayout), _
  8. OpenMode.ForRead)
  9. Dim acPlInfo As PlotInfo = New PlotInfo()
  10. acPlInfo.Layout = acLayout.ObjectId Dim acPlSet As PlotSettings = New PlotSettings(acLayout.ModelType)
  11. acPlSet.CopyFrom(acLayout) Dim acPlSetVdr As PlotSettingsValidator = PlotSettingsValidator.Current
  12. '' 打印比例
  13. acPlSetVdr.SetUseStandardScale(acPlSet, True)
  14. acPlSetVdr.SetStdScaleType(acPlSet, StdScaleType.ScaleToFit)  '' 居中打印
  15. acPlSetVdr.SetPlotCentered(acPlSet, True)
  16. '' 打印设备和图纸
  17. acPlSetVdr.SetPlotConfigurationName(acPlSet, "PublishToWeb JPG.pc3", _
  18. "User-1")
  19. '先GetPoint然后再GetCorner
  20. Dim pPtRes As PromptPointResult
  21. Dim pPtOpts As PromptPointOptions = New PromptPointOptions("")
  22. pPtOpts.Message = vbLf & "请选择其中一个角点: "
  23. pPtRes = acDoc.Editor.GetPoint(pPtOpts)
  24. Dim PT1 As Point3d = pPtRes.Value
  25. Dim pCnOpts As PromptCornerOptions = New PromptCornerOptions("请选择一个对角点:", PT1)
  26. pPtRes = acDoc.Editor.GetCorner(pCnOpts)
  27. Dim PT2 As Point3d = pPtRes.Value '设置打印窗口
  28. Dim minX As Double = System.Math.Min(PT1.X, PT2.X)
  29. Dim minY As Double = System.Math.Min(PT1.Y, PT2.Y)
  30. Dim maxX As Double = System.Math.Max(PT1.X, PT2.X)
  31. Dim maxY As Double = System.Math.Max(PT1.Y, PT2.Y) Dim E2d As Extents2d = New Extents2d(minX, minY, maxX, maxY)
  32. acPlSetVdr.SetPlotWindowArea(acPlSet, E2d)
  33. acPlSetVdr.SetPlotType(acPlSet, Autodesk.AutoCAD.DatabaseServices.PlotType.Window) acPlInfo.OverrideSettings = acPlSet Dim acPlInfoVdr As PlotInfoValidator = New PlotInfoValidator()
  34. acPlInfoVdr.MediaMatchingPolicy = MatchingPolicy.MatchEnabled
  35. acPlInfoVdr.Validate(acPlInfo) If PlotFactory.ProcessPlotState = Autodesk.AutoCAD.PlottingServices. _
  36. ProcessPlotState.NotPlotting Then
  37. Using acPlEng As PlotEngine = PlotFactory.CreatePublishEngine() Dim acPlProgDlg As PlotProgressDialog = New PlotProgressDialog(False, _
  38. 1, _
  39. True)
  40. Using (acPlProgDlg)
  41. acPlProgDlg.PlotMsgString(PlotMessageIndex.DialogTitle) = "打印进度"
  42. acPlProgDlg.PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage) = "取消打印"
  43. acPlProgDlg.PlotMsgString(PlotMessageIndex.SheetProgressCaption) ="打印进度" acPlProgDlg.LowerPlotProgressRange = 0
  44. acPlProgDlg.UpperPlotProgressRange = 100
  45. acPlProgDlg.PlotProgressPos = 0
  46. acPlProgDlg.OnBeginPlot()
  47. acPlProgDlg.IsVisible = True acPlEng.BeginPlot(acPlProgDlg, Nothing) acPlEng.BeginDocument(acPlInfo, _
  48. acDoc.Name, _
  49. Nothing, _
  50. 1, _
  51. True, _
  52. "c:\PlotTest") acPlProgDlg.PlotMsgString(PlotMessageIndex.Status) = _
  53. "正在打印 " & acDoc.Name & _
  54. " - " & acLayout.LayoutName acPlProgDlg.OnBeginSheet()
  55. acPlProgDlg.LowerSheetProgressRange = 0
  56. acPlProgDlg.UpperSheetProgressRange = 100
  57. acPlProgDlg.SheetProgressPos = 0 Dim acPlPageInfo As PlotPageInfo = New PlotPageInfo()
  58. acPlEng.BeginPage(acPlPageInfo, _
  59. acPlInfo, _
  60. True, _
  61. Nothing) acPlEng.BeginGenerateGraphics(Nothing)
  62. acPlEng.EndGenerateGraphics(Nothing) acPlEng.EndPage(Nothing)
  63. acPlProgDlg.SheetProgressPos = 100
  64. acPlProgDlg.OnEndSheet() acPlEng.EndDocument(Nothing) acPlProgDlg.PlotProgressPos = 100
  65. acPlProgDlg.OnEndPlot()
  66. acPlEng.EndPlot(Nothing)
  67. End Using
  68. End Using
  69. End If
  70. End Using
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 07:36 , Processed in 0.352897 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表