找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2934|回复: 6

[已解决] 求移动屏幕的软件

[复制链接]
发表于 2014-2-16 14:34:13 | 显示全部楼层 |阅读模式
悬赏100D豆已解决
本帖最后由 清风明月10 于 2014-2-16 15:17 编辑

很多软件都有一页一页地翻动的按钮,CAD就没有。我想请高手编一个移动屏幕按钮,呈左右一页一页地翻动,还可以上下一页一页地翻动。相邻移动区域之间重叠90%。
是上下移动较简单,因为屏幕高度可以从“viewsize”系统变量获得。我郁闷的就是无法获得屏幕当前的宽高度。
屏幕宽度是指显示在当前屏幕的模型空间的宽度。
屏幕高度是指显示在当前屏幕的模型空间的高度。

哪位朋友能告诉我求在当前屏幕的模型空间的宽度的代码?

最佳答案

查看完整内容

适用 ODCL 8.0 以上,左右移动不需要高度
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-16 14:34:14 | 显示全部楼层
本帖最后由 st788796 于 2014-2-16 16:11 编辑
清风明月10 发表于 2014-2-16 14:58
我也知道较简单,尤其是上下移动,因为屏幕高度可以从“viewsize”系统变量获得。我郁闷的就是无法获得屏 ...

适用 ODCL 8.0 以上,左右移动不需要高度
  1. (defun c:xpan (/ string)
  2.   (defun _panview (p mod / size scl dis str)
  3.     (setq size (getvar "viewsize")
  4.           scl  (dcl-control-gettext npan/form1/textbox1)
  5.     )
  6.     (if        (not (zerop (distof scl)))
  7.       (progn
  8.         (setq dis (trans p 0 1))
  9.         (if mod
  10.           (setq str (strcat (vl-princ-to-string (car dis)) ",0,0"))
  11.           (setq str (strcat "0," (vl-princ-to-string (cadr dis)) ",0"))
  12.         )
  13.         (dcl-sendstring
  14.           (strcat "_-Pan 0,0,0 "
  15.                   str
  16.                   "\n"
  17.           )
  18.         )
  19.       )
  20.     )
  21.   )
  22.   (defun c:npan/form1/lpan#OnClicked ()
  23.     (_panview (list (* -1
  24.                        (distof scl)
  25.                        (getvar "viewsize")
  26.                     )
  27.                     0
  28.               )
  29.               t
  30.     )
  31.   )
  32.   (defun c:npan/form1/rpan#OnClicked ()
  33.     (_panview (list (* (distof scl)
  34.                        (getvar "viewsize")
  35.                     )
  36.                     0
  37.               )
  38.               t
  39.     )
  40.   )
  41.   (defun c:npan/form1/upan#OnClicked ()
  42.     (_panview (list 0(*  (distof scl)
  43.                        (getvar "viewsize")
  44.                     )
  45.                     
  46.               )
  47.               nil
  48.     )
  49.   )
  50.   (defun c:npan/form1/bpan#OnClicked ()
  51.     (_panview (list 0(* -1 (distof scl)
  52.                        (getvar "viewsize")
  53.                     )
  54.                     
  55.               )
  56.               nil
  57.     )
  58.   )
  59.   (setq        string
  60.          '("YWt6A+skAABlxuF1BuKT6QESajtquaHLqcyudOoWStw3b2pc6CBlUgnuHrshHiU0JZ3x+liKpMUs"
  61.            "xmArJVf6ejIyWjwcf3v3wR3cd9/+9/4isitbT2RtnUFY1rpmZT77fN+sHjXXkbOgk7DCw6XFaCQs"
  62.            "za2nlwCZw4fPRZHNTUkblqRuulAJZiTecLyefP5hWX4y2mVKsoy8Ao6dm7+sdXE8f1L+HI7fUL6k"
  63.            "bIIh8QkLFnPc2370ztqkfkreu/WBAyZNIWEW9gRyHgWMcNy7+cCqHW+Eq/dg9a40CyCqP08gQwSH"
  64.            "j9BmBYv27/TPEXEy/mKU6ljk/Wmie+R1TF7oruqLRtL9ad5nharA+xcPNbI71XhJNjelUsRslzHi"
  65.            "14hLGleIF9jD+wrYNRMBqsp1A+aXXTIBuIorDUAarhhUcZ1gpi7HjCqThFSTRdtgykcYQSXXo14a"
  66.            "ucVviAnmAPeX8zJxTwPsl4sykR8ERa2nUCtxTgVFreSUUWjnoDJgKweGXMWDz7arDOsA2Km9PPY5"
  67.            "C1/m3y52j2hN32y1OV56M2YaFTu2FCcSyHmnkkTnQL6KANg9uNT0K6yoTKMS0uDV8dwQY83RHwRl"
  68.            "lcG5BmXEwBiE9VZEsaThPRAaQ/XLwR6wOaZt/u1/JMI0+JhcM8Gsqk224NNSKDiwjP9zpF94oNlS"
  69.            "jllPsz9yVQOYKD5zmp3LZGlO+gGHjlbo8947sseKrqLM7H0DeZejEqKlMoUD2inmpDEE0Y9Ui4DY"
  70.            "5UQ2xLSKwfmKJ3iQw9gDf6fp5aQ5xPIDXrTn0B6EN9iH+RxIBUCXvS/06X+kKtTP/KhIEq6kYq4y"
  71.            "QwTeQ3MorljzLa6Y/nSkVM55028qroy/YEpMtt77n1j/OFNYLbNCcCQIx0aarkUwAg43bGicrpwY"
  72.            "0SB0bQQZQjJ4SMt6ECTmNh8/4WITUJUpdHUEHkdSyP7EktW+AKfhfQunEfnPI4gCrMeS9ZwCf+tR"
  73.            "3r78OML7qhzw+4hquC1Fyrxsoh+krT7d7lP5+Rd34wD48M41lq7S0GXtQi0ZvAsenRuN7k7Ea2wC"
  74.            "I5nMmTSLywP++wd/rYnNj/FNUx9XzuPfQhnYecEGxgaNMtFV5ZOfa4XlepHjDn2ei88ncX2YGTcN"
  75.            "Bi2/RAfqH4vNgMlMg3Ktf9hHkhFNwwzy8T0/C0KdDuQ1K6i9F0vSrnHZXUE4U3yVgKYlTUDxLzU/"
  76.            "e8VqkvEvfzZ+0HPsCf30GnPykwCUe7UAFI1FWmBisJHuSgkflB90V1UWm919pJekj3ckvP3XcxZz"
  77.            "3vxYPoOh/iiQ/hiUat4vHfTgeC9Pb6Kro0dFIIFfkaMQpnkb4Sn7JH80jt7G2vw0NFve4abYuFDp"
  78.            "9jCu8e1SAxc37zaas+Nj394Blz1AXd2Clr2J07DmrsfYks+9+UQBQYeNodnFi4KPeZEfVRXto8UI"
  79.            "HgOKpq/gwbDOgpToM0Z0jTmZw8VEUOJFFbOhAQ1i08yNuMiZ4SaSg5PpbelQ4MmYITGCWoWdMq5H"
  80.            "BJI2oUHDJgHHiWy1GTCDX4WdgykhOtCKI7goBvH//IkMuGSngdNJCJTR0B2FFSaIiYGlx5FtiqeI"
  81.            "tLUmwGYk80sSgIwm/f0pJeXlzhJ10b/MtyH12/PBQMTLYudBFeaubU3ADqMUI3bD7AdksAwY03Ix"
  82.            "B4oacexS25ExGntizGLMuPZSo9nV1bW44S/O0gqfzPlpZ3UP3baU9DiL8oO1LTTntkdkM5c4Gntj"
  83.            "zGLMOMB5t08XkfH+zubJX1VfWEgal62uveAf7BKxzLBBGzSh4bYUCrYMtmR3J2YdvVxVMwHIbc/7"
  84.            "zqfNCgyLrKT0kSccTAQwbeimgq2mzk6DebRLkvg="
  85.           )
  86.   )
  87.   (dcl-project-import string)
  88.   (dcl-form-show npan/form1)
  89.   (princ)
  90. )

