乐筑天下

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

[编程交流] 如何添加多个测试

[复制链接]

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 09:59:38 | 显示全部楼层 |阅读模式
如何向IF添加多个testexpr?
(如果[testexpr1和testexpr2]progn1(如果[testexpr3和testexpr4]progn2(如果[testexpr5和testexpr6]progn3 progn4)))
 
例如
 
回复

使用道具 举报

2

主题

74

帖子

72

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:05:06 | 显示全部楼层
  1. (Defun C:ColDim ()
  2. (setq p1 (getpoint "\nPick Center point."))
  3. (setq p2 (getpoint "\nPick Corner point."))
  4. (if(and (< (car p1) (car p2))(> (cadr p1) (cadr p2))) condtn1
  5. (if(and (< (car p1) (car p2))(< (cadr p1) (cadr p2))) condtn2
  6. (if(and (> (car p1) (car p2))(< (cadr p1) (cadr p2))) condtn3
  7. (if(and (> (car p1) (car p2))(> (cadr p1) (cadr p2))) condtn4
  8. ))))
  9. (defun condtn1 ()
  10. )
  11. (defun condtn2 ()
  12. )
  13. (defun condtn3 ()
  14. )
  15. (defun condtn4 ()
  16. )
  17. (princ)
  18. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:07:23 | 显示全部楼层
我希望在这种情况下使用COND
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:11:10 | 显示全部楼层
我想要的是。
用户将拾取交点p1,然后拾取角点以添加尺寸p2,第二个点位置将指定尺寸的方向
 
 
我希望这是正确的方向
 
PS-尚未确定的要点
-这是我的第二个惯例。
105939xt84x2taiia33z31.png
回复

使用道具 举报

2

主题

74

帖子

72

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:15:17 | 显示全部楼层
  1. (defun c:test2 ()
  2. (setq p1 (getpoint "\nPick Center point."))
  3. (setq p2 (getpoint "\nPick Corner point."))
  4. (setq txt (getstring "\n Column Number: "))
  5. (setq p3 (list (car p2)(cadr p1)))
  6. (setq p4 (list (car p1)(cadr p2)))
  7. (setq p5 (polar p3 (angle p1 p3) 400))
  8. (setq p6 (polar p4 (angle p1 p4) 400))
  9. (setq p7 (polar p2 (angle p1 p2) 565.68542495))
  10. (command "_.dimlinear" "_non" p2 "_non" p3 "_non" p5 )
  11. (command "_.dimlinear" "_non" p2 "_non" p4 "_non" p6 )
  12. (entmakex (list (cons 0 "TEXT")
  13. (cons 1 txt)
  14. (cons 40 (getvar "textsize"))
  15. (cons 10 p7)))
  16. )

为什么使用text-entmakex,而使用dimension-command?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:17:25 | 显示全部楼层
另一种方法:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:test [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* DIMOFF P1 P2 P3 P4 SPC TXT UFLAG[b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] DimOff [b][color=#009999]400.0[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Dimension Offset Distance[/color][/i]
  4. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b]
  5.    [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.    [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#a52a2a]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b]
  7.        [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\n** Error: "[/color][/b] msg [b][color=#a52a2a]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  8.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  9. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b]doc[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  10.                           [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.        spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.              [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=Blue]:vlax-true[/color][color=RED])[/color][/b]
  13.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b]
  14.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.              [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]         
  16. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] p1 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#a52a2a]"\nPick Center Point: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] p2 [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#a52a2a]"\nPick Corner Point: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.           [b][color=RED]([/color][/b][b][color=BLUE]/=[/color][/b] [b][color=#a52a2a]""[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] txt [b][color=RED]([/color][/b][b][color=BLUE]getstring[/color][/b] [b][color=#a52a2a]"\nColumn Number: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  20.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-StartUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  21.      [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=Blue]vla-AddDimRotated[/color][color=RED])[/color][/b]
  22.             [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] spc[b][color=RED])[/color][/b]
  23.                     [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  24.                       [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=Blue]vlax-3D-point[/color][color=RED])[/color][/b]
  25.                       [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b]  p3 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] p1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] p2[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] p1[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] p2
  26.                             [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] p3 [b][color=RED]([/color][/b][b][color=BLUE]angle[/color][/b] p1 p3[b][color=RED])[/color][/b] DimOff[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  27.                     [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009999]0.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  28.      [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=Blue]vla-AddDimRotated[/color][color=RED])[/color][/b]
  29.             [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] spc[b][color=RED])[/color][/b]
  30.                     [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  31.                       [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=Blue]vlax-3D-point[/color][color=RED])[/color][/b]
  32.                       [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] p2 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b]  p4 [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] p2[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] p1[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] p1[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  33.                                [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] p4 [b][color=RED]([/color][/b][b][color=BLUE]angle[/color][/b] p1 p4[b][color=RED])[/color][/b] DimOff[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34.                     [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009999]2.[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  35.      [b][color=RED]([/color][/b][b][color=BLUE]vla-AddText[/color][/b] spc txt
  36.        [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b]
  37.          [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] p2 [b][color=RED]([/color][/b][b][color=BLUE]angle[/color][/b] p1 p2[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]sqrt[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=#009999]2.[/color][/b] DimOff Dimoff[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#a52a2a]"TEXTSIZE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]              
  38.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] uFlag [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  39. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  40.      
  41.      
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:20:58 | 显示全部楼层
谢谢李
首先,我要感谢你的Lisp程序
第二,我试图搜索有关VLA函数的帮助,但没有找到,但在VBA部分中找到了,所以你能解释一下其中的一些函数吗。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:22:10 | 显示全部楼层
 
函数的解释是为VBA编写的,因此您只需连接到Visual LISP即可。给出了参数及其顺序
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:26:47 | 显示全部楼层
因此,添加VLA以转换为VBA
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:29:57 | 显示全部楼层
 
不总是这样,但方法和属性是相似的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:21 , Processed in 1.020952 second(s), 74 queries .

© 2020-2025 乐筑天下

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