明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1010|回复: 7

[提问] 这种布局视口线,怎么生成?

[复制链接]
发表于 2019-12-16 13:36:51 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 sbwdx 于 2019-12-16 14:59 编辑

已解决,谢谢各位老师!

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-12-16 14:19:35 | 显示全部楼层
表述没看懂,你是不是就想新建视口的时候,完全对齐模型空间的矩形线框,在建好视口的时候模型空间的边线看不到就行,是吧
回复

使用道具 举报

 楼主| 发表于 2019-12-16 14:31:29 | 显示全部楼层
xj6019 发表于 2019-12-16 14:19
表述没看懂,你是不是就想新建视口的时候,完全对齐模型空间的矩形线框,在建好视口的时候模型空间的边线看 ...

你的意思是,先有模型范围,再有视口范围,刚好一样,我是先有视口范围,确定图纸比例和位置后,模型空间,生成的矩形,就是这个视口框,范围,我要那个矩形框,建立视图范围,我再用VIEW恢复视图,布局其他视口也是这个大小。
回复

使用道具 举报

发表于 2019-12-16 14:33:48 | 显示全部楼层
本帖最后由 xj6019 于 2019-12-16 14:36 编辑

如果是的话:
第一种方法,布局空间正常新建视口,然后给定比例,调整好大体位置,按布局大小画一个矩形(覆盖重叠于需要线框的视口),选择矩形,命令chs,默认当前视口的情况下直接回车,不是当前视口的话,点击当前视口一下,切换到当前视口,然后就创建了一个完全相同的矩形在模型空间,模型空间制作相同的比例时候的时候复制那个矩形,到需要创建的位置,布局空间用调好比例的视口拉动对角点,套上模型空间的矩形就好
第二种方式,lisp直接创建,参考和代码如下:
http://bbs.mjtd.com/forum.php?mo ... hlight=%CA%D3%BF%DA
[code="lisp] defun c:wv ()
    (setvar "DYNMODE" 3)
    (setvar "cmdecho" 0)
    (setq LAY (getvar "CLAYER"))
    (setq os (getvar "OSMODE"))
    (setq olderr *error*)                        ;保存原有*erroer*函数内容
  (defun *error* (msg)                        ;自定义出错处理
    (COMMAND "CLAYER" LAY)
      (setq *error* olderr)
      (princ errn)
    )
    (if (= scaa nil)
      (setq scaa "100")
    )
    ;(if (= 1 (getvar "TILEMODE"))
     ; (progn
        (setq err_old *error*
              *error* err_new
        ) ;_ end of setq
        (setvar "OSMODE" 1)
        (command "model")
        (princ "\n请点取需要出图范围第一角点:\n")
        (setq FP (getpoint))
        (setq SP (getcorner FP "\n请点取出图范围另一角点:\n"))
        (setq HT (abs (- (cadr sp) (cadr fp))))
        (setq WD (abs (- (car sp) (car fp))))
        (COMMAND "CLAYER" LAY)
        (setvar "OSMODE" os)
        (setq *error* olderr)                ;恢复原有*error*函数内容
      (COMMAND "CLAYER" LAY)
        (setvar "OSMODE" os)
        (setvar "TILEMODE" 0)
       ; (princ
        ;  "2\n\n\n★★注意:\n\n若现在不是您要创建视口的布局空间,请结束此命令,\n并手动切换至要要创建视口的布局重新运行本命令。\n\n"
        ;)
        ;(c:wv)
      ;)
      ;(progn
      ;  (if (or (null fp) (null sp))
      ;(progn
      ;      (princ "\n程序将切换至【模型空间】设置视口显示区域!")
      ;     (setvar "TILEMODE" 1)
      ;      (c:wv)
      ;    )
      ;    (progn
            (setq        sca
                   (getstring
                     (strcat
                       "\n空格重複上次比例,或輸入新出圖比例【 1︰" scaa "】>1:"
                    )
                   )
            )
            (if (= sca "")
              (setq sca scaa)
            ) ;_ end of if
            (setq scaa sca)
            (setq scal (atoi (substr sca 1)))
            (princ "\n请点取图的左下角点\n\n")
            (setq BLP (getpoint))
            (setq        TRP (list (+ (car BLP) (/ Wd scal))
                            (+ (cadr BLP) (/ HT scal))
                            0
                      ) ;_ end of list
            ) ;_ end of setq
            (command "_zoom" BLP TRP)
            (command "_mview" BLP TRP)
            (command "_mspace")
            (command "_zoom" fp sp)
            (command "_zoom" (strcat "1/" sca "xp"))
            (command "_pspace")
            (command "_zoom" "e")
            (command "mview" "l" "on" "c" BLP TRP "")
            (COMMAND "LAYER" "M" "Defpoints" "C" "8" "" "")
            (command "change" BLP "" "p" "la" "Defpoints" "")
            (setq blp nil)
      ;    )
      ;  )
      ;)
    ;)                                        ;end if
    ; (command "model")
   (COMMAND "CLAYER" LAY)
    (setvar "OSMODE" os)
    (setq *error* olderr)                        ;恢复原有*error*函数内容
  (COMMAND "CLAYER" LAY)
    (setvar "OSMODE" os)
    (princ)
)[/code]
回复

使用道具 举报

 楼主| 发表于 2019-12-16 14:45:39 | 显示全部楼层
xj6019 发表于 2019-12-16 14:33
如果是的话:
第一种方法,布局空间正常新建视口,然后给定比例,调整好大体位置,按布局大小画一个矩形( ...

老师这个有点复杂了,我觉得GIF动画,效果就可以了,你说的第一种方法,画矩形,CHS,我写出来的,我就是不想画那个矩形,我觉得麻烦,giF动画,就是布局空间进入视口,命令以后,模型空间,直接就有这个视口一模一样大小的矩形了,然后切换到模型空间那个(setvar "TILEMODE" 0)就可以,我就不知道,GIF那矩形利用啥原理生成的。
回复

使用道具 举报

 楼主| 发表于 2019-12-16 14:58:48 | 显示全部楼层
想到了,已解决,利用视图,预定义,恢复就行,不用矩形就可以了!没有那么麻烦的!谢谢各位老师!

点评

你好,激活视口的情况下,可以直接在模型空间自动做出一个矩形来吗,可以的话能给一下代码吗,如果可以那可太方便了,我用的着,现在都是用老发子,画矩形,然后转换进去  发表于 2019-12-19 16:16
回复

使用道具 举报

 楼主| 发表于 2019-12-20 09:40:10 | 显示全部楼层
sbwdx 发表于 2019-12-16 14:58
想到了,已解决,利用视图,预定义,恢复就行,不用矩形就可以了!没有那么麻烦的!谢谢各位老师![face13. ...

不用画矩形哈,直接建立视图,恢复就可以了
(setq st (getstring "\n请输入新建视图名称:"))
(Command "_.VIEW" "S" st)
(princ "【视图建立已完成!】")
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 11:03 , Processed in 0.247251 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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