乐筑天下

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

[编程交流] 使用choosen在X轴上拉伸

[复制链接]

56

主题

256

帖子

230

银币

后起之秀

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

铜币
253
发表于 2022-7-5 16:43:43 | 显示全部楼层 |阅读模式
开始了一个新的线程,因为它不在论坛的这一部分。在此处找到旧线程:http://www.cadtutor.net/forum/showthread.php?92554-在命令中添加命令行
 
 
 
我现在尝试在这里合并Lee Mac的脚本,该脚本允许选择对象,然后像ACADs一样拉伸它们,仅在X轴上正常。(如果我修复了这个问题,我会在以后添加Y功能)
 
我已经注释掉了需要调整的部分。用我有限的LISP知识,我已经尽了最大努力。我的目标是将snapbase设置为pt1变量,并将其设置为gridx变量的所需值,然后以这些增量拉伸。
 
如果选择LockXOnly,则拉伸仅在X轴上发生。
 
任何帮助都将不胜感激。
 
 
 
以下是我目前掌握的信息:
  1. (defun c:bsx (/ *error* vl ov ss pt1 pt2 gmode gridx ansx)
  2. (defun *error* (msg)
  3.         (if ov (mapcar 'setvar vl ov))
  4.         (if (not
  5.                 (wcmatch
  6.                         (strcase msg) "*CANCEL*,*EXIT*"))
  7.         (princ (strcat "\n<< Error: " msg " >>")))
  8.         (princ))
  9. #| getvar and setq for below |#
  10. (setq vl '("CMDECHO" "OSMODE" "GRIDSTYLE" "GRIDMODE" "SNAPBASE" "SNAPTYPE")
  11.         ov (mapcar 'getvar vl))
  12. (mapcar 'setvar vl '(0 255))
  13. (initget "215mm 225mm 235mm Custom LockXOnly")
  14. (setq ansx (getkword "\nX Brick Size ? [215mm/225mm/235mm/Custom/LockXOnly] <225mm>: "))
  15. (cond
  16.         (
  17.                 (= "215mm" ansx)
  18.                 (setq gridx 215)
  19.                 )
  20.         (
  21.                 (= "225mm" ansx)
  22.                 (setq gridx 225)
  23.                 )
  24.         (
  25.                 (= "235mm" ansx)
  26.                 (setq gridx 235)
  27.                 )
  28.         (
  29.                 (= "Custom" ansx)
  30.                 (setq gridx (getint))
  31.                 )
  32.         (
  33.                 (= "LockXOnly" ansx)
  34.                 ; null, don't set any val for gridx
  35.                 )
  36.         )
  37. (if
  38.         (setq ss (ssget))
  39.         (if
  40.                 (and
  41.                         (setq pt1 (getpoint "\nSelect Base Point: "))
  42.                         (setq pt2 (getpoint pt1 "\nSelect Second Point: "))
  43.                         )
  44.                 (progn
  45.                         #| i want these lines below to run before |#
  46.                         #| the command for stretching. To set snapbase and snap to dims of brick course |#
  47.                         #| stretch amount. If you have a better method for this then all the better |#
  48.                         (command "SNAPBASE" pt1)
  49.                         (command "SNAP" gridx)
  50.                         (setvar "OSMODE" 0)
  51.                         (setvar "SNAPTYPE" 0)
  52.                         #| command stretch, need this to happen after setting gridsnap etc. |#
  53.                         (cond
  54.                                 (
  55.                                         (/= "LockXOnly" ansx) ; if distance is set
  56.                                         (princ "\nLocked axis dim ON.")
  57.                                         (command "_.STRETCH" ss "" pt1 ".x" pt2 0)
  58.                                         (princ (strcat "\nStretched on X: " (rtos(- (car pt2) (car pt1)))))
  59.                                         )
  60.                                 (
  61.                                         (= "LockXOnly" ansx) ; if no dis is set
  62.                                         (command "_.STRETCH" ss "" pt1 ".x" pt2 0)
  63.                                         (princ (strcat "\nStretched on X: " (rtos(- (car pt2) (car pt1)))))
  64.                                         (princ "\nLocked axis dim OFF.")
  65.                                         )
  66.                                 )
  67.                         )
  68.                 )
  69.         (princ "\n<< Nothing Selected >>")
  70.         )
  71. (mapcar 'setvar vl ov)
  72. (princ))

174347n7c7i7lwzf7119wo.jpg
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:50:03 | 显示全部楼层
snapbase变量需要2d点值。
不确定这是否是你想要的:
  1. (defun C:bsx ( / SetSvars *error* ansx SS snapvars pt1 pt2 grid st acDoc svars Y )
  2. (defun SetSvars ( L )
  3.    (mapcar '(lambda (x / g) (if (cadr x) (progn (setq g (list (car x) (getvar (car x)))) (apply 'setvar x) g))) L)
  4. ); defun SetSvars
  5. (defun *error* (msg)
  6.    (and snapvars (mapcar '(lambda (x) (apply 'setvar x)) snapvars))
  7.    (and svars (mapcar '(lambda (x) (apply 'setvar x)) svars))
  8.    (and acDoc (vla-EndUndoMark acDoc))
  9.    (and msg (not (wcmatch (strcase msg) "*CANCEL*,*EXIT*")) (princ (strcat "\n<< Error: " msg " >>")))
  10.    (princ)
  11. ); defun *error*
  12. (setq acDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  13. (or (vla-EndUndoMark acDoc) (vla-StartUndoMark acDoc))
  14. (cond
  15.    (
  16.      (not
  17.        (and
  18.          (not (initget "215mm 225mm 235mm Custom LockXOnly"))
  19.          (setq ansx (cond ((getkword "\nX/Y Brick Size ? [215mm/225mm/235mm/Custom/LockXOnly] <225mm>: ")) ("225mm")))
  20.          (progn
  21.            (cond
  22.              ( (wcmatch ansx "*mm") (setq grid (read (vl-string-right-trim "mm" ansx))) )
  23.              ( (wcmatch ansx "C*") (initget (+ 1 2)) (setq grid (getint "\nSpecify the brick size value:")) )
  24.              ( (wcmatch ansx "L*") (setq st T) )
  25.            ); cond
  26.            T
  27.          ); progn
  28.        ); and
  29.      ); not
  30.    )
  31.    ( (not (and (princ "\nSelect objects to stretch: ") (setq SS (ssget "_:L")) ))
  32.      (princ "\n<< Nothing Selected >>")
  33.    )
  34.    ( (not
  35.      (and
  36.        (setq pt1 (getpoint "\nSelect Base Point <exit>: "))
  37.        (setq snapvars
  38.          (SetSvars
  39.            (list
  40.            (list 'snapbase (if pt1 (list (car pt1) (cadr pt1))))
  41.            (list 'snapmode 1) (list 'snaptype 0)  (list 'gridmode 1)
  42.            (list 'osmode 0)
  43.            (if st (list 'snapstyl 1) (list 'orthomode 1))
  44.            (list 'snapunit (if grid (list grid grid) (getvar 'snapunit))) (list 'gridstyle 1)
  45.          ); list
  46.        ); SetSvars
  47.        ); setq snapvars
  48.        (setq pt2 (getpoint pt1 "\nSelect Second Point <exit>: "))
  49.        ; (mapcar '(lambda (x) (set x (trans (vl-symbol-value x) 1 0))) '(pt1 pt2))
  50.      )
  51.    )
  52.    (princ "\n<< Points were not specified >>")
  53.    )
  54.    (
  55.      (progn
  56.        (setq svars (SetSvars (list (list 'cmdecho 0)))) ; keep in case of further modifications
  57.        (if (wcmatch ansx "~L*") (princ "\nLocked axis dim ON.") (princ "\nLocked axis dim OFF.") )
  58.        (and
  59.          (initcommandversion)
  60.          (if (setq Y (apply '< (reverse (cdr (reverse (mapcar 'abs (mapcar '- pt1 pt2)))))))
  61.            (not (command "_.STRETCH" SS "" pt1 ".y" pt2 0.))
  62.            (not (command "_.STRETCH" SS "" pt1 ".x" pt2 0.))
  63.          )
  64.          (princ (strcat "\nStretched on " (if Y "Y" "X") " by " (rtos (apply 'max (mapcar 'abs (mapcar '- pt1 pt2)))) " units."))
  65.        )
  66.      ); progn
  67.    )
  68. ); cond
  69. (*error* nil)
  70. (princ)
  71. ); defun
  72. (vl-load-com) (princ)
回复

使用道具 举报

56

主题

256

帖子

230

银币

后起之秀

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

铜币
253
发表于 2022-7-5 16:52:29 | 显示全部楼层
嗨,Grrr!
 
这正是我想要的。我非常感谢你写这封信。
 
出于某种原因,当我单击pt2时,它不会捕捉到网格。
 
我试着放在下面,但运气不好。
  1. (setvar 'snapmode 1)

 
其他一些事情:
[列表]
  • 在选择pt2时,OSNAP似乎处于启用状态。能不能就为了这个而停下来,就为了选pt1而停下来。
  • 拾取pt2时,网格点不与间距(215、225、235或其他)对齐。
  • 如果运行命令,然后撤消。我的快照丢了?我在别处搜索过这个,但什么也没找到。
    [/列表]
  • 回复

    使用道具 举报

    66

    主题

    1552

    帖子

    1514

    银币

    后起之秀

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

    铜币
    325
    发表于 2022-7-5 16:54:03 | 显示全部楼层
    很乐意提供帮助,我对STRETCH命令和捕捉/网格变量都没有太多经验。
     
    我不确定原因是什么,如上所述,我对这些变量没有太多经验。
    也许其他人可以帮忙。
    在我看来,“LockXOnly”模式不能正常工作,但我认为最好删除它?
     
    修改了代码,现在将关闭。
     
    修复了它,我对这段代码做了太多修改,最后没有执行全面检查。
     
    编辑:你应该重新测试它并指出剩下的问题,希望其他人会帮助你。
    祝你好运
    回复

    使用道具 举报

    56

    主题

    256

    帖子

    230

    银币

    后起之秀

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

    铜币
    253
    发表于 2022-7-5 16:58:41 | 显示全部楼层
    太好了,谢谢。
     
    该var为:
    1. (setvar "gridunit" '(225 225))

     
    我不确定我是否会把它加入到代码中,因为我以前在2d点上遇到过麻烦。
     
    已编辑:
     
    只是省略了它,因为无论如何都不需要显示它:
    1. (list 'gridmode 1)

     
    这是对LockXOnly>>LockInXYOnly的一个小小的修改和一个小小的拼写错误
     
    还将其更改为按应有的半砖增量工作。
    102.5mm:CO-
    112.5mm:CO
    122.5mm:CO+
     
    CO表示协调大小。请参见此处。
     
    并在选择LockInXYOnly时打开OSNAP,否则关闭:
    1. (if (wcmatch ansx "~L*") (list 'osmode 0) (list 'osmode 1) )

     
    1. (defun C:bs ( / SetSvars *error* ansx SS snapvars pt1 pt2 grid st acDoc svars Y )
    2. (defun SetSvars ( L )
    3.         (mapcar '(lambda (x / g) (if (cadr x) (progn (setq g (list (car x) (getvar (car x)))) (apply 'setvar x) g))) L)
    4. ); defun SetSvars
    5. (defun *error* (msg)
    6.         (and snapvars (mapcar '(lambda (x) (apply 'setvar x)) snapvars))
    7.         (and svars (mapcar '(lambda (x) (apply 'setvar x)) svars))
    8.         (and acDoc (vla-EndUndoMark acDoc))
    9.         (and msg (not (wcmatch (strcase msg) "*CANCEL*,*EXIT*")) (princ (strcat "\n<< Error: " msg " >>")))
    10.         (princ)
    11. ); defun *error*
    12. (setq acDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
    13. (or (vla-EndUndoMark acDoc) (vla-StartUndoMark acDoc))
    14. (cond
    15.         (
    16.                 (not
    17.                         (and
    18.                                 (not (initget "102.5mm:CO- 112.5mm:CO 122.5mm:CO+ Custom LockInXYOnly"))
    19.                                 (setq ansx (cond ((getkword "\nX/Y Brick Size ? [102.5mm:CO-/112.5mm:CO/122.5mm:CO+/Custom/LockInXYOnly] <112.5mm:CO>: ")) ("112.5mm:CO")))
    20.                                 (progn
    21.                                         (cond
    22.                                                 ( (wcmatch ansx "*mm:CO-") (setq grid (read (vl-string-right-trim "mm:CO-" ansx))) )
    23.                                                 ( (wcmatch ansx "*mm:CO") (setq grid (read (vl-string-right-trim "mm:CO" ansx))) )
    24.                                                 ( (wcmatch ansx "*mm:CO+") (setq grid (read (vl-string-right-trim "mm:CO+" ansx))) )
    25.                                                 ( (wcmatch ansx "C*") (initget (+ 1 2)) (setq grid (getint "\nSpecify the brick size value:")) )
    26.                                                 ( (wcmatch ansx "L*") (setq st T) )
    27.            ); cond
    28.                                         T
    29.          ); progn
    30.        ); and
    31.      ); not
    32.                 )
    33.         ( (not (and (princ "\nSelect objects to stretch: ") (setq SS (ssget "_:L")) ))
    34.                 (princ "\n<< Nothing Selected >>")
    35.                 )
    36.         ( (not
    37.                 (and
    38.                         (setq pt1 (getpoint "\nSelect Base Point <exit>: "))
    39.                         (setq snapvars
    40.                                 (SetSvars
    41.                                         (list
    42.                                                 (list 'snapbase (if pt1 (list (car pt1) (cadr pt1))))
    43.                                                 (list 'snapmode 1) (list 'snaptype 0)  ;(list 'gridmode 1)
    44.                                                 (if (wcmatch ansx "~L*") (list 'osmode 0) (list 'osmode 1) )
    45.                                                 (if st (list 'snapstyl 1) (list 'orthomode 1))
    46.                                                 (list 'snapunit (if grid (list grid grid) (getvar 'snapunit))) (list 'gridstyle 1)
    47.          ); list
    48.        ); SetSvars
    49.        ); setq snapvars
    50.                         (setq pt2 (getpoint pt1 "\nSelect Second Point <exit>: "))
    51.        ; (mapcar '(lambda (x) (set x (trans (vl-symbol-value x) 1 0))) '(pt1 pt2))
    52.        )
    53.                 )
    54.         (princ "\n<< Points were not specified >>")
    55.         )
    56.         (
    57.                 (progn
    58.        (setq svars (SetSvars (list (list 'cmdecho 0)))) ; keep in case of further modifications
    59.        (if (wcmatch ansx "~L*") (princ "\nLocked axis dim ON.") (princ "\nLocked axis dim OFF.") )
    60.        (and
    61.                (initcommandversion)
    62.                (if (setq Y (apply '< (reverse (cdr (reverse (mapcar 'abs (mapcar '- pt1 pt2)))))))
    63.                        (not (command "_.STRETCH" SS "" pt1 ".y" pt2 0.))
    64.                        (not (command "_.STRETCH" SS "" pt1 ".x" pt2 0.))
    65.                        )
    66.                (princ (strcat "\nStretched on " (if Y "Y" "X") " by " (rtos (apply 'max (mapcar 'abs (mapcar '- pt1 pt2)))) " units."))
    67.                )
    68.      ); progn
    69.                 )
    70. ); cond
    71. (*error* nil)
    72. (princ)
    73. ); defun
    74. (vl-load-com) (princ)
    回复

    使用道具 举报

    56

    主题

    256

    帖子

    230

    银币

    后起之秀

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

    铜币
    253
    发表于 2022-7-5 17:01:07 | 显示全部楼层
    很抱歉
     
    我说得太快了。我太激动了,因为它真的起作用了,我错过了最重要的事情。
     
    协调大小是拉伸工作方式的关键。这仅适用于102.5mm、112.5和122.5,而不适用于其他选择。
     
    从这里的表格中可以看出:http://www.ibstock.com/wp-content/uploads/2015/08/Ibstock-TIS-A2-BRICKWORK-DIMENSION-TABLES-Standard-brick-sizes.pdf
     
    有CO-,CO和CO+
     
    例如
    1. CO+                        CO                        CO-
    2. 122.5                        112.5                        102.5
    3. 235                        225                        215
    4. 460                        450                        440
    5. ....                        ...                        ...
    6. 910                        900                        890
    7. 1022.5                        1012.5                        1002.5

     
    CO总是比CO少10
    CO+总是比CO多10。
    回复

    使用道具 举报

    66

    主题

    1552

    帖子

    1514

    银币

    后起之秀

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

    铜币
    325
    发表于 2022-7-5 17:03:45 | 显示全部楼层
     
    因此,要将该变量设置为网格模块102.5/112.5/122.5等,无论网格代码变量分配给什么,都可以使用:
    1. (setq snapvars
    2. (SetSvars
    3.    (list
    4.      (list 'snapbase (if pt1 (list (car pt1) (cadr pt1))))
    5.      (list 'snapmode 1) (list 'snaptype 0)  ;(list 'gridmode 1)
    6.      (if (wcmatch ansx "~L*") (list 'osmode 0) (list 'osmode 1) )
    7.      (if st (list 'snapstyl 1) (list 'orthomode 1))
    8.      (list 'snapunit (if grid (list grid grid) (getvar 'snapunit))) (list 'gridstyle 1)
    9.      [color=red](list 'gridunit (if grid (list grid grid) (getvar 'gridunit)))[/color]
    10.    ); list
    11. ); SetSvars
    12. ); setq snapvars

     
     
    同时更改此选项,以提示输入非零正值,因为当2d点参数具有负值时,某些系统变量会崩溃:
    1. ( (wcmatch ansx "C*") (initget (+ 1 2 [color=red]4[/color])) (setq grid (getint "\nSpecify the brick size value:")) )

     
     
     
    我不知道你这是什么意思。你想在某个地方改变代码的行为吗?
    回复

    使用道具 举报

    56

    主题

    256

    帖子

    230

    银币

    后起之秀

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

    铜币
    253
    发表于 2022-7-5 17:07:21 | 显示全部楼层
     
    非常感谢您的修复。
     
    是的,很不幸。
     
    砖块课程分为C0、CO和CO+
     
    不幸的是,如果没有这一更改,该命令将毫无用处。
     
     
    来解释。
     
    共同课程是。
    102.5>215>327.5>440等等。。。
     
    CO当然是。
    112.5>225>337.5>450等等。。。
     
    CO+当然是。
    122.5>235>347.5>460等等。。。
     
    正如你所看到的那样,CO将其原始值102.5添加到数组的每个元素中,并且每次在其上额外添加10mm。
     
    CO是直接向前的,因为它只是为数组的每个元素添加其原始值。
     
    CO+与CO-相似,但它只是在不同的初始值122.5mm处开始。
     
     
    另外,我不知道在LISP中调用什么元素或数组,因为我使用的是maxscript的术语。我知道如何在Maxscript中向数组的每个元素添加数量。
     
    在maxscript中如何实现这样的操作。
    1. array = #()
    2. for i = 1 to 100 do
    3. (
    4.    local val = 102.5
    5.    append array (val += i += 10) -- add val to last element and add 10
    6. )
    回复

    使用道具 举报

    66

    主题

    1552

    帖子

    1514

    银币

    后起之秀

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

    铜币
    325
    发表于 2022-7-5 17:10:25 | 显示全部楼层
    LISP(列表处理)的功能是列表,尤其是关联列表。
    看起来你有一些编程经验,
    因此,您可能知道编写完整代码的任务之一是了解该语言的可能性,并写下要执行的步骤。
    我会使用grread来处理整个事情,即:
     
    首先是几个子功能:
    1. [b][color=BLACK]([/color][/b]defun GetModeCO [b][color=FUCHSIA]([/color][/b] / Stop grr mode [b][color=FUCHSIA])[/color][/b]
    2. [b][color=FUCHSIA]([/color][/b]princ [color=#2f4f4f]"\nSpecify mode [CO/CO+/CO-], [RMB] to exit <CO>: "[/color][b][color=FUCHSIA])[/color][/b]
    3. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not Stop[b][color=NAVY])[/color][/b]
    4.    [b][color=NAVY]([/color][/b]setq grr [b][color=MAROON]([/color][/b]grread[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    5.    [b][color=NAVY]([/color][/b]cond
    6.      [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= 2 [b][color=BLUE]([/color][/b]car grr[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
    7.        [b][color=GREEN]([/color][/b]and
    8.          [b][color=BLUE]([/color][/b]setq mode [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc [b][color=TEAL]([/color][/b]cadr grr[b][color=TEAL])[/color][/b] '[b][color=TEAL]([/color][/b][b][color=OLIVE]([/color][/b]13 . [color=#2f4f4f]"CO"[/color][b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]43 . [color=#2f4f4f]"CO+"[/color][b][color=OLIVE])[/color][/b] [b][color=OLIVE]([/color][/b]45 . [color=#2f4f4f]"CO-"[/color][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
    9.          [b][color=BLUE]([/color][/b]princ [b][color=RED]([/color][/b]strcat [color=#2f4f4f]"\nMode chosen: "[/color] mode [color=#2f4f4f]"\n"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
    10.          [b][color=BLUE]([/color][/b]setq Stop T[b][color=BLUE])[/color][/b]
    11.        [b][color=GREEN])[/color][/b][color=#8b4513]; and[/color]
    12.      [b][color=MAROON])[/color][/b]
    13.      [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= 25 [b][color=BLUE]([/color][/b]car grr[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq Stop T[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b]
    14.    [b][color=NAVY])[/color][/b][color=#8b4513]; cond[/color]
    15. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; while[/color]
    16. mode
    17. [b][color=BLACK])[/color][/b][color=#8b4513]; defun GetModeCO[/color]
    18. [b][color=BLACK]([/color][/b]defun GetIncVal [b][color=FUCHSIA]([/color][/b] s i / n msg grr Stop pm [b][color=FUCHSIA])[/color][/b]
    19. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]or [b][color=GREEN]([/color][/b]numberp s[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq s 0.[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]numberp i[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    20.    [b][color=NAVY]([/color][/b]progn
    21.      [b][color=MAROON]([/color][/b]setq n s[b][color=MAROON])[/color][/b]
    22.      [b][color=MAROON]([/color][/b]princ [b][color=GREEN]([/color][/b]setq msg [b][color=BLUE]([/color][/b]strcat [color=#2f4f4f]"\nStretching value: "[/color][color=#2f4f4f]" [b][color=RED]([/color][/b]rtos [b][color=PURPLE]([/color][/b]if n n s[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] "[/color]\[color=#2f4f4f]", use [+/-] to increase/decrease <exit>: "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
    23.      [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]not Stop[b][color=GREEN])[/color][/b]
    24.        [b][color=GREEN]([/color][/b]setq grr [b][color=BLUE]([/color][/b]grread[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
    25.        [b][color=GREEN]([/color][/b]cond
    26.          [b][color=BLUE]([/color][/b] [b][color=RED]([/color][/b]= 2 [b][color=PURPLE]([/color][/b]car grr[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
    27.            [b][color=RED]([/color][/b]and [b][color=PURPLE]([/color][/b]= 13 [b][color=TEAL]([/color][/b]cadr grr[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq Stop T[b][color=PURPLE])[/color][/b] [b][color=RED])[/color][/b]
    28.            [b][color=RED]([/color][/b]and
    29.              [b][color=PURPLE]([/color][/b]setq pm [b][color=TEAL]([/color][/b]cdr [b][color=OLIVE]([/color][/b]assoc [b][color=GRAY]([/color][/b]cadr grr[b][color=GRAY])[/color][/b] '[b][color=GRAY]([/color][/b][b][color=AQUA]([/color][/b]43 . +[b][color=AQUA])[/color][/b] [b][color=AQUA]([/color][/b]45 . -[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
    30.              [b][color=PURPLE]([/color][/b]setq n [b][color=TEAL]([/color][/b]apply pm [b][color=OLIVE]([/color][/b]list n i[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
    31.              [b][color=PURPLE]([/color][/b]princ [b][color=TEAL]([/color][/b]setq msg [b][color=OLIVE]([/color][/b]strcat [color=#2f4f4f]"\nStretching value: "[/color][color=#2f4f4f]" [b][color=GRAY]([/color][/b]rtos [b][color=AQUA]([/color][/b]if n n s[b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b] "[/color]\[color=#2f4f4f]", use [+/-] to increase/decrease <exit>: "[/color][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
    32.            [b][color=RED])[/color][/b][color=#8b4513]; and[/color]
    33.          [b][color=BLUE])[/color][/b]
    34.          [b][color=BLUE]([/color][/b] [b][color=RED]([/color][/b]= 25 [b][color=PURPLE]([/color][/b]car grr[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]setq Stop T[b][color=RED])[/color][/b] [b][color=BLUE])[/color][/b]
    35.        [b][color=GREEN])[/color][/b][color=#8b4513]; cond[/color]
    36.      [b][color=MAROON])[/color][/b][color=#8b4513]; while[/color]
    37.      n
    38.    [b][color=NAVY])[/color][/b][color=#8b4513]; progn[/color]
    39. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if [/color]
    40. [b][color=BLACK])[/color][/b][color=#8b4513]; defun GetIncVal[/color]

     
    然后是测试功能:
    1. [b][color=BLACK]([/color][/b]if
    2. [b][color=FUCHSIA]([/color][/b]and
    3.    [color=#8b4513];| CO- course is: 102.5 > 215 > 327.5 > 440 and so on... [/color]
    4.    CO course is: 112.5 > 225 > 337.5 > 450 and so on...
    5.    CO+ course is: 122.5 > 235 > 347.5 > 460 and so on... |[color=#8b4513];[/color]
    6.    [b][color=NAVY]([/color][/b]setq m [b][color=MAROON]([/color][/b]cadr [b][color=GREEN]([/color][/b]assoc [b][color=BLUE]([/color][/b]GetModeCO[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]list '[b][color=RED]([/color][/b][color=#2f4f4f]"CO"[/color] 102.5[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b][color=#2f4f4f]"CO+"[/color] 112.5[b][color=RED])[/color][/b] '[b][color=RED]([/color][/b][color=#2f4f4f]"CO-"[/color] 122.5[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    7.    [b][color=NAVY]([/color][/b]setq n [b][color=MAROON]([/color][/b]GetIncVal m 112.5[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
    8. [b][color=FUCHSIA])[/color][/b]
    9. [b][color=FUCHSIA]([/color][/b]alert [b][color=NAVY]([/color][/b]strcat [color=#2f4f4f]"\nStretch value: "[/color] [b][color=MAROON]([/color][/b]rtos n[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
    10. [b][color=BLACK])[/color][/b]

     
    收集用户的输入相对容易,但我遇到的主要问题是实际的拉伸命令。
    我做了很多尝试让它工作,但它总是不能“正常运行”。
    也许这就是为什么你没有收到其他人的回复。
    回复

    使用道具 举报

    18

    主题

    1529

    帖子

    973

    银币

    中流砥柱

    Rank: 25

    铜币
    649
    发表于 2022-7-5 17:15:15 | 显示全部楼层
    为_Stretch命令选择实体时,必须使用CW或CP。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-13 13:07 , Processed in 0.486741 second(s), 75 queries .

    © 2020-2025 乐筑天下

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