孔ID的Lisp
需要修改附加的Lisphttp://www.asmitools.com/Files/Lisps/Ordi.html要选择孔,请按以下格式放置文本:*孔的左侧h/s:直径X Y
*孔的右侧h/s:Y X直径
有关详细信息,请下载附件文件。
非常感谢您的帮助
谢谢你。
Lisp for Holes ID.zip
我不能编辑ordi。lsp到你的西装
试试另一个
在您的图纸上进行了轻微测试
(defun C:LC (/ ang base color dia ds elist en ent ep layer p1 p2 p3
pt rad sp txtheight txtstyle xs xv ys yv)
(setvar "osmode" 32)
(setvar "orthomode" 1)
(setq txtheight 35.0
txtstyle "ISOCP"
layer "DIMS"
color 2
)
(setq base (getpoint "\nPick base point (red cross): "))
(while (setq ent (entsel "\nSelect circle (or press Enter to Exit)>> "))
(setq en (car ent)
elist (entget en)
pt (cdr (assoc 10 elist))
xv (abs (- (car base)(car pt)))
xs (rtos xv 2 0)
yv (abs (- (cadr base)(cadr pt)))
ys (rtos yv 2 0)
rad (cdr (assoc 40 elist))
dia (* rad 2)
ds (rtos dia 2 1)
)
(setq ep (getpoint pt "\nSpecify end point of leader line >>"))
(setq ang (angle pt ep)
ep (polar pt ang 700)
sp (polar pt ang dia)
p1 (polar pt ang 250)
p2 (polar p1 ang 150)
p3 (polar p2 ang 150)
p1 (polar p1 (/ pi 2) (/ txtheight 2))
p2 (polar p2 (/ pi 2) (/ txtheight 2))
p3 (polar p3 (/ pi 2) (/ txtheight 2))
)
(entmake (list '(0 . "LINE")
'(100 . "AcDbEntity")
(cons 67
(if (= 0 (getvar "tilemode"))
1
0))
(cons 410 (getvar "ctab"))
(cons 8 layer)
(cons 62 7)
'(100 . "AcDbLine")
(cons 10 sp)
(cons 11 ep)
)
)
(entmake
(list
'(0 . "TEXT")
'(100 . "AcDbEntity")
(cons 67
(if (= 0 (getvar "tilemode"))
1
0))
(cons 410 (getvar "ctab"))
(cons 8 layer)
(cons 62 color)
'(100 . "AcDbText")
(cons 10 p1)
(cons 11 (list (car p1) (- (cadr p1) (/ txtheight 2)) 0.0))
(cons 40 txtheight)
(cons 1 ys)
'(50 . 0.0)
'(41 . 1.0)
'(51 . 0.0)
(cons 7txtstyle)
'(71 . 0)
'(72 . 1)
'(73 . 1)))
(entmake
(list
'(0 . "TEXT")
'(100 . "AcDbEntity")
(cons 67
(if (= 0 (getvar "tilemode"))
1
0))
(cons 410 (getvar "ctab"))
(cons 8 layer)
(cons 62 color)
'(100 . "AcDbText")
(cons 10 p2)
(cons 11 (list (car p2) (- (cadr p2) (/ txtheight 2)) 0.0))
(cons 40 txtheight)
(cons 1 xs)
'(50 . 0.0)
'(41 . 1.0)
'(51 . 0.0)
(cons 7txtstyle)
'(71 . 0)
'(72 . 1)
'(73 . 1)))
(entmake
(list
'(0 . "TEXT")
'(100 . "AcDbEntity")
(cons 67
(if (= 0 (getvar "tilemode"))
1
0))
(cons 410 (getvar "ctab"))
(cons 8 layer)
(cons 62 color)
'(100 . "AcDbText")
(cons 10 p1)
(cons 11 (list (car p3) (- (cadr p3) (/ txtheight 2)) 0.0))
(cons 40 txtheight)
(cons 1 ds)
'(50 . 0.0)
'(41 . 1.0)
'(51 . 0.0)
(cons 7txtstyle)
'(71 . 0)
'(72 . 1)
'(73 . 1)))
)
(princ)
)
(prompt "\n >>> Type LC to run...")
(prin1)
~'J'~ 谢谢你,菲索
Lisp是可以的,但如果你能使引线作为命令dimmotic工作,这样我们就可以把它放在任何我们喜欢的地方。Lisp程序会很完美。
干杯
PP。
嗨,菲菲,早上好
现在在我这一方为时已晚
只会在明天帮你
干杯
~'J'~ 非常感谢,菲索。
有关详细部分,请参阅附件文件。
干杯
这里是上一个lisp,试试看
(部分借用ASMI的lisp)
我过一会儿再看你的新画
;; local defun
(defun dxf (key elist)
(cdr (assoc key elist))
)
;; main part
(defun C:LC (/ *error* ang base color dia ds dxflist elist en ent ep layer osm ort
p1 p2 p3 pt rad sp txtheight txtstyle xs xv ys yv vpt)
;; error trapping routine
(defun *error* (msg)
(if
(and msg
(vl-position
msg
'("console break"
"Function cancelled"
"quit / exit abort"
)
)
)
(princ (strcat "\n** Error: " msg " **"))
(princ "\nError!")
)
(command "undo" "end")
(if osm (setvar "osmode" osm))
(if ort (setvar "orthomode" ort))
)
(command "undo" "begin")
(setq osm (getvar "osmode"))
(setvar "osmode" 32)
(setq ort (getvar "orthomode"))
(setvar "orthomode" 0)
(setq txtheight 35.0
txtstyle "ISOCP"
layer "DIMS"
color 2
)
(setq base (getpoint "\nPick base point (red cross): "))
(while (setq ent (entsel "\nSelect circle (or press Enter to Exit)>> "))
(setq en (car ent)
elist (entget en)
pt (cdr (assoc 10 elist))
xv (abs (- (car base)(car pt)))
xs (rtos xv 2 0)
yv (abs (- (cadr base)(cadr pt)))
ys (rtos yv 2 0)
rad (cdr (assoc 40 elist))
dia (* rad 2)
ds (rtos dia 2 1)
)
(command "_.dimordinate" "_non" pt "_t" (strcat ys "\t" xs "\t" ds) pause)
(setq dxflist (entget (entlast))
vpt (dxf 14 dxflist)
)
(if(> (* pi 1.5) (angle pt vpt) (/ pi 2))
(setq dxflist (subst (cons 1 (strcat ds "\t" xs "\t" ys))(assoc 1 dxflist) dxflist))
(setq dxflist (subst (cons 1 (strcat ys "\t" xs "\t" ds))(assoc 1 dxflist) dxflist))
)
(entmod dxflist)
(entupd (entlast))
)
(*error* nil)
(princ)
)
(prompt "\n >>> Type LC to run...")
(prin1)
~'J'~ 谢谢菲索。
祝你圣诞快乐,新年快乐!
祝你和你的家人圣诞快乐,新年快乐!
上帝保佑你!
谢谢,
~'J'~ 嗨,菲索,
我在选择一块圆时遇到了一个问题。你能帮我解决这个问题吗?顺便问一下,你能添加一个选项,允许选择任何端点,然后将文本放置在与普通格式相同的位置,但将“Note”替换为圆的直径吗。
左侧:注释X Y
右侧:Y X注释
非常感谢。 嗨,菲菲
这对我来说还不够清楚:这意味着什么
-圆形块?
更好的是,你可以上传一张照片或
带说明的样本图纸(作为2007年或更旧版本)
~'J'~
页:
[1]
2