明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lee50310

[源码] < *** 插入block時可預覽block按R,L鍵向右,左轉90度 ***>

[复制链接]
发表于 2022-4-10 16:02:21 | 显示全部楼层
lee50310 发表于 2022-4-9 22:40
請在程式 中   插入 下面程式 (藍色字)   
           ((member (chr key) '("F" "f")) ; 按 ...

你好,如果CAD文档里已经存在“ABC”这个图块,想直接输入ABC命令调用“ABC”图块,改怎么编写呢?还有可以先进行捕捉吗?然后按那个I  才是取消捕捉
 楼主| 发表于 2022-4-10 17:24:15 | 显示全部楼层
本帖最后由 lee50310 于 2022-4-11 12:13 编辑
_Levin 发表于 2022-4-10 16:02
你好,如果CAD文档里已经存在“ABC”这个图块,想直接输入ABC命令调用“ABC”图块,改怎么编写呢?还有可 ...

取消更換塊 按 C 鍵  

請修改插入藍色字在程式中 (部份程式):
           ((member (chr key) '("R" "r")) ;按R鍵 右轉或順時針
             (vl-cmdf "_.rotate" ent "" "_non" ip -90.0)
             T ; stay in loop
           )                  
                  
           ((member (chr key) '("F" "f")) ;按F鍵 做鏡像
             (vl-cmdf "_.MIRROR" ent "" "_non" (trans ip 0 1) "_non" "@0,1" "_Yes")
             T ; stay in loop
           )
                  
           ((member (chr key) '("C" "c")) ; 按C鍵取消更換塊
            (while
                 (not
                     (or
                       (eq "" (setq bname (getstring t "\n重新輸入圖塊名插入: ")))
                       (tblsearch "BLOCK" bname)
                     )
                 );end_not
                 (princ "\n圖塊未找到。")
            );end_while
                       (entdel ent)                                                    ;刪除舊塊
            (vl-cmdf "_.-insert" bname "_S" 1.0 "_R" 0.0 "_non" ip)  ;插入新塊
             (setq ent (entlast))
             T ; stay in loop
           )
           ;;-------------------------------------------
           (t (princ "\n無效按鍵. 請輸 I , R ,F 或 C 按鍵 ") T)
         ) ; end cond

 楼主| 发表于 2022-4-11 12:17:08 | 显示全部楼层
本帖最后由 lee50310 于 2022-4-15 22:16 编辑

更新版 tt2.lsp
1.支援 外部 塊插入
2.插入block時     
                   按鍵說明: "\n按I鍵:使用 OSNAP 插入"   ;                     
                                  "\n按L鍵:左轉或逆時針"
                                  "\n按R鍵:右轉或順時針"
                                  "\n按F鍵:做鏡像"
                                  "\n按C鍵:取消更換塊"               
  按 ENTER- 完成;;



发表于 2022-4-15 16:59:49 | 显示全部楼层
lee50310 发表于 2022-4-11 12:17
最新更新版 tt2.lsp
1.支援 外部 塊插入
2.插入block時     

经测试,我这边显示:参数类型错误: numberp: nil
比如输入TT命令,不用去找图块位置,直接调用D盘下的“ABC.dwg”图块,并启动捕捉进行插入,按I键取消插入捕捉,其他功能不动,
该怎么写呢?望大师指导下,谢谢
发表于 2022-4-15 17:50:28 | 显示全部楼层
经测试 cad 2012 ; 错误:参数类型错误: numberp: nil
 楼主| 发表于 2022-4-15 22:18:15 | 显示全部楼层
本帖最后由 lee50310 于 2022-4-17 07:07 编辑
alexmai 发表于 2022-4-15 17:50
经测试 cad 2012 ; 错误:参数类型错误: numberp: nil


已做修正
更新版 tt3.lsp
請重新下載



发表于 2022-4-16 22:41:25 | 显示全部楼层
选择外部块后提示:; 错误: 参数类型错误: numberp: nil
 楼主| 发表于 2022-4-17 07:10:58 | 显示全部楼层
本帖最后由 lee50310 于 2022-4-17 22:10 编辑
nochao 发表于 2022-4-16 22:41
选择外部块后提示:; 错误: 参数类型错误: numberp: nil

很抱歉! 在cad2018 測試皆正常 未看到錯誤
只能將程式 略做調整 更新版為 tt3b.lsp

請重新下載,測試看看

假設還是不行 請將 外部插入 exp_insert 改成 19樓方法
 楼主| 发表于 2022-4-17 08:21:04 | 显示全部楼层
本帖最后由 lee50310 于 2022-4-17 09:51 编辑
_Levin 发表于 2022-4-15 16:59
经测试,我这边显示:参数类型错误: numberp: nil
比如输入TT命令,不用去找图块位置,直接调用D盘下的 ...

如果 你的所有圖塊 都放在同一個目錄下 例: D:\BLK
若輸入塊名不在圖檔內 則程式會自動從此 D:\BLK 路徑去找並載入此塊




原本程式可改成 (藍色字表示在原有程式中 需要 新增或修改 的地方)


;------------------------------------------------------
(defun exp_insert2 ()
       (setq path "D:\\BLK\\")
       (setq UserFile (strcat path bname ".dwg"))
       (vl-cmdf "_.INSERT" UserFile  '(0 0) "" "" "")                                       
       (vl-cmdf "_.ERASE" (entlast) "")
)

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

;<--- 主程式  --->
  (defun c:tt ( / key grr ip lastpt ent)

   (setvar "cmdecho" 0)
   (while
       (not
           (and
               (setq bname (getstring T "\n輸入圖塊名稱:"))
               (if (not(tblsearch "BLOCK" bname))(progn (exp_insert2) T) T) ;圖檔內無此塊改由外部插入
           );end_end
       );end_not            
   );end_while

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


发表于 2022-5-7 23:03:42 | 显示全部楼层
本帖最后由 _Levin 于 2022-5-9 16:08 编辑
lee50310 发表于 2022-4-17 08:21
如果 你的所有圖塊 都放在同一個目錄下 例: D:\BLK
若輸入塊名不在圖檔內 則程式會自動從此 D:\BLK 路徑 ...

插入图块时,能顺带分解图块吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 08:26 , Processed in 0.149488 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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