明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3342|回复: 12

[提问] 求屏幕定距移动

[复制链接]
发表于 2018-1-2 21:07:02 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 石井鱼 于 2018-1-9 09:51 编辑

之前版主ZZXXQQ编过一个四个方向移动图元的程序,感觉非常好用
http://bbs.mjtd.com/forum.php?mo ... %D2%C6%B6%AF&page=1
现在求各位高手帮忙编个类似定距移动屏幕的程序,不胜感谢!
主要目的是设定一个距离(比如一个图框的尺寸),可以不用滚轮缩放平移,屏幕能上、下移该尺寸的距离(能上下左右更好)
因为工作中经常遇到相同位置的构件需要检查修改。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-1-2 21:07:03 | 显示全部楼层
  1. ;; tt(屏幕定距移动)
  2. (defun c:tt ()
  3.   (princ "\n键盘操作: w-上移/z-下移/a-左移/s-右移/鼠标左右键或空格退出")
  4.   (setq os (getvar "osmode"))
  5.   (setvar "osmode" 0)
  6.   (setq dx 59400
  7.         dy   42000
  8.         mode t
  9.   )
  10.   (while mode
  11.     (setq mo (grread t 15 0)
  12.           co (car mo)
  13.     )
  14.     (cond ((member co '(3 25)) (setq mode nil))
  15.           ((= (cadr mo) 97) (command "pan" '(0 0) (list (- dx) 0)))
  16.           ((= (cadr mo) 115) (command "pan" '(0 0) (list dx 0)))
  17.           ((= (cadr mo) 122) (command "pan" '(0 0) (list 0 (- dy))))
  18.           ((= (cadr mo) 119) (command "pan" '(0 0) (list 0 dy)))
  19.           ((= (cadr mo) 32) (setq mode nil))
  20.     )
  21.   )
  22.   (setvar "osmode" os)
  23.   (princ)
  24. )

评分

参与人数 1明经币 +1 收起 理由
石井鱼 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2018-1-4 14:21:42 | 显示全部楼层
貌似这个情况大家用的不多,简单讲就是屏幕移动一个固定的距离,还是期待热心的小伙伴出手相助
回复

使用道具 举报

发表于 2018-1-4 16:53:39 | 显示全部楼层
check System Variable
SCREENSIZE
VIEWCTR
VIEWSIZE
回复

使用道具 举报

发表于 2018-1-4 17:52:25 | 显示全部楼层

  1. ;; tt(屏幕定距移动)
  2. (defun c:tt ()
  3.   (princ "\n键盘操作: w-上移/z-下移/a-左移/s-右移/鼠标左右键或空格退出")
  4.   (if (setq s1 (car (entsel "\n选择参照实体: ")))
  5.     (progn
  6.       (setq os (getvar "osmode"))
  7.       (setvar "osmode" 0)
  8.       (setq p1 (xyp-9pt s1 1)
  9.             p3         (xyp-9pt s1 3)
  10.             p9         (xyp-9pt s1 9)
  11.             dx         (distance p1 p3)
  12.             dy         (distance p9 p3)
  13.             mode t
  14.       )
  15.       (while mode
  16.         (setq mo (grread t 15 0)
  17.               co (car mo)
  18.         )
  19.         (cond ((member co '(3 25)) (setq mode nil))
  20.               ((= (cadr mo) 97) (command "pan" '(0 0) (list (- dx) 0)))
  21.               ((= (cadr mo) 115) (command "pan" '(0 0) (list dx 0)))
  22.               ((= (cadr mo) 122) (command "pan" '(0 0) (list 0 (- dy))))
  23.               ((= (cadr mo) 119) (command "pan" '(0 0) (list 0 dy)))
  24.               ((= (cadr mo) 32) (setq mode nil))
  25.         )
  26.       )
  27.       (setvar "osmode" os)
  28.     )
  29.   )
  30.   (princ)
  31. )

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
石井鱼 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2018-1-4 22:46:08 | 显示全部楼层
十分感谢院长的热心帮忙,基本达到目的了,还有个小小希望不知能否稍作修改,不用去选择实体,直接给个固定数值(dx dy),平时图框尺寸都是固定的,这样可以少个选择图框的步骤,更加便捷一些,再次感谢院长
回复

使用道具 举报

 楼主| 发表于 2018-1-5 09:57:01 | 显示全部楼层
谢谢院长深夜回帖,用您的工具箱多年,收益匪浅,再次感谢!
回复

使用道具 举报

发表于 2018-1-6 16:31:15 | 显示全部楼层
很强大的哦
回复

使用道具 举报

发表于 2018-1-17 03:37:57 | 显示全部楼层
深夜马克
回复

使用道具 举报

发表于 2021-7-19 22:37:45 | 显示全部楼层
遇到好东西就要留个脚印
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 08:25 , Processed in 0.194047 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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