我使用CraneGuy和lpseifert的lisp例程创建了类似的东西,只是稍微修改了代码:
变化:
-H: &W:已切换到x:&y:
-分离的x:&y:lisp(defun C:xy和(defun C:yx)生成“x”或“y”轴坐标尺寸
-消除了文本周围的框(setvar“dimgap”0
-设置默认的DimStyle(命令“-DimStyle”
-添加了层搜索/层创建者(tblesearch“层”)
-将新层设置为当前层(setvar“clayer”)
它工作得很好,我想把它展示给任何其他可能需要这样的东西或给别人更多想法的人。。。
顺便说一句,我是一个n00b的lisp,我只使用的想法,我可以在网上找到并调试它,直到它一起工作得很好。
- ;;;
- ;;; ========================= X Ordinates for In-Wall ===========================
- ;;;
- (defun C:xy (/ oldecho pt1 pt2 txtx txty dg )
- (setq oldecho (getvar "cmdecho" )
- dg (getvar "dimgap")
- );setq
- (setvar "cmdecho" 0)
- (setvar "dimgap" 0)
- (setq ptb (getpoint "Pick base point: "))
- (command "ucs" "o" ptb)
- (setq pt1 T)
- (while (not (null pt1))
- (setq pt1 (getpoint "\nPick coordinate point: "))
- (if pt1
- (progn
- (setq pt2 (getpoint pt1 "\nPick text location: "))
- (if pt2
- (progn
- (setq txtx (strcat "y:" (rtos (cadr pt1) 4 3) " "))
- (setq txty (strcat "x:" (rtos (car pt1) 4 3) "\n"))
- (command "-dimstyle" "r" "BLA 32 Ordinates")
- (if (null (tblsearch "layer" "B-DimXYOrdinates"))
- (command "-layer" "Make" "B-DimXYOrdinates" "C" "140" "" "L" "Continuous" "" "LW" ".25" "" "D" "B-DimXYOrdinates = Dimensional In-Wall Layout" "B-DimXYOrdinates" "")
- (setvar "clayer" "B-DimXYOrdinates")
- )
- (command "leader" pt1 pt2 "Annotation" txty "")
- )
- )
- )
- )
- );while
- (setvar "cmdecho" oldecho)
- (setvar "dimgap" dg)
- (princ)
- )
- ;;;
- ;;; ========================= Y Ordinates for In-Wall ===========================
- ;;;
- (defun C:yx (/ oldecho pt1 pt2 txtx txty dg )
- (setq oldecho (getvar "cmdecho" )
- dg (getvar "dimgap")
- );setq
- (setvar "cmdecho" 0)
- (setvar "dimgap" 0)
- (setq ptb (getpoint "Pick base point: "))
- (command "ucs" "o" ptb)
- (setq pt1 T)
- (while (not (null pt1))
- (setq pt1 (getpoint "\nPick coordinate point: "))
- (if pt1
- (progn
- (setq pt2 (getpoint pt1 "\nPick text location: "))
- (if pt2
- (progn
- (setq txtx (strcat "y:" (rtos (cadr pt1) 4 3) " "))
- (setq txty (strcat "x:" (rtos (car pt1) 4 3) "\n"))
- (command "-dimstyle" "r" "BLA 32 Ordinates")
- (if (null (tblsearch "layer" "B-DimXYOrdinates"))
- (command "-layer" "Make" "B-DimXYOrdinates" "C" "140" "" "L" "Continuous" "" "LW" ".25" "" "D" "B-DimXYOrdinates = Dimensional In-Wall Layout" "B-DimXYOrdinates" "")
- (setvar "clayer" "B-DimXYOrdinates")
- )
- (command "leader" pt1 pt2 "Annotation" txtx "")
- )
- )
- )
- )
- );while
- (setvar "cmdecho" oldecho)
- (setvar "dimgap" dg)
- (princ)
- )
|