lee50310 发表于 2022-5-9 17:28:25

本帖最后由 lee50310 于 2023-10-16 06:51 编辑

_Levin 发表于 2022-5-7 23:03
插入图块时,能顺带分解图块吗?
先回答你之前的第1個問題

插入預覽塊 ,鎖點問題?
我試了一下 發現執行
   (vl-cmdf "_.-insert" bname "_S" 1.0 "_R" 0.0 "_non" ip)
這 "_non" 可讓塊懸停在滑鼠上但無法讓鎖點穿透
所以執行時 無鎖點功能
不過可以 把 按鍵功能 I 改成有鎖點功能
(藍色字表示在原有程式中增加)

;-------------------------------------------------------------

       ((member (chr key) '("I" "i")) ;按I鍵: 使用 OSNAP 插入
             (vl-cmdf "_.move" ent "" "_non" lastpt)
             (while (= (logand (getvar "cmdactive") 1) 1)
               (command pause)
             )
                         (entdel entlast)
                         (vl-cmdf "_.-insert" bname "_S" 1.0 "_R" 0.0 "_non" ip)
                        
                         nil ; stay in loop
         )

;-------------------------------------------------------------

執行說明: 輸入指令:tt
               輸入塊名:xx
               若無旋轉則按 i 鍵
               在你要插入的物體旁點一下 此時會拉出一條虛線與滑鼠上的塊相連
               這時滑鼠上的塊就有鎖點功能 然後將此塊插入你要的物體上

第二個問題 以 按鍵 I 為例 若插入後要順帶分解圖塊
(紅色字表示在原有程式中增加)
;-------------------------------------------------------------

       ((member (chr key) '("I" "i")) ;按I鍵: 使用 OSNAP 插入
             (vl-cmdf "_.move" ent "" "_non" lastpt)
             (while (= (logand (getvar "cmdactive") 1) 1)
               (command pause)
             )
                      (entdel (entlast))
                        (vl-cmdf "_.-insert" bname "_S" 1.0 "_R" 0.0 "_non" ip)                      
                      (vl-cmdf "Explode" (entlast))   ;分解圖塊
                         nil ; stay in loop
         )

;-------------------------------------------------------------




htxhtx 发表于 2022-5-13 08:55:29

来晚了 ,可惜!

bai2000 发表于 2023-3-8 22:41:09

本帖最后由 bai2000 于 2023-5-19 16:07 编辑

不错,能更改选择图中的图块更好,毕竟“块名”都不好记得,"选择由外部插入图块"的功能怎么用不了啊,搜索到外部块后“确认”自动退出

sj800918 发表于 2023-10-11 16:49:31

感谢分享,有一个问题请教一下,插入后旋转,再用I开启捕捉,这样插入块后,想加撤消(command-s ".undo" "be" )(command-s ".undo" "e" ),但只能撤消到I开启捕捉前那一步,再后退,就一点点移动很多步,这个怎么处理呢,谢谢!

lee50310 发表于 2023-10-11 19:25:38

本帖最后由 lee50310 于 2023-10-26 16:09 编辑

sj800918 发表于 2023-10-11 16:49
感谢分享,有一个问题请教一下,插入后旋转,再用I开启捕捉,这样插入块后,想加撤消(command-s ".undo" "b ...
兩種方式 可試試看

;第一種
(command-s "_.undo" "be" )

.
.
(command-s "_.undo" "e" )               
(repeat 3(command-s "_.undo" "" ));寫3 就退回 3次
.
.

;---------------------------------------------------
;;第二種

.
.
(command-s "_.undo" "m" )         ;在要退回的地方先標記
.
.
(command-s "_.undo" "e" )
(command-s "_.undo" "_back")   ;下此指令執行程序會退回標記處

sj800918 发表于 2023-10-12 08:05:24

本帖最后由 sj800918 于 2023-10-12 10:01 编辑

感谢回复!!!!


sj800918 发表于 2023-10-12 10:04:14

本帖最后由 sj800918 于 2023-10-12 10:10 编辑

按原始程序测试退回点没有问题,但I键插入后,多了个图形,加入下面这两句后,就出现了退回不正常情况,怎样解决合适呢?
      ((member (chr key) '("I" "i")) ;按I鍵: 使用 OSNAP 插入
             (vl-cmdf "_.move" ent "" "_non" lastpt)
             (while (= (logand (getvar "cmdactive") 1) 1)
               (command pause)
             )
                         (setq obj(car(entlast)))
                         (vl-cmdf "_.-insert" bname "_S" 1.0 "_R" 0.0 "_non" ip)
                         (entdel obj)
                         nil ; stay in loop
         )

lee50310 发表于 2023-10-12 10:48:37

本帖最后由 lee50310 于 2024-2-5 11:01 编辑

sj800918 发表于 2023-10-12 08:05
感谢回复!!!!
要刪除最後一個物體
兩行紅色字 改成

(entdel (entlast))

即可

sj800918 发表于 2023-10-12 16:09:34

感谢回复!问题已解决:handshake

sjl_fyl 发表于 2024-2-4 15:35:44

{:1_1:}谢谢
页: 1 2 [3]
查看完整版本: < *** 插入block時可預覽block按R,L鍵向右,左轉90度 ***>