乐筑天下

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

[编程交流] 修复我的Plot命令

[复制链接]

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 12:28:22 | 显示全部楼层 |阅读模式
我已经编写了一个真正快速的LISP,用作绘图命令。我想补充一点。它的书写方式非常好,所以我不希望它被重写,但我想添加一种方式,让用户可以选择绘图大小。我只需要两个选择,Letter和11X17。有人能告诉我要添加什么才能使这个选择可用吗?
这是原始代码:
我想我需要添加一个用户定义的变量“size”,并将其放置在现在标记为11x17的位置。我只是不知道如何写这段代码。
这是我最好的尝试,但我遇到了一个错误:
  1. (DEFUN C:WPO (/ size )
  2. (setq size (getkword "\n Plot Size [Letter / 11x17]: <Letter> "))
  3. (COMMAND "-PLOT" "YES" "model" "HP LaserJet M5035 MFP PCL (BackOffice).pc3" size "INCHES" "LANDSCAPE" "NO" "WINDOW" PAUSE PAUSE "FIT" "CENTER" "YES" "MONOCHROME.CTB" "YES" "WIREFRAME" "NO" "NO" "YES")
  4. (PRINC)
  5. )

 
我应该提一下这是一个窗口情节。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:34:43 | 显示全部楼层
查看initget函数,您需要提供一个“允许”关键字的列表。
 
需要更多的代码来将“字母”设置为默认值。
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 12:37:27 | 显示全部楼层
谢谢你的提示李。。。我得到了它!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:40:23 | 显示全部楼层
没问题,您最后是如何编写默认选项的?
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 12:43:29 | 显示全部楼层
这就是我得到的:
 
  1. (DEFUN C:WP (/ size p1 p2 )
  2.    (initget "Letter 11x17 ")
  3.    (setq size (getkword "Paper Size: [Letter/11x17]: ")
  4.        p1 (getpoint "\nPick first corner of window: \n")
  5.        p2 (getcorner p1 "\nPick opposite corner of window: \n"))
  6. (COMMAND "-PLOT" "YES" "model" "HP LaserJet M5035 MFP PCL (BackOffice).pc3" size "INCHES" "LANDSCAPE" "NO" "WINDOW" P1 P2 "FIT" "CENTER" "YES" "MONOCHROME.CTB" "YES" "WIREFRAME" "NO" "NO" "YES")
  7. (PRINC)
  8. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:46:41 | 显示全部楼层
很好的一个伴侣-看起来你已经掌握了窍门
 
我们看看是否可以在那里违约?我会引导你
 
注意,如果用户点击enter,getkword的返回为nil,那么我们需要构造一些逻辑,将getkword返回nil时的选项设置为默认值。
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 12:49:03 | 显示全部楼层
在我正在阅读的书中,它没有描述如何设置默认值。我在哪里可以找到更多信息?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:51:31 | 显示全部楼层
这里有一个小例子:
  1. (DEFUN C:WP (/ size p1 p2 )
  2. (initget "Letter 11x17 ")
  3. (and
  4.    (or (setq size (getkword "Paper Size: [Letter/11x17] <Letter>: "))
  5.        (setq size "Letter"))
  6.    (setq p1 (getpoint "\nPick first corner of window: \n"))
  7.    (setq p2 (getcorner p1 "\nPick opposite corner of window: \n"))
  8.    (COMMAND "-PLOT" "YES" "model" "HP LaserJet M5035 MFP PCL (BackOffice).pc3" size "INCHES" "LANDSCAPE" "NO" "WINDOW" P1 P2 "FIT" "CENTER" "YES" "MONOCHROME.CTB" "YES" "WIREFRAME" "NO" "NO" "YES")
  9.    )
  10. (PRINC)
  11. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:55:55 | 显示全部楼层
我还将所有内容放在and中,如果遗漏了某些内容,则退出。
回复

使用道具 举报

36

主题

183

帖子

151

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-6 12:57:22 | 显示全部楼层
所以,如果我这样做,我会有一个默认的信没有问题?
 
  1. (DEFUN C:WPO (/ size p1 p2 )
  2.    (initget "Letter 11x17 ")
  3.    (or(setq size (getkword "Paper Size: [Letter/11x17]:<Letter> "))
  4.       (setq size "Letter"))
  5.        (setq p1 (getpoint "\nPick first corner of window: \n"))
  6.        (setq p2 (getcorner p1 "\nPick opposite corner of window: \n"))
  7. (COMMAND "-PLOT" "YES" "model" "HP LaserJet M5035 MFP PCL (BackOffice).pc3" size "INCHES" "LANDSCAPE" "NO" "WINDOW" P1 P2 "FIT" "CENTER" "YES" "MONOCHROME.CTB" "YES" "WIREFRAME" "NO" "NO" "YES")
  8. (PRINC)
  9. )

 
如果我用(if)而不是(or)呢?
 
  1. (DEFUN C:WPO (/ size p1 p2 )
  2.    (initget "Letter 11x17 ")
  3.    (if(setq size (getkword "Paper Size: [Letter/11x17]:<Letter> "))
  4.       (setq size "Letter"))
  5.        (setq p1 (getpoint "\nPick first corner of window: \n"))
  6.        (setq p2 (getcorner p1 "\nPick opposite corner of window: \n"))
  7. (COMMAND "-PLOT" "YES" "model" "HP LaserJet M5035 MFP PCL (BackOffice).pc3" size "INCHES" "LANDSCAPE" "NO" "WINDOW" P1 P2 "FIT" "CENTER" "YES" "MONOCHROME.CTB" "YES" "WIREFRAME" "NO" "NO" "YES")
  8. (PRINC)
  9. )

 
这还能用吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-7 17:56 , Processed in 0.321405 second(s), 72 queries .

© 2020-2025 乐筑天下

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