1樓:匿名使用者
到底是手工輸入源資料還是用資料檔案,說清除。你可以自己做嘛,很簡單
幫忙寫個cad lisp程式,就是將一條線去除中間保留兩端一定數值的.lisp 5
2樓:幹笛
你這個不是一兩個命令就能完成的動作,你還不多給點打賞,別人寫程式做事也要付出勞動和時間的,總要付點報酬啊。
3樓:匿名使用者
嗯,我有的,可以點我的頭像……
求一個cad的lisp程式
4樓:匿名使用者
;請試用以下程式
;by dnbc
(defun c:scdh()
(setq cm (getvar "cmdecho")) (setvar "cmdecho" 0)
(command "_undo" "be")
(while (setq ssa (ssget '((0 . "text"))))
(setq i 0 n (sslength ssa))
(repeat n
(setq dxf (entget (ssname ssa i))
zfc (cdr (assoc 1 dxf))
i (1+ i)
)(if (or (> (setq n (vl-string-search "," zfc)) 0)
(> (setq n (vl-string-search "," zfc)) 0)
)(progn
(setq zfc (substr zfc 1 n)
dxf (subst (cons 1 zfc) (assoc 1 dxf) dxf)
)(entmod dxf)))
))(command "_undo" "e")
(setvar "cmdecho" cm)
(princ))
5樓:唯一
;請試用以下程式
;by dnbc
(defun c:jctc()
(vl-load-com)
(if (and (setq tcm (getstring "\n圖層名:"))
(/= tcm "")
)(if (= (tblsearch "layer" tcm) nil)
(command "_layer" "n" tcm "")
(progn
(setq obj (vlax-ename->vla-object (tblobjname "layer" tcm)))
(vlax-put obj "layeron" (* -1 (1+ (vlax-get obj "layeron"))))))
)(princ))
朱老師:cad批量按百分比改文字中的數值,如24米增6%變25.44米,能給一個lisp**謝謝!
6樓:朱正偉
修改文字內容,需要對文字內容分析,根據給出的條件,是修改【=】號後面的值。autolisp**如下:
求一個cad lisp命令!
7樓:朱正偉
圖層鎖定或解鎖,**如下。
;圖層鎖定及解鎖
(defun c:tes ( / ent lay1)
(vl-load-com)
(while (and (setq ent (entsel "\n請選擇要鎖定或解鎖的圖元")) (setq lay1 (cdr (assoc 8 (entget (car ent))))))
(w1712251 lay1)
)(princ)
)(defun w1712251 (lay1 / lay lay1)
(vlax-for lay (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(if (= (vla-get-name lay) lay1)
(progn
(if (= (vla-get-lock lay) :vlax-true);如果圖層鎖定
(vla-put-lock lay :vlax-false) ;解鎖
(vla-put-lock lay :vlax-true) ;鎖定)))))
8樓:許權逯雅達
在百思論壇上找到的,用autocad2008自帶的visual lisp編輯器存入,並用載入應用程式執行過,**如下
laymod.lsp
;__________________________
;解決r14“bonus”工具的移植
;圖層管理工具
;-------------------------------------------
;圖層物件選擇,將標註歸入dim層,文字歸入txt層
;___________________________________________
(defun c:laymod(/ lm_ssd lm_sst)
(if (not (tblsearch "layer" "dim"))
(command "-layer" "n" "dim" "c" "1""dim"""));endif
(if (not (tblsearch "layer" "txt"))
(command "-layer" "n" "txt" "c" "1""txt"""));endif
(setq lm_ssd (ssget "x" '((0 . "dimension")))
lm_sst (ssget "x" '((-4 . ""))));endsetq
(if lm_ssd (command "chprop" lm_ssd "" "la" "dim"""))
(if lm_sst (command "chprop" lm_sst "" "la" "txt"""))
);end defun
;-------------------------------------
;圖層孤立顯示,通過選擇物件單顯某圖層
;_____________________________________
(defun c:layiso(/ l9_ss l9_ent l9_lay ii)
(setq l9_ss "" ii 0)
(princ "\n選擇要保留顯示的圖層:")
(setq l9_ss (ssget))
(if l9_ss (command "-layer""off""*""y"""))
(repeat (sslength l9_ss)
(setq l9_ent (entget (ssname l9_ss ii)))
(setq l9_lay (cdr (assoc 8 l9_ent)) ii (1+ ii))
(command "-layer""on" l9_lay "")
);end repeat
);end defun layiso
;--------------------------
;開啟所有圖層
;__________________________
(defun c:layon()(command "-layer""on""*"""))
;--------------------------
;解除所有圖層鎖定
;__________________________
(defun c:layul()(command "-layer""u""*"""))
;--------------------------
;解除所有圖層凍結
;__________________________
(defun c:layuk()(command "-layer""t""*"""))
;--------------------------
;通過選擇解除圖層鎖定
;__________________________
(defun c:layulk(/ l9_ss l9_ent l9_lay)
(setq l9_ss (entsel "\n選擇要解鎖的圖層:"))
(while l9_ss
(setq l9_ent (entget (car l9_ss)))
(setq l9_lay (cdr (assoc 8 l9_ent)))
(command "layer""u" l9_lay"")
(setq l9_ss (entsel "\n選擇要解鎖的圖層:"))
);end while
);end defun
;--------------------------
;通過選擇鎖定圖層
;__________________________
(defun c:laylck(/ l9_ss l9_ent l9_lay)
(setq l9_ss (entsel "\n選擇要鎖定的圖層:"))
(while l9_ss
(setq l9_ent (entget (car l9_ss)))
(setq l9_lay (cdr (assoc 8 l9_ent)))
(command "layer""u" l9_lay"")
(setq l9_ss (entsel "\n選擇要鎖定的圖層:"))
);end while
);end defun
;--------------------------
;通過選擇凍結圖層
;_________________
(defun c:layfrz(/ l9_ss l9_ent l9_lay l9_clay ii)
(setq l9_clay (getvar "clayer"))
(princ "\n選取凍結圖層參考物件: ")
(setq l9_ss (ssget))
(setq ii 0)
(command "-layer")
(repeat (sslength l9_ss)
(setq l9_ent (entget (ssname l9_ss ii)))
(setq l9_lay (cdr (assoc 8 l9_ent)))
(command "f" l9_lay)
(setq ii (1+ ii))
);end repeat
(command "")
);end defun layfrz
;--------------------------
;通過選擇隱藏圖層
;__________________________
(defun c:layoff(/ l9_ss l9_ent l9_lay l9_clay ii)
(princ "\n選取隱藏圖層參考物件: ")
(setq l9_ss (ssget))
(setq l9_clay (getvar "clayer"))
(setq ii 0)
(command "-layer")
(repeat (sslength l9_ss)
(setq l9_ent (ssname l9_ss ii))
(setq l9_lay (cdr (assoc 8 (entget l9_ent))))
(if (/= l9_lay l9_clay)
(command "off" l9_lay)(command "off" l9_lay"y")
);end if
(setq ii (1+ ii))
);end repeat
(command "")
);end defun layoff
;--------------------------
(princ "\n---------->> 圖層調整
(laymod)layiso/layon/layuk/layulk/laylck/layfrz/layoff<<----------")
(prin1)
求lisp程式,關於提取CAD影象座標
設計人生 方案一 直接讀取dwg格式檔案有點難度,估計高手會做方案二 若是檔案有很多要做的話,可以用c c vb通過com去開發,用com方式依次開啟dwg圖檔,然後遍歷圖元來進行你的要求來運算 方案三 若是檔案有很多要做的話,也可以用autolisp來做,自動開啟你的檔案列表,然後遍歷圖元來進行你...
為什麼我載入的cad之lisp應用程式無法使用
載入成功後,應該輸入源 中defun c 和 之間的單詞後字母組合。還有如果顯示列表有缺陷,一個是源 有錯誤,另外也可能沒有貼上全。 發這lisp的原檔案上來看看,可能是檔名和已有的lisp程式名有衝突。也有可能是源 有錯誤,要看原檔案才行 為什麼我載入的cad之lisp應用程式無法使用? 寧秀梅寸...
編寫一lisp程式cad,求大神幫忙寫一個cad的lisp程式
試程式設計序如下,請校核。defun hang p r n repeat n command circle p r setq l cons p l p polar p 0 r r l defun sjy p r n i p1 p2 p3 l setq i 0 repeat n hang p r n ...