xpan.jpg

点评

软件版本太低,没法用。老师能做简单一些吗,我只要你做向右移动屏幕宽度90%的,不需要ODCL,即不需要看见窗体。我还是喜欢单独的插件,一个向右,一个向左  发表于 2014-2-16 16:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-16 14:41:02 | 显示全部楼层
本帖最后由 st788796 于 2014-2-16 14:47 编辑

可以用ODCL做个 Modeless 按钮, 执行 PAN 命令 很简单的

CAD 默认有这个图标菜单的,移动距离是  0.2 * viewsize

点评

我也知道较简单,尤其是上下移动,因为屏幕高度可以从“”系统变量获得。我郁闷的就是无法获得屏幕当前的宽高度。  详情 回复 发表于 2014-2-16 14:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-2-16 14:58:36 | 显示全部楼层
st788796 发表于 2014-2-16 14:41
可以用ODCL做个 Modeless 按钮, 执行 PAN 命令 很简单的

CAD 默认有这个图标菜单的,移动距离是  0.2 *  ...

我也知道较简单,尤其是上下移动,因为屏幕高度可以从“viewsize”系统变量获得。我郁闷的就是无法获得屏幕当前的宽高度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-16 16:08:36 | 显示全部楼层
本帖最后由 st788796 于 2014-2-16 16:53 编辑

CAD 菜单是这样定义左移屏的
^P'_-pan (trans (list (* 0.2 (getvar "viewsize")) 0) 0 1) ;^P
左移
  1. (defun c:ttl (/ xmax xmin xv)
  2.   (setq        xmax (car (getvar "vsmax"))
  3.         xmin (car (getvar "vsmin"))
  4.         vx    (* -0.01 (- xmax xmin))
  5.   )
  6.   (vl-cmdf ".-pan"
  7.            '(0. 0. 0.)
  8.            (list vx 0. 0.)
  9.   )
  10.   (princ)
  11. )

屏幕 BOX
(apply 'xdrx_points_box (list (getvar "vsmin") (getvar "vsmax")))

http://bbs.xdcad.net/forum.php?mod=viewthread&tid=668860&extra=page%3D7%26filter%3Dsortid%26sortid%3D1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 04:29 , Processed in 0.209460 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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