YDPLDL 发表于 2007-12-21 21:17:00

[求助]请教一下,如何编定义标注样式的LSP?

烦劳各位高手,帮我编个能在开启CAD文件时自动建立几个标注样式,我不知用那个命令才行.多谢!

YDPLDL 发表于 2007-12-23 18:48:00

有这么难吗?也没人回个话.

liminnet 发表于 2008-5-15 09:54:00

xd-xdcad 发表于 2008-6-3 15:46:00

<p>打开别人的图形文件后,在需要的时候,能自动加载自己常用的图层\标注样式\文字样式就好了</p><p>至于新建图形,直接在模板里设置即可</p>

hb_xiaofen 发表于 2008-6-18 13:25:00

<p>这个比较简单,要建立哪几个标注样式?标注样式是什么样的?</p>

xd-xdcad 发表于 2008-6-19 12:17:00

<p>请问,若想建立的标注样式箭头形式不是默认的,想改成例如倾斜(OBLIQUE)</p><p>这部分程序如何写?</p>

hb_xiaofen 发表于 2008-7-24 21:52:00

<p>;;建立标注式</p><p>(defun dimblk1(/ p1 p2 mp p3 p4 ent1 ent2 ifdimblk )<br/>&nbsp; (setq p1 (list 0 0)<br/>&nbsp;p2 (polar p1 (* 0.25 pi) 2)<br/>&nbsp;mp (list (* 0.5 (car p2)) (* 0.5 (cadr p2)))<br/>&nbsp;p3(list (- (car mp) 1.5) (cadr mp))<br/>&nbsp;p4(list (+ (car mp) 1.5) (cadr mp))<br/>&nbsp;&nbsp; )<br/>&nbsp; (command "line" p3 p4 "")<br/>&nbsp; (setq ent1 (entlast))<br/>&nbsp; (command "pline" p1 "w" 0.5 0.5 p2 "")<br/>&nbsp; (setq ent2 (entlast))<br/>&nbsp; (setq ifdimblk (tblsearch "block" "DIM1"))<br/>&nbsp; (if ifdimblk (command "block" "DIM1" "y" mp ent1 ent2 "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "block" "DIM1" mp ent1 ent2 "")<br/>&nbsp; )<br/>&nbsp; (princ)<br/>)</p><p><br/>(defun dimblk2(/ p1 p2 p3 arrowblock flag)<br/>&nbsp; (setq p1 (list 0 0)<br/>&nbsp;p2 (list -2.5 0.43)<br/>&nbsp;p3 (list -2.5 -0.43)<br/>&nbsp; )<br/>&nbsp; (command "solid" p1 p2 p3 p1"")<br/>&nbsp; (setq arrowblock (entlast))<br/>&nbsp; (setq flag (tblsearch "block" "dim2"))<br/>&nbsp; (if (null flag)<br/>&nbsp;&nbsp;&nbsp; (command "block" "dim2" p1 arrowblock "")<br/>&nbsp;&nbsp;&nbsp; (progn (command "block" "dim2" "n") (entdel arrowblock))<br/>&nbsp; )<br/>)</p><p></p><p>(defun dimset(/ ifdimt )<br/>&nbsp; (dimblk1)<br/>&nbsp; (dimblk2)<br/>;;;&nbsp; (if (null (tblsearch "style" "DIMT"))(command "style" "DIMT" "txt.shx" 0 0.70 "" "" "" "" ))<br/>&nbsp; (command "style" "DIMT" "txt.shx" 0 0.70 "" "" "" "" )<br/>&nbsp; (setq ifdimt (tblsearch "style" "DIMT"))<br/>&nbsp; (if (not ifdimt) (progn (princ "\n 没有相应的字体")(exit)))<br/>&nbsp; (setq version (atof (substr (getvar "acadver") 1 2)))<br/>&nbsp; (setvar "dimexe" 1.25)<br/>&nbsp; (setvar "dimcen" 2.5)<br/>&nbsp; (setvar "dimgap" 0.625)<br/>&nbsp; (setvar "dimsah" 1)<br/>&nbsp; (setvar "dimblk1" "DIM1")<br/>&nbsp; (setvar "dimblk2" "DIM1")<br/>&nbsp; (setvar "dimasz" 1)<br/>&nbsp; (setvar "dimtxt" 3)<br/>&nbsp; (setvar "dimtxsty" "DIMT")<br/>&nbsp; (if (&gt;= version 15)(setvar "dimldrblk" "DIM2"))<br/>&nbsp; (if (&gt;= version 16)(setvar "dimdsep" "."))<br/>&nbsp; (setvar "dimclre" 0)<br/>&nbsp; (setvar "dimclrd" 0)<br/>&nbsp; (setvar "dimclrt" 0)<br/>&nbsp; (setvar "dimexo" 2.5)<br/>&nbsp; (if (&gt;= version 15)(setvar "dimtmove" 2))<br/>)</p><p>(defun c:bz()<br/>&nbsp; (ini)<br/>&nbsp; (dimset)<br/>&nbsp; (setvar "dimscale" scal)<br/>&nbsp; (if (= scal 1) (setvar "dimlfac" 10)(setvar "dimlfac" 0.1))<br/>&nbsp; (if (not (tblsearch "dimstyle" "SCAL10"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL10")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL10" "y")<br/>&nbsp; )<br/>&nbsp; (if (= scal 1) (setvar "dimlfac" 20)(setvar "dimlfac" 0.2))<br/>&nbsp; (if (not (tblsearch "dimstyle" "SCAL20"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL20")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL20" "y")<br/>&nbsp; )<br/>&nbsp; (if (= scal 1) (setvar "dimlfac" 30)(setvar "dimlfac" 0.3))<br/>&nbsp; (if (not (tblsearch "dimstyle" "SCAL30"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL30")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL30" "y")<br/>&nbsp; )<br/>&nbsp; (if (= scal 1) (setvar "dimlfac" 50)(setvar "dimlfac" 0.5))<br/>&nbsp; (if (not (tblsearch "dimstyle" "SCAL50"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL50")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL50" "y")<br/>&nbsp; )<br/>&nbsp; (if (= scal 1) (setvar "dimlfac" 100)(setvar "dimlfac" 1.0))<br/>&nbsp; (if (not (tblsearch "dimstyle" "SCAL100"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL100")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (command "dimstyle" "s" "SCAL100" "y")<br/>&nbsp; )<br/>&nbsp; (princ "\n已经建立了20 30 50 100 比例的标注样式")<br/>&nbsp; (reset)<br/>&nbsp; (princ)<br/>)</p><p></p><p></p><p>我以前写过一个,你自己看看吧,</p>

samshs 发表于 2008-12-31 18:34:00

<p>如有中文注明就好啦</p>

qing6688 发表于 2009-2-5 12:33:00

<p>个人感觉,这种功能用lisp不好实现。因要使标注样式美观,线性,坐标,角度,R角等设置都不尽相同。即使用lisp能设置,lisp也很长。栽入内存,影响绘图速度。&nbsp; </p><p>&nbsp;&nbsp;&nbsp; 我个人做法是,找一个文件,设成样板。用AutoCAD设计中心功能,将标注样式载入,再将新样式设成当前标注样式。一般用设计中心不是很多,以后打开设计中心,就是上一次载入状态,再直接选中拖入,很方便。</p>

wenhong_teng 发表于 2009-3-6 11:10:00

不能用?????????????
页: [1] 2
查看完整版本: [求助]请教一下,如何编定义标注样式的LSP?