乐筑天下

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

[编程交流] 用于设置viewpo的Lisp/DCL例程

[复制链接]

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 10:02:38 | 显示全部楼层 |阅读模式
我想知道是否有人能帮我。我要找的是一个例程,可以让你选择一个纸空间视口,弹出一个具有不同比例选择的对话框,然后将该视口更改为所选比例。
 
我有一个lisp/dcl,它已经为文本大小/尺寸比例做了这项工作。我想知道是否有人可以帮我调整它以改变视口比例?
dsl。dcl
dsl。lsp
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:25:19 | 显示全部楼层
尝试从dcl拾取比例,然后z e拾取dwg的中心点,然后z C zzz,其中zzz是所选比例的比例因子,否则再次使用缩放ZZXP zzz是比例因子10XP=1:100
  1. (setq sc (getstring "\nScale for this window 1:  "))
  2. (setq sc3 (strcat "1/" sc "xp"))
  3. (setq zc (getpoint "\nPoint to centre of view in Viewport:"))
  4. (command "_.zoom" "_center" zc sc3)
回复

使用道具 举报

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 10:27:16 | 显示全部楼层
我在论坛上找到了这个例程,想知道它是否可以以某种方式集成到DSL lisp/DCL例程中?
 
(定义c:测试(/e s)
(if(setq e(car(entsel“\n选择要更改的视口/视图比例:”))
(if(eq“AcDbViewport”(vla get objectname(setq e(vlax ename->vla object e)))
(if(setq s(getreal)(strcat“\n指定新比例(当前:1”)
(实时操作系统(/1。(vla get customscale e))2)
"'): "
)
)
)
(vl catch all apply(函数vla put customscale)(列表e(/1.s)))
)
(普林斯“\n无效对象!”)
)
)
(普林斯)
)
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 10:50:38 | 显示全部楼层
只是好奇。
为什么不使用AutoCAD特性框?为什么在Lisp程序的情况下需要它?
回复

使用道具 举报

18

主题

71

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-6 10:58:32 | 显示全部楼层
嗯,我办公室里有些人的灯泡不是最亮的
 
我想用最简单的方法整理床单。“属性”框不适用于civil Scale(即1“=10”)。我认为这是一种简化模型窗口设置的方法。
回复

使用道具 举报

8

主题

159

帖子

153

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 11:06:21 | 显示全部楼层
也许是这个。这很简单,但很有效:
  1. (defun C:S1  () (DRAWVP  1))
  2. (defun C:S2  () (DRAWVP  2))
  3. (defun C:S4  () (DRAWVP  4))
  4. (defun C:S8  () (DRAWVP  )
  5. (defun C:S12 () (DRAWVP 12))
  6. (defun C:S16 () (DRAWVP 16))
  7. (defun C:S24 () (DRAWVP 24))
  8. (defun C:S32 () (DRAWVP 32))
  9. (defun C:S48 () (DRAWVP 48))
  10. (defun C:S96 () (DRAWVP 96))
  11. ---------------------------------------------------------------------------------------
  12. (defun DRAWVP (Scale / OLDCMD CVP SS)
  13. (setq OLDCMD (getvar "cmdecho"))
  14. (setvar "cmdecho" 0)
  15. (if (/= (getvar "cvport") 1)
  16.    (progn
  17.      (command "_zoom" "_s" (strcat "1/" (itoa Scale) "xp"))
  18.      (setq CVP (getvar "cvport"))
  19.      (setq SS
  20.        (ssget "_X"
  21.          (list
  22.            (cons 0 "viewport")
  23.            (Cons 69 CVP)
  24.          )
  25.        )
  26.      )
  27.      (command "_vports" "_L" "ON" SS "")
  28.      (command "_pspace")
  29.    )
  30. )
  31. (setvar "cmdecho" OLDCMD)
  32. (princ)
  33. )
  34. (princ)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:33 , Processed in 0.696360 second(s), 64 queries .

© 2020-2025 乐筑天下

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