乐筑天下

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

[编程交流] Qtext和最大化显示组合

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:52:24 | 显示全部楼层 |阅读模式
大家好。我对LISP例程的唯一体验就是将它们加载到cad中。我有一个具体的请求需要帮助。我正在使用Acad 2012。
 
我需要一个Lisp例程:(还配备了vl load com部分,因为我没有访问任何Acad系统文件的权限)
 
1) 启用Qtext,重新生成,然后进行最大化显示。
 
2) 如果用户希望继续Y或N,则暂停以提示用户
 
2a)如果没有,程序终止。
2b)如果是,请关闭Qext,重新生成,然后最大化显示。
 
为了简短起见,我将跳过为什么需要这个的解释。一石二鸟。如果有人觉得很好,可以给我写些有用的东西吗?提前非常感谢!
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:59:39 | 显示全部楼层
  1. (defun c:qtzoom ( / inp)
  2.   (vl-load-com)
  3.   (setvar "QTEXTMODE" 1)
  4.   (command ".regen" ".zoom" "e")
  5.   (initget "YES yes NO no")
  6.   (setq inp (getkword "\nDo you wish to continue? Yes or No: "))
  7.   (if (eq inp "Yes") (progn (setvar "QTEXTMODE" 0)(command ".regen" ".zoom" "e")))
  8.   (princ)
  9. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 19:04:21 | 显示全部楼层
请阅读代码发布指南,并为您的代码使用代码标签。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:08:13 | 显示全部楼层
我使用了包裹符号,但就是不起作用
 
 
rlx公司
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:11:27 | 显示全部楼层
rlx,
 
非常感谢你!代码的第一部分工作顺利,但如果我点击yes继续,程序就会结束。有什么想法吗?
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2022-7-5 19:12:49 | 显示全部楼层
尝试:
  1. (defun c:qtzoom ( / inp)
  2. (vl-load-com)
  3. (setvar "QTEXTMODE" 1)
  4. (command ".regen" ".zoom" "e")
  5. (initget "Yes No")
  6. (setq inp (getkword "\nDo you wish to continue? [Yes/No] "))
  7. (if (eq inp "Yes") (progn (setvar "QTEXTMODE" 0)(command ".regen" ".zoom" "e")))
  8. (princ)
  9. )
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:17:26 | 显示全部楼层
好啊这是可行的,但它似乎没有缩放到范围。
 
我的意思是它确实可以缩放到图形,但它忽略了用于缩放的qtext。
 
如果我不使用lisp(Qtext,on),(regen),(Zoom-extents)手动执行该命令,那么它就可以工作。
 
编辑:我更改了代码,因此它不使用(setvar),而是这样做的:
 
  1. (defun c:qtzoom ( / inp)
  2.     (vl-load-com)
  3.     (command ".qtext" "ON" ".regen" ".zoom" "e")
  4.     (initget "Yes No")
  5.     (setq inp (getkword "\nDo you wish to continue? [Yes/No] "))
  6.     (if (eq inp "Yes") (progn (command ".qtext" "OFF"".regen" ".zoom" "e")))
  7.     (princ)
  8. )

 
现在一切都正常了!谢谢大家!你让我的生活轻松多了!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:23:43 | 显示全部楼层
这一行中不需要progn(if(eq inp“Yes”)(progn(command).qtext“OFF”.regen.zoom“e”))if基本上为true或false 1行,但如果需要1行以上的代码语句,则使用progn表示我有1行以上要执行的代码。
 
  1. (if (= x 1)
  2. (this is true)
  3. (this is false)
  4. )
  5. (if (= x 1)
  6. (progn
  7. (this is true)
  8. (need line 2)
  9. (needline 3)
  10. ) ; end progn
  11. (this is false)
  12. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 19:26:00 | 显示全部楼层
 
不知道你所说的包裹符号是什么意思,但是。。。
 
您只需使用#或手动制作标签。[NOPARSE]
  1. Your Code Here
[/NOPARSE]。
 
这次为你修复了你的帖子。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:31:48 | 显示全部楼层
 
 
 
 
我使用了#符号(在选择代码后),但什么也没发生。下次我将使用手动选项或使用attachements代替,gr.rlx。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:24 , Processed in 1.249893 second(s), 72 queries .

© 2020-2025 乐筑天下

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