乐筑天下

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

[编程交流] 批号lisp需要帮助!

[复制链接]

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:02:10 | 显示全部楼层 |阅读模式
我有一个lisp文件,按升序插入批号。我的问题是,这个lisp不适用于子批次的编号,因为对于子批次,批次编号将按字母顺序排列。例如,一个母地块的批号为234,分为两个地块。第一个批号为“234-A”,第二个批号为“234-B”。有人能帮我吗?只是lisp编程的新手。提前感谢!
批号。lsp
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:06:20 | 显示全部楼层
您可以在while(setq p1(getpoint“\nText location:”)中完成一些事情。如果按enter键,则会退出。
 
不知道为什么这样做
  1. (command "text"
  2.               "J"
  3.               "MC"
  4.               (setq p p1)
  5.               (setq p "")
  6.               (setq p "")
  7.               (setq p n1)
  8.            )
  9. (command "text" "J" "MC" p1 "" "" n) ; my version
  10. ;sublot do a press <CR> for next lot any key for a [b]sub lot[/b] this would drop to A and keep going till you do a sub lot again then reset to A.
  11. ; maybe do defuns bit easier to do if's

 
需要考虑一下其他人可能会立即发布答案。
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:11:34 | 显示全部楼层
谢谢你的帮助。我试试看。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:12:39 | 显示全部楼层
  1. (defun c:lotn ( / _text [color="blue"]_NextString [/color]mode opt str p1 p2 n1 str  a)
  2. ;;;                pBe 16 Mar2015                ;;;
  3. (defun _text (str pt)
  4. (entmakex (list (cons 0 "TEXT")
  5.           (cons 10 pt)
  6.           (cons 11 pt)
  7.           (cons 40 (getvar 'textsize))
  8.           '(72 . 4)
  9.           '(73 . 2)
  10.           (cons 1 (strcat "LOT " str))
  11.     )
  12. )
  13. )
  14. [color="blue"](defun _NextString (n m)
  15. (strcat n
  16.   (if m
  17.     (strcat "-" (setq a (chr (1+ (ascii a)))))
  18.     ""
  19.   )
  20. )
  21. )[/color]
  22. [color="blue"](setq mode '(( "S" "Sub-lot mode")( "L" "Lot mode")))
  23.         (initget "L S")
  24. (setq opt (cond ( (getkword "\nChoose [Lot/Sub lot] <Lot>: ") ) ( "L" )))
  25.         (setq mode (if (setq l (eq opt "L")) mode (reverse mode)))
  26.         (princ (strcat "\n<<< " (cadr (assoc opt Mode)) " >>>"))[/color]
  27. (setq a          "@"
  28.       n1  (getint "\nEnter starting lot number: ")
  29.       str (itoa n1))
  30.   (setq  p1 (getpoint "\nText location: "))
  31. (_text [color="blue"](_NextString (itoa n1) (if l nil T))[/color] p1)
  32.   (while
  33.      (progn
  34.        [color="blue"](princ (strcat "\n<<< " (cadadr mode) " >>>"))[/color]
  35.        (initget [color="blue"](caar mode)[/color])
  36.        (setq
  37.          p2 (getpoint
  38.               p1
  39.               (strcat
  40.                 "\nPick next location/Press ""
  41.                 [color="blue"](caar mode)[/color]
  42.                  "" for " [color="blue"](cadar mode) [/color]" : "
  43.               )
  44.             )
  45.        )
  46.      )
  47.       (cond
  48.         ((listp p2)
  49.          (if (eq [color="blue"](caar mode)[/color] "L")
  50.              (_text (setq str [color="blue"](_NextString (itoa n1) T)[/color]) p2)
  51.              (_text[color="blue"] (_NextString (itoa (setq n1 (1+ n1)))[/color] nil) p2)
  52.            )
  53.            (setq p1 p2)
  54.          )
  55.          ((eq p2 "S")
  56.            (setq str [color="blue"](_NextString (itoa n1) T)[/color])
  57.           [color="blue"] (setq mode (reverse mode))[/color]
  58.          )
  59.          ((eq p2 [color="blue"]"L"[/color])
  60.            (setq [color="blue"]mode (reverse mode)[/color] a  "@"))
  61.          )
  62.         )
  63. (princ)
  64. )

 
“L”表示批次模式
“S”表示子批次模式
 
  1. command: Lotn
  2. Choose [Lot/Sub lot] <Lot>: [color="red"][b]S[/b][/color]
  3. <<< Sub-lot mode >>>
  4. Enter starting lot number: [b][color="red"]12[/color][/b]
  5. Text location:
  6. <<< Sub-lot mode >>>
  7. Pick next location/Press "L" for Lot mode :
  8. <<< Sub-lot mode >>>
  9. Pick next location/Press "L" for Lot mode :  [b][color="red"]L[/color][/b]
  10. <<< Lot mode >>>
  11. Pick next location/Press "S" for Sub-lot mode :
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:18:04 | 显示全部楼层
pBe公司
 
系统变量cmdecho在例程中有何用途?
如果用户选择S并在继续拾取点的同时超过Y字符,他们将面对面地面对奇怪的符号,而不是字母字符。
 
顺便说一句,好主意。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:20:57 | 显示全部楼层
 
  1. (setq scmde (getvar "cmdecho"))

从OP上看,也不知道为什么
 
 
我也想过。我当时指望的是,子批次不会超过字母表中的26个字母。但是我们可以修改代码,以便在将来考虑这种情况。好的,顺便说一句。
 
 
谢谢tharwat
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:22:50 | 显示全部楼层
简单但不错的想法pBE
我的grread 0.02美元
老鼠留给妈妈
右键单击可保存一个步骤
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:25:36 | 显示全部楼层
 
谢谢你的邀请
 
 
我也想过。为了保持运行OSNAP和易于理解的编码以利于OP,这就是为什么我保持它简单的原因。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:29:30 | 显示全部楼层
对不起,字母表中有52个字符,但小写会让人困惑。
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:33:27 | 显示全部楼层
非常感谢pBe和你们所有人。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 00:41 , Processed in 0.477859 second(s), 72 queries .

© 2020-2025 乐筑天下

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