乐筑天下

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

[编程交流] 通过entmake创建视图

[复制链接]

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 17:52:06 | 显示全部楼层 |阅读模式
有人通过(entmake)成功创建了视图表定义吗?
 
  1. (entmake '((0 . "VIEW") (2 . "TEST1") (70 . 0) (40 . 15.9716) (10 -3.3541 -2.29394) (41 .
  2. 34.4822) (11 1.0 2.0 0.8137) (12 0.0 0.0 0.0) (42 . 50.0) (43 . 0.0) (44 . 0.0)
  3. (50 . 0.0) (71 . 0) (72 . 1) (110 0.0 0.0 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0
  4. 0.0) (79 . 0) (146 . 0.0)))

 
谢谢
 
-大卫
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2022-7-5 18:07:29 | 显示全部楼层
我使用它创建打印视图:
  1. ;| Create plot view adjusting for margins and extents.
  2. In Model Space adjust for annotation scale
  3. (pview description Width Height RightMargin TopMargin)
  4. Plot Properties… => Modify Standard Paper Sizes (Printable Area) => select Paper size displays Printable Area
  5. I always leave TopMargin 0, then check "Center the plot:" for the Page setup
  6. Once you get it to work for a plotter's Paper size that macro will work on any layout for that plotter's Paper size.
  7. It pulls Page Setup from "Templates.dwt" so a "24×36" Layout would need "Templates.dwt" to have the Page Setup "PS 24×36"
  8. Example macros:
  9. ^C^C^P(or pview (load "pview.lsp"));(pview "24×36" 35.6 23.6 0.7 0.0)
  10. ^C^C^P(or pview (load "pview.lsp"));(pview "11×17 1120c" 16.31 10.52 0.035 0)
  11. ^C^C^P(or pview (load "pview.lsp"));(pview "11×17 Xerox" 16.54 10.54 0.035 0)
  12. ^C^C^P(or pview (load "pview.lsp"));(pview "11×17 Xerox" 16.52 10.44 0.035 0)
  13. ^C^C^P(or pview (load "pview.lsp"));(pview "11×17 Xerox" 16.54 10.54 0.035 0)
  14. |;
  15. (defun pview (vname wid hgt xmar ymar / xmax xmin maxx maxy minx miny mid vw)
  16. (if (= 1 (getvar "cvport"))
  17.    (setq vname (strcat "PS " vname))
  18.    (setq vname (strcat "MS " vname)
  19.          wid (/ wid (getvar "cannoscalevalue"))
  20.          hgt (/ hgt (getvar "cannoscalevalue"))
  21.          xmar (/ xmar (getvar "cannoscalevalue"))
  22.          ymar (/ ymar (getvar "cannoscalevalue"))
  23.    )
  24. )
  25. (if (tblsearch "view" vname)(command "-view" "D" vname))
  26. (vla-ZoomExtents (vlax-get-acad-object))
  27. (vla-ZoomPrevious (vlax-get-acad-object))
  28. (setq xmax (getvar "extmax")
  29.      xmin (getvar "extmin")
  30.      maxx (car xmax)
  31.      maxy (cadr xmax)
  32.      minx (car xmin)
  33.      miny (cadr xmin)
  34. )
  35. (cond
  36.    ((> (- maxx minx)wid)
  37.      (progn
  38.        (setq midx (car(getvar "viewctr")) hwid (/ wid 2))
  39.        (setq midx (if(< (- midx hwid) minx) (+ minx hwid) (- maxx hwid)))
  40.        (princ "\nGot width!")
  41.      )
  42.    )
  43.    ((> xmar 0) (setq midx (/ (- (+ xmar maxx maxx) wid) 2)))
  44.    ((< xmar 0) (setq midx (/ (+ xmar minx minx wid) 2)))
  45.    (T (setq midx (/ (+ minx maxx) 2)))
  46. )
  47. (cond
  48.    ((> (- maxy miny)hgt)
  49.      (progn
  50.        (setq midy (cadr(getvar "viewctr")) hhgt (/ hgt 2))
  51.        (setq midy (if(< (- midy hhgt) miny) (+ miny hhgt) (- maxy hhgt)))
  52.        (princ "\nGot higth!")
  53.      )
  54.    )
  55.    ((> ymar 0) (setq midy (/ (- (+ ymar maxy maxy) hgt) 2)))
  56. ;    ((> ymar 0) (setq midy (/ (+ (+ ymar maxy) (- maxy hgt)) 2)))
  57.    ((< ymar 0) (setq midy (/ (+ ymar miny miny hgt) 2)))
  58.    (T (setq midy (/ (+ miny maxy) 2)))
  59. )
  60. (setq mid (list midx midy))
  61. (setq vw
  62.    (list
  63.    '(0 . "VIEW")
  64.    '(100 . "AcDbSymbolTableRecord")
  65.    '(100 . "AcDbViewTableRecord")
  66.    (cons 2 vname)
  67.    (if (= 1 (getvar "cvport")) (cons 70 1) (cons 70 0))
  68.    (cons 40 hgt)
  69.    (cons 10 mid)
  70.    (cons 41 wid)
  71.    '(11 0.0 0.0 1.0)
  72.    '(12 0.0 0.0 0.0)
  73.    '(42 . 50.0)
  74.    '(43 . 0.0)
  75.    '(44 . 0.0)
  76.    '(50 . 0.0)
  77.    '(71 . 0)
  78.    '(72 . 0)
  79.    )
  80. )
  81. ;                          (command "._-PSETUPIN" "Templates.dwt" vname)
  82. (if  (entmake vw)
  83.                 (progn
  84.                         (command "._-PSETUPIN" "Templates.dwt" vname)
  85.                         (if (= 1 (logand 1 (getvar "cmdactive")))(command "Y"))
  86.                         (if(putPagesetup (getvar "ctab") vname)
  87.                     (princ (strcat "\nView "" vname "" has been created & Page Setup "" vname "" has been assigned to current layout."))
  88.                     (princ (strcat "\nView "" vname "" has been created, but Page Setup "" vname "" was not found."))
  89.                         )
  90.                 )
  91.                 (princ (strcat "\n*ERROR* view "" vname "" could not be created!"))
  92. )
  93. (princ)
  94. )
  95. ; Jason Piercey . May 16th, 2003 - https://www.theswamp.org/index.php?topic=3007.msg55202#msg55202
  96. ; assign a pagesetup to a layout
  97. ; [layout] - string, layout name
  98. ; [setup] - string, pagesetup to assign
  99. ; return: T or nil
  100. (defun putPagesetup (layout setup / layouts plots)
  101. (defun item-p (collection item)
  102. (if
  103.   (not
  104.    (vl-catch-all-error-p
  105.     (vl-catch-all-apply
  106.      '(lambda () (setq item (vla-item collection item))))))
  107.   item
  108.   )
  109. )
  110. (and
  111. (or *acad* (setq *acad* (vlax-get-acad-object)))
  112. (or *doc* (setq *doc* (vla-get-activedocument *acad*)))
  113. (setq layouts (vla-get-layouts *doc*))
  114. (setq plots (vla-get-plotconfigurations *doc*))
  115. (setq layout (item-p layouts layout))
  116. (setq setup (item-p plots setup))
  117. (not (vla-copyfrom layout setup))
  118. )
  119. )
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 18:14:16 | 显示全部楼层
将以下两项添加到您的列表中:
  1. (entmake
  2. '(
  3.    (0 . "VIEW")
  4. [color=red]    (100 . "AcDbSymbolTableRecord")
  5.    (100 . "AcDbViewTableRecord")[/color]
  6.    (2 . "TEST1")
  7.    (70 . 0)
  8.    (40 . 15.9716)
  9.    (10 -3.3541 -2.29394)
  10.    (41 . 34.4822)
  11.    (11 1.0 2.0 0.8137)
  12.    (12 0.0 0.0 0.0)
  13.    (42 . 50.0)
  14.    (43 . 0.0)
  15.    (44 . 0.0)
  16.    (50 . 0.0)
  17.    (71 . 0)
  18.    (72 . 1)
  19.    (110 0.0 0.0 0.0)
  20.    (111 1.0 0.0 0.0)
  21.    (112 0.0 1.0 0.0)
  22.    (79 . 0)
  23.    (146 . 0.0)
  24.    )
  25. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:19:45 | 显示全部楼层
是的-虽然我没有找到其他选项,但如果您希望创建一个针对特定纸张空间布局的视图,则只能使用ActiveX LayoutID[32]属性;据我所知,图纸空间布局和视图实体之间的关联似乎没有暴露在Vanilla AutoLISP中。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:28:51 | 显示全部楼层
这就成功了:
 
 
 
 
不是我!这太离谱了!
 
这些是标准模型空间视图。从可以导入到其他dwg的1个dwg导出。
 
谢谢-大卫
 
来自旧线程的查询:
 
 
 
http://www.cadtutor.net/forum/showthread.php?88522-快速保存视图和还原视图
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:40:28 | 显示全部楼层
基于前缀将命名模型空间视图从1个dwg导出和导入到其他dwg的可能场景:
 
  1. [color=#8b4513];;;EXPORT VIEWS[/color]
  2. [b][color=BLACK]([/color][/b]defun c:exv [b][color=FUCHSIA]([/color][/b]/ wf p td vn[b][color=FUCHSIA])[/color][/b]
  3.   [b][color=FUCHSIA]([/color][/b]setq wf [b][color=NAVY]([/color][/b]open [color=#2f4f4f]"VIEW.EMK"[/color] [color=#2f4f4f]"w"[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  4.   [b][color=FUCHSIA]([/color][/b]setq p [color=#2f4f4f]"VIEW"[/color][b][color=FUCHSIA])[/color][/b]
  5.   [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]setq td [b][color=MAROON]([/color][/b]tblnext [color=#2f4f4f]"VIEW"[/color] [b][color=GREEN]([/color][/b]not td[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  6.          [b][color=NAVY]([/color][/b]setq vn [b][color=MAROON]([/color][/b]cdr [b][color=GREEN]([/color][/b]assoc 2 td[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  7.          [b][color=NAVY]([/color][/b]princ [b][color=MAROON]([/color][/b]strcat [color=#2f4f4f]"\n"[/color] vn[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  8.          [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]= [b][color=GREEN]([/color][/b]strcase p[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]substr [b][color=BLUE]([/color][/b]strcase vn[b][color=BLUE])[/color][/b] 1 [b][color=BLUE]([/color][/b]strlen p[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  9.              [b][color=MAROON]([/color][/b]progn
  10.                [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"[b][color=BLUE]([/color][/b]entmake '[b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]0 . "[/color]VIEW\[color=#2f4f4f]"[b][color=PURPLE])[/color][/b]"[/color] wf[b][color=RED])[/color][/b]
  11.                [b][color=RED]([/color][/b]princ [color=#2f4f4f]"[b][color=PURPLE]([/color][/b]100 . "[/color]AcDbSymbolTableRecord\[color=#2f4f4f]"[b][color=PURPLE])[/color][/b]"[/color] wf[b][color=RED])[/color][/b]
  12.                [b][color=RED]([/color][/b]princ [color=#2f4f4f]"[b][color=PURPLE]([/color][/b]100 . "[/color]AcDbViewTableRecord\[color=#2f4f4f]"[b][color=PURPLE])[/color][/b]"[/color]  wf[b][color=RED])[/color][/b]
  13.                [b][color=RED]([/color][/b]foreach g [b][color=PURPLE]([/color][/b]cdr td[b][color=PURPLE])[/color][/b]
  14.                   [b][color=PURPLE]([/color][/b]prin1 g wf[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  15.                [b][color=RED]([/color][/b]princ [color=#2f4f4f]"[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]"[/color] wf[b][color=GREEN])[/color][/b]
  16.                [b][color=GREEN]([/color][/b]write-line [color=#2f4f4f]""[/color] wf[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  17.   [b][color=FUCHSIA]([/color][/b]close wf[b][color=FUCHSIA])[/color][/b]
  18.   [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
  19. [color=#8b4513];;;IMPORT THE VIEWS[/color]
  20. [b][color=BLACK]([/color][/b]defun c:imv [b][color=FUCHSIA]([/color][/b]/ rf[b][color=FUCHSIA])[/color][/b]
  21.   [b][color=FUCHSIA]([/color][/b]setq rf [color=#2f4f4f]"VIEW.EMK"[/color][b][color=FUCHSIA])[/color][/b]
  22.   [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]findfile rf[b][color=NAVY])[/color][/b]
  23.       [b][color=NAVY]([/color][/b]load rf[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  24.   [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2022-7-5 18:45:16 | 显示全部楼层
导入视图&李•麦克(leemac)的电影可以完成一大堆其他的事情。lsp
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2022-7-5 18:55:55 | 显示全部楼层
从选定图形中导入模型视图的另一个。
[code];这将从另一个选定图形中导入模型视图;保罗·格雷格森“
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 00:23 , Processed in 0.456447 second(s), 68 queries .

© 2020-2025 乐筑天下

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