乐筑天下

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

[编程交流] 计算器有点问题

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:05:27 | 显示全部楼层
老实说,我相信他们真的应该教会我们从小就考虑弧度。
 
角度测量是一个任意系统,仅在360具有很多因素时才真正使用,因此可以在许多情况下使用,而无需十进制计算。就像梯度角度测量一样,其中100grads是一个直角-一个任意的概念,为便于使用而引入*。
 
但是,当涉及到弧长和段面积计算时,使用弧度作为一种测量形式使生活变得更加简单,更不用说大多数几何证明仅适用于弧度θ。
 
无论如何,这只是我对它的看法-只是从工作时必须完全使用弧度系统的经验来看-以及如何很容易滑回到以度为单位的思考,因为它深深地植根于我们对角度的理解中。
 
 
*我可以补充一点,这些形式的测量确实有其历史,并且不仅仅是为了数字中的因子数量而引入的,但这只是使用该系统的另一个动机。
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 15:11:00 | 显示全部楼层
在我看来:以上信息对我来说太多了。我刚刚学会了如何正确计算几点。关于弧度的事情我无法永远避免,所以我想稍后会发生。
 
一个快速问题“关于主题”。。。想象一下,我想。pline从pt3到pt4等。pline命令结束时,我想画一个圆,比如在pt3上画一个直径为dia1的圆。
首先,我会在例程的某个地方提示输入直径,有点像这样:
 
  1. (setq dia1 (getint "\nDiameter of cicle"))

 
当命令pline结束时,我想画一个圆:
 
  1. (command "circle" pt3 "d" dia1)

 
所以让我们把它融化在一起:
 
  1. (defun c:box1  (/ oldos len leng dist pt1 pt2 pt3 pt4 pt5 pt6)
  2. (setq oldos (getvar "OSMODE")  ; Collect Old OSMODE setting
  3. ; Define Functions and Localise Variables
  4.        len  (getdist "\nLength1:  ")
  5.       
  6.        leng (getdist "\nLength2:  ")
  7.        dia1 (getint "\nDiameter of cicle:  ")
  8.        ; I'd be more inclined to use "getdist"
  9.        ; so that the user can pick the distance.
  10.       
  11.        dist (getdist "\nDistance:  ")
  12.       
  13.        pt1  (getpoint "\nInsertion:  ")
  14.       
  15.        pt2  (polar pt1 (* pi 0.5) dist)
  16.       
  17. ;;;                     + pt2
  18. ;;;                     |
  19. ;;;                     |
  20. ;;;                     + pt1
  21.       
  22.        pt3  (polar pt2 pi (* len 0.5))
  23.       
  24. ;;;            +--------+ pt2
  25. ;;;           pt3       |
  26. ;;;                     |
  27. ;;;                     + pt1
  28.         
  29.       
  30.        pt4  (polar pt3 (* pi 0.5) leng)
  31.         
  32. ;;;           pt4
  33. ;;;            +
  34. ;;;            |
  35. ;;;            |
  36. ;;;            +--------+ pt2
  37. ;;;           pt3       |
  38. ;;;                     |
  39. ;;;                     + pt1
  40.         
  41.       
  42.        pt5  (polar pt4 0.0 len)
  43.       
  44. ;;;           pt4               pt5
  45. ;;;            +-----------------+
  46. ;;;            |
  47. ;;;            |       pt2
  48. ;;;            +--------+--------+
  49. ;;;           pt3       |       pt6
  50. ;;;                     |
  51. ;;;                     + pt1
  52.       
  53.       
  54.        pt6  (polar pt3 0.0 len)
  55.        )  ; End Setq
  56. (setvar "OSMODE" 0)  ; Turn off the OSnaps!
  57. (command "_.pline" pt3 pt4 pt5 pt6 pt3 "")
  58. ; Remember to use "_." prefix to make it
  59. ; compatible for all language versions.
  60. (command "_.rotate" (entlast) "" pt1 pause)
  61. (command "circle" pt3 "d" dia1)
  62. ; Use "entlast" to detect last entity
  63. ; added to database (hence created).
  64. (setvar "OSMODE" oldos)  ; Turn OSMODE back on
  65. (princ)
  66. ; Exit Cleanly
  67. ) ; End box1

 
