乐筑天下

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

[编程交流] 在上实时发出两个命令

[复制链接]

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-5 18:08:05 | 显示全部楼层 |阅读模式
我很好奇,有没有办法让两个命令同时生效?我知道当只有这样一个命令时该怎么做:
  1. (command "._PLINE")
  2.   (while (> (logand (getvar "CMDACTIVE") 1) 0)
  3.     (command PAUSE)
  4.   )
。然而,当我向函数“馈送”点时,我真的很难想出如何做到这一点。我正在尝试编写一个LISP,它可以同时绘制多段线和多段线。让我头疼的是如何编写while语句,以便在用户拾取点的同时实时绘制多线图。我知道我需要使用getpoint,但当我这样做时,会去掉代码的活动部分,而只是在之后绘制。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:25:06 | 显示全部楼层
你可能需要一种不同的方法,一次画出所有的线,然后连接成普林斯。您可以通过记住对象的名称来进行圆角和pedit。假设4条线使用偏移创建,得到ent1 ent2 ent3 ent4,然后下一个点得到ent5 ent6 ent7 ent8,圆角ent1 ent5,pedit ent1 J ent5,依此类推。mline的优点是可以绘制多条线,我知道我已经拖动了下一个点,当选择点时,最后4条线中会出现一条线,添加新的4条线。李-麦克可能有一种重新绘制的方法,比如说当你们选择下一个像pt一样的mline时,重新绘制4条线,但这将是4条线。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-5 18:32:22 | 显示全部楼层
如果我理解正确的话,我应该把它们画成不同的线或柱脚线,偏移它们,然后将末端的两条外部线转换成多线,对吗?
回复

使用道具 举报

1

主题

116

帖子

115

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:42:18 | 显示全部楼层
我想我应该使用getpoint和entmod来处理while循环中的每个实体。。。完全避免使用命令。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

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

铜币
475
发表于 2022-7-5 18:55:44 | 显示全部楼层
谢谢你的建议,我会接受他们两个,看看我能做些什么。
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

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

铜币
260
发表于 2022-7-5 19:02:14 | 显示全部楼层
Lisp示例:
  1. ;| Tangent Leader for labeling
  2.   BY: Tom Beauford
  3.   BeaufordT@LeonCountyFL.gov
  4.   Leon County Public Works Engineering Section
  5.   Macro: ^P(or C:tld (load "Arrow.lsp"));tld
  6.   Command line: (load "Arrow.lsp") tld
  7. ==============================================================================|;
  8. (defun C:tld (/ *ERROR* st_txt rem ts pt1 pt2 pt3 pt4 arow addv)
  9. (defun *ERROR* (s)                    ; If an error (such as CTRL-C) occurs
  10.                                      ; while this command is active...
  11. (if (/= s "Function cancelled")
  12.    (princ (strcat "\nError: " s))
  13. )
  14. (command "ucs" "Restore" "$temp$")  ; Restore saved coordinate system.
  15. (command "ucs" "Del" "$temp$")      ; Delete $temp$ coordinate system.
  16. (grtext -1 "")                      ; Clear status line.
  17. (setvar "osmode" rem)
  18. (princ)
  19. )
  20. (setq st_txt (strcat "Arrow size = Text Size = " (rtos(getvar "textsize")2 2)))
  21. (grtext -1 st_txt)
  22. (setvar "CMDECHO" 0)
  23. (setq rem (getvar "osmode"))
  24. (setvar 'osmode (boole 7 (getvar 'osmode) 16384))
  25. (command "ucs" "Del" "$temp$")
  26. (command "ucs" "Save" "$temp$")
  27. (command "ucs" "World")
  28. (setq
  29. ts  (getvar "textsize")
  30. pt1 (getpoint "Start at object to be labeled: ")
  31. pt3 (getpoint pt1 "\n\nTo: "))
  32. (setq
  33. pt1 (list(car pt1)(cadr pt1))
  34. pt3 (list(car pt3)(cadr pt3))
  35. pt2
  36.   (list
  37.    (- (car pt1)(* (/ ts (distance pt1 pt3))
  38.       (-(car pt1)(car pt3)))
  39.    )
  40.    (- (cadr pt1)(* (/ ts (distance pt1 pt3))
  41.       (-(cadr pt1)(cadr pt3)))
  42.    )
  43.   )
  44. )
  45. (setq arow (list
  46.              '(0 . "LWPOLYLINE")
  47.              '(100 . "AcDbEntity")
  48.              (cons 8 (getvar "clayer"))         ;current layer
  49.              '(6 . "CONTINUOUS")                ;linetype
  50.              '(100 . "AcDbPolyline")
  51.              '(90 . 3)                          ;# of vertices
  52.              '(39 . 0.0)
  53.              (list 10(car pt1)(cadr pt1))       ;vertex
  54.              '(40 . 0.0)                        ;starting width
  55.              (cons 41 (/ ts 3))  ;ending width
  56.              '(42 . 0.0)                        ;bulge (external of curve)
  57.              (list 10(car pt2)(cadr pt2))       ;vertex
  58. ;              (cons 40 (/ ts 30)) ;starting width
  59.              '(40 . 0.0) ;starting width
  60. ;              (cons 41 (/ ts 30)) ;ending width
  61.              '(41 . 0.0) ;ending width
  62.              '(42 . 0.0)                        ;bulge (external of curve)
  63.              (list 10(car pt3)(cadr pt3))       ;vertex
  64. ;              (cons 40 (/ ts 30)) ;starting width
  65.              '(40 . 0.0) ;starting width
  66. ;              (cons 41 (/ ts 30)) ;ending width
  67.              '(41 . 0.0) ;ending width
  68.              '(42 . 0.0)                        ;bulge (external of curve)
  69.              '(210 0.0 0.0 1.0)                 ;extrusion direction
  70.             )
  71. )
  72. (entmake arow)
  73. (setq en (entlast))
  74. (setq ed (entget en))
  75. (setq pt4 nil)
  76. (setq pt4 (getpoint pt3))
  77. (while pt4
  78. (setq ed (reverse(cdr(reverse ed))))
  79. (setq ed (subst(cons 90(+(cdr(assoc 90 ed))1))(assoc 90 ed)ed))  ;# of vertices
  80. (setq addv (list
  81.               (list 10(car pt4)(cadr pt4))       ;vertex
  82.               '(40 . 0.0) ;starting width
  83. ;               (cons 40 (/ ts 30)) ;starting width
  84.               '(41 . 0.0) ;ending width
  85. ;               (cons 41 (/ ts 30)) ;ending width
  86.               '(42 . 0.0)                        ;bulge (external of curve)
  87.               '(210 0.0 0.0 1.0)                 ;extrusion direction
  88.              ); end list
  89. ); end setq
  90. (setq ed(append ed addv))
  91. (entmod ed)
  92. (setq pt3 pt4)
  93. (setq pt4 nil)
  94. (setq pt4 (getpoint pt3))
  95. (princ)
  96. ); end while
  97. (setvar "osmode" rem)
  98. (command "ucs" "Restore" "$temp$")
  99. (command "ucs" "Del" "$temp$")
  100. (grtext -1 "") ;CLEAR STATUS LINE
  101. (princ)
  102. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:13:27 | 显示全部楼层
这是我刚才所说的图像,拾取点pline可以添加,而不是其他偏移线之一。
 

                               
登录/注册后可看大图

190815of32sqnu2yysqzfq.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:37 , Processed in 0.372848 second(s), 68 queries .

© 2020-2025 乐筑天下

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