找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 694|回复: 8

[LISP程序]:请问高手一个问题,关于视口的打开与关闭的。

[复制链接]
发表于 2006-4-1 22:56:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
请问高手一个问题,关于视口的打开与关闭的,我要孤立(只显示某个视口)和打开视,哪位高手能搞定?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-2 16:05:23 | 显示全部楼层
docbar(视口切换)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-2 20:43:22 | 显示全部楼层
楼上,我想你没有理解我的意思,我说的“视口”是在一个图纸空间中的不同的视口,而不是不同文件不同的视窗。你说的Docbar 我早就用过了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-2 22:56:34 | 显示全部楼层
ActivePViewport 属性

指定图形中活动的图纸空间视口。
参阅 | 示例
语法
object.ActivePViewport
object
Document
使用该属性的对象。
ActivePViewport
PViewport 对象; 可读写
活动的图纸空间视口。
说明
视口必须首先使用该属性将其设为活动,这样才能看到该视口的任何修改。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-4-2 23:05:01 | 显示全部楼层
先用 vports -〉off 视口,然后将视口线隐藏
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-2 23:24:57 | 显示全部楼层
楼上,我想的是——我要孤立“我所选的”(只显示所选取的视口)和打开所有视口(不需要选取),不知怎么弄,还望指点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-4-3 09:39:12 | 显示全部楼层
没有优化,能用

  1. ;;written by eachy 2006.04.03
  2. ;; 隔离视口
  3. (vl-load-com)
  4. (defun c:tt (/ e el ss ssl i e1 el1 ha handle)
  5.   (if (and (setq e (car (entsel)))
  6.            (= (cdr (assoc 0 (setq el (entget e)))) "VIEWPORT")
  7.            (setq handle (cdr (assoc 5 el)))
  8.       )
  9.     (progn
  10.       (if (setq ss (ssget "x" '((0 . "viewport"))))
  11.         (progn
  12.           (setq        ssl (sslength ss)
  13.                 i   -1
  14.           )
  15.           (repeat ssl
  16.             (setq e1  (ssname ss (setq i (1+ i)))
  17.                   el1 (entget e1)
  18.                   ha  (cdr (assoc 5 el1))
  19.             )
  20.             (if        (/= ha handle)
  21.               (progn
  22.                 (command ".vports" "off" e1 "")
  23.                 (vl-catch-all-apply
  24.                   'vla-put-visible
  25.                   (list        (vlax-ename->vla-object e1)
  26.                         :vlax-false
  27.                   )
  28.                 )

  29.               )
  30.             )
  31.           )
  32.         )
  33.       )
  34.     )
  35.   )
  36.   (princ)
  37. )
  38. ;;显示全部视口
  39. (defun c:t1 (/ ss ssl i e)
  40.   (if (setq ss (ssget "X" '((0 . "viewport"))))
  41.     (progn
  42.       (setq ssl        (sslength ss)
  43.             i        -1
  44.       )
  45.       (repeat ssl
  46.         (vla-put-visible
  47.           (vlax-ename->vla-object
  48.             (setq e (ssname ss (setq i (1+ i))))
  49.           )
  50.           :vlax-true
  51.         )
  52.         (command ".vports" "on" e "")
  53.       )
  54.     )
  55.   )
  56.   (princ)
  57. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-3 10:23:28 | 显示全部楼层
非常感谢eachy 斑竹!试试再说。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-4-3 11:48:54 | 显示全部楼层

  1. ;;written by eachy from [url]www.xdcad.net[/url]  2006.04.03
  2. ;;仅处理当前 Layout 内的 Viewport
  3. (vl-load-com)
  4. (setvar "cmdecho" 0)
  5. ;;视口隔离
  6. (defun c:LayoutISO (/ e el thisdrawing layout ss ssl i l1 lobj handle)
  7.   (if (and (= (getvar "tilemode") 0)
  8.            (setq e (car (entsel "\nPick Viewport Edge: ")))
  9.            (= (cdr (assoc 0 (setq el (entget e)))) "VIEWPORT")
  10.       )
  11.     (progn
  12.       (setq thisdrawing        (vla-get-activedocument (vlax-get-acad-object))
  13.             layout        (vla-get-name (vla-get-activelayout thisdrawing))
  14.             handle        (assoc 5 el)
  15.       )
  16.       (if (setq ss (ssget "x" (list '(0 . "viewport") (cons 410 layout))))
  17.         (progn
  18.           (setq        ssl (sslength ss)
  19.                 i   -1
  20.           )
  21.           (repeat ssl
  22.             (setq l1   (ssname ss (setq i (1+ i)))
  23.                   lobj (vlax-ename->vla-object l1)
  24.             )
  25.             (if        (not (equal (assoc 5 (entget l1)) handle))
  26.               (progn
  27.                 (if (= (vla-get-visible lobj) :vlax-false)
  28.                   (vla-put-visible lobj :vlax-true)
  29.                 )
  30.                 (command ".vports" "off" l1 "")
  31.                 (vla-put-visible lobj :vlax-false)
  32.               )
  33.             )
  34.           )
  35.         )
  36.       )
  37.     )
  38.   )
  39.   (princ)
  40. )
  41. ;;显示全部视口
  42. (defun c:LayoutOn (/ thisdrawing layout ss ssl i e)
  43.   (setq        thisdrawing (vla-get-activedocument (vlax-get-acad-object))
  44.         layout            (vla-get-name (vla-get-activelayout thisdrawing))
  45.   )
  46.   (if (setq ss (ssget "x" (list '(0 . "viewport") (cons 410 layout))))
  47.     (progn
  48.       (setq ssl        (sslength ss)
  49.             i        -1
  50.       )
  51.       (repeat ssl
  52.         (setq e (ssname ss (setq i (1+ i))))
  53.         (vla-put-visible (vlax-ename->vla-object e) :vlax-true)
  54.         (command ".vports" "on" e "")
  55.       )
  56.     )
  57.   )
  58.   (princ)
  59. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-21 15:08 , Processed in 0.185665 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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