誰有cad的lisp程式 能夠進行多個小數文字同時加減乘除數值,然後可以保留指定的小數位數

2021-06-11 06:01:15 字數 6030 閱讀 1571

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)

關於CAD標註的問題,會的人進

很簡單!單獨設定不同比例的標註樣式就可以了,然後標註不同比例樣式的時候分別用對應的樣式!比如基本的標註樣式為iso25,這是1 1的標註比例,你需要1 3的標註比例,以這個標註樣式為基礎樣式新建一個詳圖放大3倍的標註樣式,只需要在這個新建的標註樣式裡設定 主單位 下的 比例因子 為0.3333333...

開啟2019彈出安裝cad的程式如何解決

解決方法 1.通過重灌office以後解決此問題 太笨 2.註冊 如若是office 2003的對應問題,在執行對話方塊中輸入 reg add hkcu software microsoft office 11.0 word options v norereg t reg dword d 1 回車即...

c語言程式段的錯誤高手進,C語言程式段的一個錯誤高手進

首先宣告下,我不是高手,只是和你分析下這個程式。1 這句報錯是說 賦值符 前面沒有變數,就像寫 int 8 原因一樣。只要在前面寫個變數如 func1 pfun inc 就可以了。其實後面程式中沒有用到這條語句。2 typedef int func1 int in 這句話是定義指向一個函式的指標,返...