[求助]麻煩版主改一下lisp
<p>我有lisp是自動畫沉頭的,但是程式是分段的</p><p>煩請版主可否改成輸入指令後再選擇沉頭大小</p><p>lisp源碼</p><p>(defun c:c3()<br/> (setq cmd(getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/> (setq p1(getpoint "\n選擇擺放位置:"))<br/> (while (/= p1 nil)<br/> (command "circle" "none" p1 2)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> (command "circle" "none" p1 3.5)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> <br/> (setq p1(getpoint "\nselect a point:")))<br/> (setvar "cmdecho" cmd)<br/>)</p><p>(defun c:c4()<br/> (setq cmd(getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/> (setq p1(getpoint "\n選擇擺放位置:"))<br/> (while (/= p1 nil)<br/> (command "circle" "none" p1 2.5)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> (command "circle" "none" p1 4)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> <br/> (setq p1(getpoint "\nselect a point:")))<br/> (setvar "cmdecho" cmd)<br/>)</p><p>(defun c:c5()<br/> (setq cmd(getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/> (setq p1(getpoint "\n選擇擺放位置:"))<br/> (while (/= p1 nil)<br/> (command "circle" "none" p1 3)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> (command "circle" "none" p1 5)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> <br/> (setq p1(getpoint "\nselect a point:")))<br/> (setvar "cmdecho" cmd)<br/>)</p><p>(defun c:c6()<br/> (setq cmd(getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/> (setq p1(getpoint "\n選擇擺放位置:"))<br/> (while (/= p1 nil)<br/> (command "circle" "none" p1 3.5)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> (command "circle" "none" p1 6)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> <br/> (setq p1(getpoint "\nselect a point:")))<br/> (setvar "cmdecho" cmd)<br/>)</p><p>(defun c:c8()<br/> (setq cmd(getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/> (setq p1(getpoint "\n選擇擺放位置:"))<br/> (while (/= p1 nil)<br/> (command "circle" "none" p1 4.5)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> (command "circle" "none" p1 7)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> <br/> (setq p1(getpoint "\nselect a point:")))<br/> (setvar "cmdecho" cmd)<br/>)</p><p>(defun c:c10()<br/> (setq cmd(getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/> (setq p1(getpoint "\n選擇擺放位置:"))<br/> (while (/= p1 nil)<br/> (command "circle" "none" p1 5.5)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> (command "circle" "none" p1 8)<br/> (command "change"(ENTLAST) "" "p" "C" "6" "") <br/> <br/> (setq p1(getpoint "\nselect a point:")))<br/> (setvar "cmdecho" cmd)<br/>)<br/></p>(defun c:ct ()
(setq cmd (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(initget "3 4 5 6 8 10")
(setq size (getstring "\n輸入沉頭螺釘直徑 :"))
(while (setq p1 (getpoint "\n選擇擺放位置:"))
(eval (read (strcat "(C:C" size ")")))
)
(setvar "CMDECHO" cmd)
(princ)
)
(defun c:c3()
(command "circle" "none" p1 2)
(command "change"(ENTLAST) "" "p""C" "6" "")
(command "circle" "none" p1 3.5)
(command "change"(ENTLAST) "" "p""C" "6" "")
)
(defun c:c4()
(command "circle" "none" p1 2.5)
(command "change"(ENTLAST) "" "p""C" "6" "")
(command "circle" "none" p1 4)
(command "change"(ENTLAST) "" "p""C" "6" "")
)
(defun c:c5()
(command "circle" "none" p1 3)
(command "change"(ENTLAST) "" "p""C" "6" "")
(command "circle" "none" p1 5)
(command "change"(ENTLAST) "" "p""C" "6" "")
)
(defun c:c6()
(while (setq p1 (getpoint "\n選擇擺放位置:"))
(command "circle" "none" p1 3.5)
(command "change"(ENTLAST) "" "p""C" "6" "")
(command "circle" "none" p1 6)
(command "change"(ENTLAST) "" "p""C" "6" "")
)
)
(defun c:c8()
(command "circle" "none" p1 4.5)
(command "change"(ENTLAST) "" "p""C" "6" "")
(command "circle" "none" p1 7)
(command "change"(ENTLAST) "" "p""C" "6" "")
)
(defun c:c10()
(command "circle" "none" p1 5.5)
(command "change"(ENTLAST) "" "p""C" "6" "")
(command "circle" "none" p1 8)
(command "change"(ENTLAST) "" "p""C" "6" "")
)
謝謝版主熱情回答!!太感謝了 <p>可以再麻煩版主一下,可否按照沉頭一下改成螺絲孔的lisp</p><p>一樣是1.螺絲孔大小及中心位置輸入,</p><p>要有 M4 M5 M6 M8 M10 M12 M16 M30 M33</p><p>麻煩版主一下 !!</p>
(DEFUN C:TT1 ( / PB M H V P0 MI PO1 PT1 PT2 PT3 PT4 OLDL OLDOS)
(SETQ PB (GETPOINT "Base point 基准点 :")
H (GETDIST "\nCoordinate of hor水平座标 H = ")
V (GETDIST "\nCoordinate of vert 垂直座标 V = ")
M (GETDIST "\nDiameter of bolt螺栓直径 M = ")
PO (LIST (+ (CAR PB) H) (+ (CADR PB) V))
MI (* M 0.85)
PO1 (POLAR PO 1.0472 (* M 0.5))
PT1 (POLAR PO 0 M) PT2 (POLAR PO PI M)
PT3 (POLAR PO AL1 M) PT4 (POLAR PO AL2 M)
OLDL (GETVAR "CLAYER")OLDOS (GETVAR "OSMODE"))
(SETVAR "BLIPMODE" 0) (SETVAR "CMDECHO" 0) (SETVAR "OSMODE" 0)
(COMMAND "LAYER" "M" "BLO" "" "CIRCLE" PO "D" MI
"LAYER" "M" "THI" "" "ARC" PO1 "C" PO "A" 270
"LAYER" "M" "CEN" "" "LINE" PT1 PT2 "" "LINE" PT3 PT4 "")
(SETVAR "CLAYER" OLDL)
(SETVAR "OSMODE" OLDOS)
(SETVAR "CMDECHO" 1)
(PRINC)
)
<p>版主 本人使用好像出現錯誤</p><p>錯誤: 損壞的引數類型: numberp: nil</p><p>請版主再幫忙檢查一下</p> 參考看看 <p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">(DEFUN C:TT1 ( / PB M H V P0 MI PO1 PT1 PT2 PT3 PT4 OLDL OLDOS)<br/>(SETQ PB (GETPOINT "Base point 基准点 :")<br/> H (GETDIST "\nCoordinate of hor 水平座标 H = ")<br/> V (GETDIST "\nCoordinate of vert 垂直座标 V = ")<br/> M (GETDIST "\nDiameter of bolt 螺栓直径 M = ")<br/> PO (LIST (+ (CAR PB) H) (+ (CADR PB) V))<br/> MI (* M 0.85)<br/> PO1 (POLAR PO 1.0472 (* M 0.5))<br/> PT1 (POLAR PO 0 M) PT2 (POLAR PO PI M)<br/> <font color="#ff0000"><strong>AL1 (* (/ PI 2) 3) AL2 (/ PI 2)<br/></strong></font> PT3 (POLAR PO AL1 M) PT4 (POLAR PO AL2 M)<br/> OLDL (GETVAR "CLAYER") OLDOS (GETVAR "OSMODE"))<br/>(SETVAR "BLIPMODE" 0) (SETVAR "CMDECHO" 0) (SETVAR "OSMODE" 0)<br/>(COMMAND "LAYER" "M" "BLO" "" "CIRCLE" PO "D" MI<br/> "LAYER" "M" "THI" "" "ARC" PO1 "C" PO "A" 270<br/> "LAYER" "M" "CEN" "" "LINE" PT1 PT2 "" "LINE" PT3 PT4 "")<br/>(SETVAR "CLAYER" OLDL)<br/>(SETVAR "OSMODE" OLDOS)<br/>(SETVAR "CMDECHO" 1)<br/>(PRINC)<br/>)</font></p> ZZXXQQ超级版主.超级hao版主
页:
[1]