这与我正在运行的AutoCAD版本有关吗?2009
;---章节标题---
(defun c:插入sectcall块(/layerset)
(setq layerset(getvar“clayer”))
(setvar“clayer”“35”)
(setq scaleset(/1(getvar“cannoscalevalue”))
(setvar“ATTDIA”0)
(setq ins pt(getpoint“\n选择插入点:”)
(if(=nil ins pt)(setq ins pt(列表805 553)))
(命令“-insert”“section title”ins pt scaleset scaleset“0”)
(命令“explode”(entlast))
(setvar“ATTDIA”1)
(setvar“clayer”layerset)
(普林斯)
) ;德芬
这是我为其他块(如jpg文件中所示)编写的代码。
这就是我所做的,但我不知道如何处理正交和箭头的方向。
;---截面气泡---
(defun c:插入sectbub块(/layerset)
(setq layerset(getvar“clayer”))
(setvar“clayer”“35”)
(setq scaleset(/1(getvar“cannoscalevalue”))
(setvar“ATTDIA”0)
(setq ins-pt1(getpoint“\n选择第一个插入点:”)
(if(=nil ins-pt1)(setq ins-pt1(列表805 553)))
(setq ins-pt2(getpoint“\n选择第二个插入点:”)
(if(=nil ins-pt2)(setq ins-pt2(列表805 553)))
(命令“-insert”“section bubhead”ins-pt1 scaleset scaleset“0”)
(命令“-insert”“section bubarrow”ins-pt1 scaleset scaleset“0”)
(命令“-insert”“section bubtail”ins-pt2 scaleset scaleset“0”)
(命令“explode”(entlast))
(setvar“ATTDIA”1)
(setvar“clayer”layerset)
(普林斯)
) ;德芬
对不起,我漏掉了一点。
试试这个-告诉我它是否有效。
(defun c:SECTMARK ()
(SETQ $PATH "C:/Documents and Settings/");CHANGE THIS TO THE PATH THAT YOU PASTE YOUR BLOCKS TO. CHEERS
(SE-erro)
(SE-quiet)
(SE-init)
(Get_mvs)
(pick1)
(ask1)
(setq #loc #org);### Bubble Point
(make-pts1)
(setvar "attdia" 0)
(command
"layer" "m" "TAGS" ""
"insert" (strcat $PATH "Sec-ball") #loc DMS DMS "0" #sectno #drawno
"insert" (strcat $PATH "Sec-arr")#loc (* -1 DMS) DMS (rtd #ang)
); Arrow
(setvar "attdia" 1)
(setq TAIL "Sec-endB")
(setq MIR nil)
(setq MIR (getstring "\nFlip? Y/N <N>: "))
(if (/= MIR "")(setq MIR (strcase (substr MIR 1 1))))
(if (= MIR "Y")
(progn
(command "mirror" (entlast) "" #loc #2nd "y")
(setq TAIL "Sec-endA")))
(COMMAND "-INSERT" (strcat $PATH TAIL) "_r" (rtd (+ (* pi (/ 180 180)) #ang)) "_s" DMS #LOC )
(COMMAND "UCS" "Z" (RTD #ANG))
(SETVAR "ORTHOMODE" 1)
(princ "\nSelect base point to move section tail from..")
(COMMAND "MOVE" (ENTLAST) "" pause PAUSE)
(COMMAND "UCS" "P")
(SE-normal)
(setq *error* olderror)
(princ)
)
(defun dtr (a)
(* pi (/ a 180.0))
)
(defun rtd (a)
(* 180.0 (/ a pi))
)
(defun SE-init ()
(setq #45(dtr 45)
#90(dtr 90)
#135 (dtr 135)
#180 (dtr 180)
#225 (dtr 225)
#270 (dtr 270)
#315 (dtr 315)
)
)
(defun pick1 ()
(setq #org nil #2nd nil #side nil)
(while (= #org nil)
(setq #org (getpoint "\nSelect Center point of Section Bubble: "))
)
(while (= #2nd nil)
(setq #2nd (getpoint #org "\nRotation of Section mark?: "))
(if (= (getvar "orthomode") 0)
(setq orno T)
(setq orno nil)
)
)
(setq #ang (angle #org #2nd))
(setq #dist (distance #org #2nd))
)
(DEFUN Get_mvs ()
(if (and (= (getvar "cvport") 1)(= (getvar "tilemode") 0)) ; if in Paperspace
(setq dms 1)
(if(= (getvar "tilemode") 0) ; if in Modelspace inside viewport
(progn
(vscl)
(setq dms mvs)
);progn
(Try_Dimscale)
);if
);if
);defun
(defun ask1 ()
(if #sectno
(progn
(setq #prevno #sectno)
(setq #sectno (getstring (strcat "\nSection Number <" #prevno ">: ")))
(if (= #sectno "")(setq #sectno #prevno))
)
(progn
(setq #sectno (getstring "\nSection Number <1>: "))
(if (= #sectno "") (setq #sectno "1"))
)
)
(if #drawno
(progn
(setq #prevdrawno #drawno)
(setq #drawno (getstring (strcat "\nDrawing Reference <" #prevdrawno ">: ")))
(if (= #drawno "")(setq #drawno #prevdrawno))
)
(progn
(setq #drawno (getstring "\nDrawing Reference <->: "))
(if (= #drawno "") (setq #drawno "-"))
)
)
)
(defun make-pts1 ()
(setq #bb1(polar #loc(+ #ang #180) (* DMS 17.0)));; Bubble Centre
(setq #tp2(polar #loc (+ #ang #90)(* DMS 15.0))) ;; Text Left
(setq #tp1(polar #2nd (+ #ang #90)(* DMS 15.0))) ;; Text right
(cond
( (= #90 #ang)(setq #tang 0) )
( (= #270 #ang)(setq #tang 0) )
( (and (< #90 #ang)(> #270 #ang) )(setq #tang (+ #180 #ang)) )
( t (setq #tang #ang) )
);cond
)
(defun SE-quiet ()
(setvar "cmdecho" 0)
(setq OLDOSMODE (getvar "osmode"))
(setvar "osmode" 0)
(COMMAND "UNDO" "GROUP")
(setq angb (getvar "angbase")
angd (getvar "angdir")
orthom (getvar "orthomode")
blipm(getvar "blipmode")
)
(setvar "plinewid"0)
(setvar "blipmode"0)
(setvar "angbase" 0)
(setvar "angdir" 0)
(if orno (setvar "orthomode" 0)
(setvar "orthomode" 1)
)
(CURRENT_COLOR)
(setq #CLA (getvar "clayer"))
(setq #CLT (getvar "celtype"))
(command "color" "bylayer")
(command "linetype" "s" "bylayer" "")
(command "layer" "m" "TAGS" "")
)
;;; Reset Values
(defun SE-normal ()
(if blipm (setvar "blipmode"blipm))
(if angb (setvar "angbase" angb))
(if angd (setvar "angdir" angd))
(if orthom(setvar "orthomode" orthom))
(command "layer" "s" #CLA "")
(command "color" #CCN)
(command "linetype""s" #CLT "")
(COMMAND "UNDO" "END")
(setvar "cmdecho" 1)
(setvar "osmode" oldosmode)
)
(defun SE-erro () (setq olderr *error* *error* SEerra))
(defun SEerra (s) ; If an error (such as CTRL-C) occurs
; while this command is active...
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(if blipm (setvar "blipmode"blipm))
(if angb (setvar "angbase" angb))
(if angd (setvar "angdir" angd))
(if orthom(setvar "orthomode" orthom))
(if #CLA (command "layer" "s" #CLA ""))
(if #CCN (command "color" #CCN))
(if #CLT (command "linetype" "s" #CLT ""))
(COMMAND "UNDO" "END")
(setvar "cmdecho" 1)
(setvar "osmode" oldosmode)
(setq *error* olderr) ; restore old *error* handler
(princ)
)
(defun CURRENT_COLOR ()
(setq #CCN (getvar "cecolor"))
(if (or (= #CCN "BYBLOCK")(= #CCN "BYLAYER"))
(setq #cn #CCN)
(progn
(setq #cr (atoi #CCN))
(if (and (> #cr 0) (< #cr )
(progn
(setq #CLIST (list "RED" "YELLOW" "GREEN" "CYAN" "BLUE" "MAGENTA" "WHITE"))
(setq #cn (nth (- #cr 1) #CLIST))
)
(setq #cn (rtos #cr 2 0))
)
)
)
)
(defun Try_Dimscale ()
(if (or (= (getvar "Dimscale") 0)(= (getvar "Dimscale") 1))
(progn
(initget 1)
(setq dms (getint "\nEnter SCALE: "))
)
(setq dms (getvar "Dimscale"))
);if
);defun
靠墙matthew on cad tutor将所有代码包装在“代码”标记之间。
Push the # button when posting - then paste your code between the two sets of brackets to do this. Russell,直到这一部分。
Command:INSERT-SECTMARK-BLOCK
Enter SCALE: 1
Select Center point of Section Bubble:
Rotation of Section mark?:
Section Number <1>: 1
Drawing Reference <2>: 2
"PersonalCADSUPPORTSec-ball.dwg": Can't find file in search path:
C:\Documents and Settings\matthew.russell\My Documents\ (current directory)
D:\Personal\CAD\Support\
D:\Personal\CAD\MENU\
D:\Personal\CAD\MENU\ICONS\
C:\sp2000\
X:\Acad\Support\Brisbane\Linetypes\
X:\Acad\Support\Brisbane\Fonts\
C:\Documents and Settings\matthew.russell\Application Data\Autodesk\AutoCAD
2009\R17.2\enu\support\
C:\Program Files\AutoCAD 2009\support\
C:\Program Files\AutoCAD 2009\fonts\
C:\Program Files\AutoCAD 2009\help\
C:\Program Files\AutoCAD 2009\express\
C:\Program Files\AutoCAD 2009\drv\
C:\Program Files\AutoCAD 2009\
*Invalid*
我将您给我的DWG存储在D:\Personal\CAD中,然后在我添加的代码(SETQ$PATH“D:\Personal\CAD”)中放置注释。
不必输入刻度,我如何更改该部分,使其自动获得刻度 比例在这里很好。
将比例改为1:500 1:100,看看你是否还有问题。
也会发生变化
(SETQ $PATH "D:\Personal\CAD")
到
(SETQ $PATH "D:/Personal/CAD/")
然后看看你怎么样。
看看这对你是否有效,然后告诉我 我已经把代码改成了你说的,但出于某种原因。我有。lsp文件已加载,我输入了命令,但出于某种原因,它表示这不是命令。这真的很令人费解。你自学过这样的编码吗?
我想对这段代码做的是把它改成
(defun Try_Dimscale ()
(if (or (= (getvar "Dimscale") 0)(= (getvar "Dimscale") 1))
(progn
(initget 1)
(setq dms (getint "\nEnter SCALE: "))
)
(setq dms (getvar "Dimscale"))
);if
);defun
到
(defun Try_Dimscale ()
(setvar "DIMSCALE" (/ 1.0 (getvar "CANNOSCALEVALUE"))))
);defun
这样,我设置的任何比例都会自动获得它,并在该比例中插入剖面标记。你认为这会起什么作用? 我得到了它加载我只是忘记了重新加载应用程序。但文件位置仍不工作。我想把它放在c盘上的文档中。正如它最初寻找的位置一样,因为当错误出现在它下面说找不到它时,它有一个“C:\Documents and Settings\matthew.russell\My Documents\(current directory)”,所以我想可能有什么东西使命令出于未知原因仍在那里搜索 matthew发布的代码显示了您将$PATH设置为什么 (SETQ $PATH "D:\Personal\CAD\Support\")
lisp文件和dwg文件都在support文件夹中 这就是这些积木的存放位置?
请将此代码更改为
(SETQ $PATH "D:/Personal/CAD/Support/")
您必须在lisp中反转“\”。
请告诉我你过得怎么样好的
页:
1
[2]