然后它就不起作用了,因为entlast将最后一个实体添加到数据库中(因此创建)。因此,绘制圆,但不随长方体旋转。
 
顺便问一下,“因此而生”是什么意思。?
 
恐怕我能坚持很久了……:下一件事。
当查看此命令时,结果是绘制的实体(或者我必须说是因此创建的实体)。我的意思是,它是由线条、普林斯等组成的。
结果是否可能相同(显示),但它是一个块?因为如果它是一个块,它可能有属性。属性可以用给定的值填充。
 
例如,框1:100x100 dist50 circle 10等等,生成所需的框,属性为100-100-10(我想要的任何内容)。
 
或者是“怪人:”这样想?
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 15:13:58 | 显示全部楼层
请在这之前阅读我的帖子,它包含375个问题:-)
---
“与此同时”
---
我不得不修改它,使盒子旋转得更自然(至少对我来说是这样),方向是十字线移动的方向。对于那些得到它的人来说,这并不困难,对我来说,这是相当汗流浃背的,但我设法做到了:
 
  1. (defun c:[color="Red"]box99[/color]  (/ oldos len leng dist pt1 pt2 pt3 pt4 pt5 pt6)
  2. (setq oldos (getvar "OSMODE")  ; Collect Old OSMODE setting
  3. ; Define Functions and Localise Variables
  4.        len  (getdist "\nBox length:  ")
  5.       
  6.        leng (getdist "\nBox with:  ")
  7.        ; I'd be more inclined to use "getdist"
  8.        ; so that the user can pick the distance.
  9.       
  10.        dist (getdist "\nDistance between box and insertion point:  ")
  11.       
  12.        pt1  (getpoint "\nInsertion point:  ")
  13.       
  14.        [color="red"]pt2  (polar pt1 0.0 dist)
  15.       
  16. ;;;                     +-------+
  17. ;;;                        pt1        pt2
  18.       
  19.        pt3  (polar pt2 (* pi 0.5) (* len 0.5))
  20.       
  21. ;;;
  22. ;;;
  23. ;;;                                pt3
  24. ;;;                                +
  25. ;;;                                |
  26. ;;;                                |
  27. ;;;                     +-------+
  28. ;;;                        pt1        pt2
  29. ;;;
  30.         
  31.       
  32.        pt4  (polar pt3 0.0 leng)
  33.         
  34. ;;;
  35. ;;;
  36. ;;;                             pt3    pt4
  37. ;;;                                +---+
  38. ;;;                                |
  39. ;;;                                |
  40. ;;;                     +-------+
  41. ;;;                        pt1        pt2
  42. ;;;
  43.         
  44.       
  45.        pt5  (polar pt4 (* pi 1.5) len)
  46.       
  47. ;;;
  48. ;;;
  49. ;;;                             pt3    pt4
  50. ;;;                                +---+
  51. ;;;                                |   |
  52. ;;;                                |   |
  53. ;;;                     +-------+   |
  54. ;;;                        pt1        pt2 |
  55. ;;;                                    |
  56. ;;;                                    +
  57. ;;;                                   pt5
  58.       
  59.       pt6  (polar pt5 pi leng)
  60. ;;;
  61. ;;;
  62. ;;;                             pt3    pt4
  63. ;;;                                +---+
  64. ;;;                                |   |
  65. ;;;                                |   |
  66. ;;;                     +-------+   |
  67. ;;;                        pt1        pt2 |
  68. ;;;                                    |
  69. ;;;                                +---+
  70. ;;;                              pt6   pt5[/color]
  71.        )  ; End Setq
  72. (setvar "OSMODE" 0)  ; Turn off the OSnaps!
  73. [color="red"](setvar "ORTHOMODE" 1)  ; Turn on ORTHO[/color]
  74. (command "_.pline" pt3 pt4 pt5 pt6 pt3 pt5 "")
  75. ; Remember to use "_." prefix to make it
  76. ; compatible for all language versions.
  77. (command "_.rotate" (entlast) "" pt1 pause)
  78. ; Use "entlast" to detect last entity
  79. ; added to database (hence created).
  80. (setvar "OSMODE" oldos)  ; Turn OSMODE back on
  81. (princ)
  82. ; Exit Cleanly
  83. ) ; End box99

 
