明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 187|回复: 3

[源码] 动态块矩形填充,求助增加空格结束

[复制链接]
发表于 2024-9-15 20:25:12 | 显示全部楼层 |阅读模式
5明经币
下面代码循环插入后,空格结束没用,只能ESC强制结束,请各位大大增加空格结束,并给出源码:

(defun c:cckk ()  
  (defun dongtai (enb enb2 pt1 pt2 / pt height width ob)  
    ; 计算矩形的宽度和高度  
    (setq width (abs (- (car pt2) (car pt1))))  
    (setq height (abs (- (cadr pt2) (cadr pt1))))  

    ; 在矩形左下角插入模板(调整pt以适应左下角)  
    (setq pt (list (min (car pt1) (car pt2)) (min (cadr pt1) (cadr pt2))))  
    (entmake  
      (list  
        '(0 . "INSERT")  
        (cons 2 enb2)  
        (cons 10 pt)  
      )  
    )  

    ; 获取新插入的块的引用  
    (setq ob (vlax-ename->vla-object (entlast)))  

    ; 设置动态属性E1和E2  
    (lm:setdynpropvalue ob "E1" height)  
    (lm:setdynpropvalue ob "E2" width)  

    ; 将新块置于底部  
    (command "Draworder" (entlast) "" "b")  

    ; 通知用户  
    (princ (strcat "\n模板已插入到矩形左下角,高度: " (rtos height) ", 宽度: " (rtos width) "。\n"))  
  )  

  ; 用户选择模板动态块  
  (setq en (car (xentsel "\n请选择一个模板动态块:" '((0 . "INSERT")))))  
  (if not en  
    (progn  
      (princ "\n未选择任何块。")  
      (exit)  
    )  
  )  
  (setq name2 (get-effectivename en))  

  ; 循环插入,直到用户按空格键  
  (setq exitFlag nil)  
  (while not exitFlag  
    (setq pt1 (getpoint "\n指定矩形第一角点: "))  
    (if (= pt1 nil) ; 检查用户是否按了空格或ESC  
      (setq exitFlag t)  
      (progn  
        (setq pt2 (getcorner pt1 "\n指定对角点以定义矩形: "))  
        (if (= pt2 nil) ; 同样检查用户是否按了空格或ESC  
          (setq exitFlag t)  
          (dongtai nil name2 pt1 pt2)  
        )  
      )  
    )  
  )  

  (princ "\n插入完成。\n")  
  (princ)  
)



附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2024-9-15 23:50:40 | 显示全部楼层
此帖仅作者可见

使用道具 举报

发表于 7 天前 | 显示全部楼层
此帖仅作者可见

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
此帖仅作者可见

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-23 04:26 , Processed in 0.409949 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表