所以这个我更喜欢。接下来我要做的是,第二次调用box99时,它必须“提议”第一次给定的length/with/dist。
 
我想这与initget和关键字有关,阅读了相关内容但没有使用它。这是我未来的挑战之一。我害怕很多人中的一个。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:15:30 | 显示全部楼层
 
说实话,弧度并不难——它只是一种不同的角度思考方式。如果你愿意的话,可以用度来表示,然后把度除以180,再乘以π。
 
 
您是不想使用“getreal”还是专门将其限制为整数?
 
 
对不起,我应该用更简单的语言-
 
因此=因此=因此=如此
 
我的意思是,当创建一个对象时,它被添加到数据库中,entlast将使用数据库中的最后一个实体,因此使用创建的最后一个实体。
 
 
 
是的,您可以在图形中“entmake”您的块,使其具有属性-但这需要更多的编码。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:20:13 | 显示全部楼层
这应该可以帮助您:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:box1  [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* vlst ovar ss len leng dist pt1 pt2 pt3 pt4 pt5 pt6[b][color=RED])[/color][/b]
  2. [i][color=#990099]; Error Handler[/color][/i]
  3. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error*  [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
  4.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] ovar
  5.      [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vlst ovar[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [i][color=#990099]; If old variables are stored, reset them.[/color][/i]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]member[/color][/b] msg [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"Function cancelled"[/color][/b] [b][color=#ff00ff]"quit / exit abort"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7. [i][color=#990099]; If the msg isn't one in this list[/color][/i]
  8.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<!> Error: "[/color][/b] msg [b][color=#ff00ff]" <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [i][color=#990099]; then print it.[/color][/i]
  9.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] vlst [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=#ff00ff]"ORTHOMODE"[/color][/b][b][color=RED])[/color][/b]
  11.        ovar [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]getvar[/color][/b] vlst[b][color=RED])[/color][/b]
  12.        ss [b][color=RED]([/color][/b][b][color=BLUE]ssadd[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099]; Create an Empty Selection Set[/color][/i]
  13. [i][color=#990099]; Define Functions and Localise Variables[/color][/i]
  14.        len [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#ff00ff]"\nLength1:  "[/color][/b][b][color=RED])[/color][/b]
  15.        leng [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#ff00ff]"\nLength2:  "[/color][/b][b][color=RED])[/color][/b]
  16. [i][color=#990099]; I'd be more inclined to use "getdist"[/color][/i]
  17. [i][color=#990099]; so that the user can pick the distance.[/color][/i]
  18.        dist [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=#ff00ff]"\nDistance:  "[/color][/b][b][color=RED])[/color][/b]
  19.        dia [b][color=RED]([/color][/b][b][color=BLUE]getreal[/color][/b] [b][color=#ff00ff]"\nDiameter: "[/color][/b][b][color=RED])[/color][/b]
  20.        pt1 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nInsertion:  "[/color][/b][b][color=RED])[/color][/b]
  21.        pt2 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt1 [b][color=#009900]0[/color][/b] dist[b][color=RED])[/color][/b]
  22.       
  23. [i][color=#990099];;;                    pt1 +-----+[/color][/i]
  24. [i][color=#990099];;;                             pt2[/color][/i]
  25.        pt3 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt2 [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] len [b][color=#009999]0.5[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.       
  27. [i][color=#990099];;;                             pt3[/color][/i]
  28. [i][color=#990099];;;                              +[/color][/i]
  29. [i][color=#990099];;;                              |[/color][/i]
  30. [i][color=#990099];;;                              |[/color][/i]
  31. [i][color=#990099];;;                    pt1 +-----+[/color][/i]
  32. [i][color=#990099];;;                             pt2[/color][/i]
  33.        pt4 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt3 [b][color=#009900]0[/color][/b] leng[b][color=RED])[/color][/b]
  34. [i][color=#990099];;;                             pt3   pt4[/color][/i]
  35. [i][color=#990099];;;                              +-----+[/color][/i]
  36. [i][color=#990099];;;                              |[/color][/i]
  37. [i][color=#990099];;;                              |[/color][/i]
  38. [i][color=#990099];;;                    pt1 +-----+[/color][/i]
  39. [i][color=#990099];;;                             pt2[/color][/i]
  40.        pt5 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt4 [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009999]1.5[/color][/b][b][color=RED])[/color][/b] len[b][color=RED])[/color][/b]
  41.       
  42. [i][color=#990099];;;                             pt3   pt4[/color][/i]
  43. [i][color=#990099];;;                              +-----+[/color][/i]
  44. [i][color=#990099];;;                              |     |[/color][/i]
  45. [i][color=#990099];;;                              |     |[/color][/i]
  46. [i][color=#990099];;;                    pt1 +-----+     |[/color][/i]
  47. [i][color=#990099];;;                             pt2    |[/color][/i]
  48. [i][color=#990099];;;                                    |[/color][/i]
  49. [i][color=#990099];;;                                    +[/color][/i]
  50. [i][color=#990099];;;                                   pt5[/color][/i]
  51.        pt6 [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] pt5 [b][color=BLUE]pi[/color][/b] leng[b][color=RED])[/color][/b]
  52. [i][color=#990099];;;                             pt3   pt4[/color][/i]
  53. [i][color=#990099];;;                              +-----+[/color][/i]
  54. [i][color=#990099];;;                              |     |[/color][/i]
  55. [i][color=#990099];;;                              |     |[/color][/i]
  56. [i][color=#990099];;;                    pt1 +-----+     |[/color][/i]
  57. [i][color=#990099];;;                             pt2    |[/color][/i]
  58. [i][color=#990099];;;                                    |[/color][/i]
  59. [i][color=#990099];;;                              +-----+[/color][/i]
  60. [i][color=#990099];;;                             pt6   pt5[/color][/i]
  61.        [b][color=RED])[/color][/b] [i][color=#990099]; End Setq[/color][/i]
  62. [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vlst [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099]; Set the Variables to how we want them[/color][/i]
  63. [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.pline"[/color][/b] pt3 pt4 pt5 pt6 [b][color=#ff00ff]"_C"[/color][/b][b][color=RED])[/color][/b]  [i][color=#990099]; Make the Polyline[/color][/i]
  64. [i][color=#990099]; Remember to use "_." prefix to make it[/color][/i]
  65. [i][color=#990099]; compatible for all language versions.[/color][/i]
  66. [b][color=RED]([/color][/b][b][color=BLUE]ssadd[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entlast[/color][/b][b][color=RED])[/color][/b] ss[b][color=RED])[/color][/b]  [i][color=#990099]; Add the polyline to the selection set[/color][/i]
  67. [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.circle"[/color][/b] pt3 [b][color=#ff00ff]"_D"[/color][/b] dia[b][color=RED])[/color][/b]  [i][color=#990099]; Create the Circle[/color][/i]
  68. [b][color=RED]([/color][/b][b][color=BLUE]ssadd[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entlast[/color][/b][b][color=RED])[/color][/b] ss[b][color=RED])[/color][/b]  [i][color=#990099]; Add the Circle to the selection set[/color][/i]
  69. [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.rotate"[/color][/b] ss [b][color=#ff00ff]""[/color][/b] pt1 pause[b][color=RED])[/color][/b]
  70. [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vlst ovar[b][color=RED])[/color][/b] [i][color=#990099]; Reset System Variables[/color][/i]
  71. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
  72. [i][color=#990099]; Exit Cleanly[/color][/i]
  73. [b][color=RED])[/color][/b] [i][color=#990099]; End box1[/color][/i]
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 15:22:20 | 显示全部楼层
李,我只是想让你知道,当使用命令绘制等时,你可以在例程中放置一个osnap覆盖,以消除运行osnap的问题。我知道你在这套动作中已经打好了基础;我只是想确保你意识到这一点。例如
  1. (command "_.pline" "_non" pt3 "_non" pt4 "_non" pt5 "_non" pt6 "_non" "_C")

虽然有点冗长,但它消除了控制OSNAP的需要。
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 15:25:11 | 显示全部楼层
@李:我试着去理解。有些我不知道,请看下面并纠正我的错误。
 
  1. (defun c:box1  (/ *error* vlst ovar ss len leng dist pt1 pt2 pt3 pt4 pt5 pt6)
  2. [color=red]; all systems go, got the message![/color]
  3. ; Error Handler
  4. [color=red]; we would have to spend a chapter on the error handler for I don't get the code.[/color]
  5. (defun *error*  (msg)
  6. [color=red]; defun without the c: is a subfunction, correct?[/color]
  7. [color=red]; How is a subfuntion invoked? Or wil it work autom[/color][color=red]atically whenever the main function is invoked?[/color]
  8.    (if ovar
  9. [color=red]; If the old variables...[/color]
  10. (mapcar 'setvar vlst ovar)); If old variables are stored, reset them.
  11. [color=red]; are stored (mapcar = stored ??) then set the variable vlst to ovar..[/color]
  12. [color=red]; as if ovar & vlst were variables... where is the "setq ovar / setq vlst" ??[/color]
  13. (if (not (member msg '("Function cancelled" "quit / exit abort")))
  14. [color=red]; If the error message isn't one in this list ("member msg") then:[/color]
  15.      (princ (strcat "\n<!> Error: " msg " <!>"))) ; then print it.
  16.    (princ))
  17. [color=red]; Yes prin[b]C[/b] it...[/color]
  18. (setq vlst '("CMDECHO" "OSMODE" "ORTHOMODE")
  19. ovar (mapcar 'getvar vlst)
  20. [color=red]; oops... here they are the vlst and ovar setq's...[/color]
  21. [color=red]; so this is the point where i think "first setq's then refer to them..[/color]
  22. [color=red]; this seems upside down...[/color]
  23. [color=red]; what is the  '  in there?[/color]
  24.        ss (ssadd)  ; Create an Empty Selection Set
  25. [color=red]; so ss is the variable and ssadd is a function to create a SelectionSet?[/color]
  26. [color=red]; an empty one, in wich certain entities can be added[/color]
  27. ; Define Functions and Localise Variables
  28.        len (getdist "\nLength1:  ")
  29.        leng (getdist "\nLength2:  ")
  30. ; I'd be more inclined to use "getdist"
  31. ; so that the user can pick the distance.
  32. [color=red]; okay, in some cases that might come in handy and since[/color]
  33. [color=red]; the keybord methode works too its maybe better to use getdist.[/color]
  34.        dist (getdist "\nDistance:  ")
  35.        dia (getreal "\nDiameter: ")
  36. [color=red]; the getreal function is in fact better for it can contain decimal values[/color]
  37. [color=red]; i used integer for i was thinking in round numbers (don't know english for that")[/color]
  38. [color=red]; you know what i mean[/color]
  39.        pt1 (getpoint "\nInsertion:  ")
  40.        pt2 (polar pt1 0 dist)
  41. ;;;                    pt1 +-----+
  42. ;;;                             pt2
  43.        pt3 (polar pt2 (/ pi 2) (* len 0.5))
  44. [color=red]; Lee you altered the line above, I get it for (* pi 0.5) is the [/color]
  45. [color=red]; same as when typing (/ pi 2)[/color]
  46. [color=red]; Just wanted you to know I noticed :-)[/color]
  47. ;;;                             pt3
  48. ;;;                              +
  49. ;;;                              |
  50. ;;;                              |
  51. ;;;                    pt1 +-----+
  52. ;;;                             pt2
  53.        pt4 (polar pt3 0 leng)
  54. ;;;                             pt3   pt4
  55. ;;;                              +-----+
  56. ;;;                              |
  57. ;;;                              |
  58. ;;;                    pt1 +-----+
  59. ;;;                             pt2
  60.        pt5 (polar pt4 (* pi 1.5) len)
  61. ;;;                             pt3   pt4
  62. ;;;                              +-----+
  63. ;;;                              |     |
  64. ;;;                              |     |
  65. ;;;                    pt1 +-----+     |
  66. ;;;                             pt2    |
  67. ;;;                                    |
  68. ;;;                                    +
  69. ;;;                                   pt5
  70.        pt6 (polar pt5 pi leng)
  71. ;;;                             pt3   pt4
  72. ;;;                              +-----+
  73. ;;;                              |     |
  74. ;;;                              |     |
  75. ;;;                    pt1 +-----+     |
  76. ;;;                             pt2    |
  77. ;;;                                    |
  78. ;;;                              +-----+
  79. ;;;                             pt6   pt5
  80.        ) ; End Setq
  81. (mapcar 'setvar vlst '(0 0 1))  ; Set the Variables to how we want them
  82. [color=red]; Problem: The mapcar thingy is not understood...[/color]
  83. [color=red]; I'd rather google a bit[/color]
  84. (command "_.pline" pt3 pt4 pt5 pt6 "_C")  ; Make the Polyline
  85. ; Remember to use "_." prefix to make it
  86. ; compatible for all language versions.
  87. [color=red]; i put a sticky note on my forehead + mirror besides monitor.[/color]
  88. (ssadd (entlast) ss)  ; Add the polyline to the selection set
  89. [color=red]; Because (setq ss (ssadd)) has no further parameters it stayed empty at first[/color]
  90. [color=red]; Now (ssad (entlast) ss) means "put last created entity into the set ss".[/color]
  91. (command "_.circle" pt3 "_D" dia)  ; Create the Circle
  92. (ssadd (entlast) ss)  ; Add the Circle to the selection set
  93. (command "_.rotate" ss "" pt1 pause)
  94. (mapcar 'setvar vlst ovar) ; Reset System Variables
  95. [color=red]; Did I tell you i didn't get that one?[/color]
  96. (princ)
  97. ; Exit Cleanly
  98. ) ; End box1

 
在我的案例中需要做的是,我首先尝试理解错误处理,这在我看来非常重要。
 
然后是地图车,因为我会用一种非常简单的方法,比如setvar oldosmode等等。
 
我喜欢这样做,我的意思是弄清楚写了什么。只有复制结束粘贴并不能为我提供知识型的问题。
 
感谢您的回复。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:28:46 | 显示全部楼层
 
感谢您指出这一点-是的,我知道这一点,但我不喜欢使用这种方法,因为它似乎是一种“变通方法”,而且,当使用命令调用方法绘制多个对象时“(命令…”你必须记住每次都要加上“_non”-留有出错的余地。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:33:01 | 显示全部楼层
至于你的另一个回复——我们可能整天都在这里。。。
 
没有多少人理解“mapcar”——这是一个非常有用的功能。我不确定我是否是向你解释这件事的最佳人选,但我会尽力的。
 
Mapcar将所提供的函数应用于所提供列表中的每个成员,并返回执行此操作的结果列表。
 
因此:
 
  1. (mapcar 'setvar (list "CMDECHO" "OSMODE") (list 0 0))

 
与相同
 
  1. (setvar "CMDECHO" 0)
  2. (setvar "OSMODE" 0)

 
阅读mapcar上的Visual LISP编辑器(VLIDE)帮助文件以获得更多理解。
 
至于撇号,它只是意味着它后面的语句没有被求值,所以:
 
  1. (setq lst '(1 2 3))

 
与以下内容相同:
 
  1. (setq lst (list 1 2 3))

 
至于错误处理程序和子函数。。。。这完全是另一回事。。。关于AfraLISP,有很多关于LISP中错误处理的信息,我也写了一个常见问题解答(目前还没有,但应该很快就会有!)。
 
希望这有帮助!
 
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

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

铜币
295
发表于 2022-7-6 15:35:59 | 显示全部楼层
舒尔这很有帮助,但现在,让我们到此为止。
我有太多“担心”了…:-)
 
我知道,今天我会去参观。我很快就会回来。。。你怎么会认为我不会呢。
 
Tnx到目前为止的信息,我现在要挣扎一下。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:13 , Processed in 0.478666 second(s), 81 queries .

© 2020-2025 乐筑天下

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