明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1118|回复: 2

[已解答] LISP代码运行后有点小问题,求帮助,谢谢

[复制链接]
发表于 2014-11-18 17:00:19 | 显示全部楼层 |阅读模式
代码如下,是建立图层、文字样式、标注样式的,但是多建几个文字样式和标注样式就不行了。还有我想加一个打印样式进去,这样一键可以设置好模板,到别人的图里面也不担心了
  1. (DEFUN C:JMB ()
  2.   (COMMAND "LAYER" "M" "轮廓线-粗" "C" "7" "" "")
  3.   (COMMAND "LAYER" "M" "轮廓线-中" "C" "2" "" "")
  4.   (COMMAND "LAYER" "M" "轮廓线-细" "C" "5" "" "")
  5.   (COMMAND "LAYER" "M" "填充" "C" "252" "" "")
  6.   (COMMAND "LAYER" "M" "标注" "C" "3" "" "")
  7.   (COMMAND "LAYER" "M" "文字" "C" "4" "" "")
  8.   (COMMAND "CLAYER" "0")
  9. ;;;接下来建立文字样式   
  10. (entmake (list
  11. '(0 . "STYLE")
  12. '(100 . "AcDbSymbolTableRecord")
  13. '(100 . "AcDbTextStyleTableRecord")
  14. '(2 . "BJ")                      ;样式名
  15. '(70 . 0)                      ;标准标志值
  16. '(40 . 0.0)                      ;预设文字高度
  17. '(41 . 1.0)                      ;字宽比例
  18. '(3 . "gbenor.shx")              ;主字体文件名
  19. '(4 . "gbcbig.shx")))              ;大字体文件名
  20. ;;;接下来建立标注样式
  21. (progn
  22. (command "-DIMSTYLE" "s" "DIMBJ");建立布局标注
  23.     (setvar "DIMDLI" 7.0000) ;尺寸线间距(基线间距)
  24.     (setvar "DIMEXE" 2.0000) ;尺寸界线在尺寸线上(超出尺寸线)
  25.     (setvar "DIMEXO" 2.0000) ;尺寸界线原点偏移
  26.     (setvar "DIMBLK" "_ArchTick") ;箭头块名
  27.     (setvar "DIMBLK1" "_ArchTick") ;第一个箭头块名
  28.     (setvar "DIMBLK2" "_ArchTick") ;第二个箭头块名
  29.     (setvar "DIMLDRBLK" "_DOT") ;引线块名
  30.     (setvar "DIMASZ" 2.0) ;箭头大小
  31.     (setvar "DIMTXSTY" "BJ") ;文字样式
  32.     (setvar "DIMCLRT" 4)  ;标注文字颜色(绿色)
  33.     (setvar "DIMTXT" 2.500) ;文字高度
  34.     (setvar "DIMTAD" 1)   ;文字位于尺寸线上方
  35.     (setvar "DIMJUST" 0)  ;将文字置于尺寸线之上,并在尺寸界线之间置中对正
  36.     (setvar "DIMTXTDIRECTION" 0) ;以从左到右阅读的样式显示标注文字
  37.     (setvar "DIMGAP" 0.8) ;尺寸线和文字的间距
  38.     (setvar "DIMTIX" 1)  ;将文字放置于尺寸界线内侧
  39.     (setvar "DIMTMOVE" 2) ;允许标注文字自由移动而不用添加引线
  40.    
  41.     (setvar "DIMSCALE" 0.0) ;将标注缩放到布局(模型作图就修改)

  42.     (setvar "DIMLUNIT" 2) ;线性标注单位格式
  43.     (setvar "DIMDEC" 0)  ;精度
  44.     (setvar "DIMDSEP" ".") ;小数分隔符
  45.     (princ "")
  46.     )
  47. ;-------------------------------------------------------------------
  48. (progn
  49. (command "-DIMSTYLE" "s" "DIM-100");建立比例100标注
  50.     (setvar "DIMDLI" 7.0000) ;尺寸线间距(基线间距)
  51.     (setvar "DIMEXE" 2.0000) ;尺寸界线在尺寸线上(超出尺寸线)
  52.     (setvar "DIMEXO" 2.0000) ;尺寸界线原点偏移
  53.     (setvar "DIMBLK" "_ArchTick") ;箭头块名
  54.     (setvar "DIMBLK1" "_ArchTick") ;第一个箭头块名
  55.     (setvar "DIMBLK2" "_ArchTick") ;第二个箭头块名
  56.     (setvar "DIMLDRBLK" "_DOT") ;引线块名
  57.     (setvar "DIMASZ" 2.0) ;箭头大小
  58.     (setvar "DIMTXSTY" "BJ") ;文字样式
  59.     (setvar "DIMCLRT" 4)  ;标注文字颜色(绿色)
  60.     (setvar "DIMTXT" 2.500) ;文字高度
  61.     (setvar "DIMTAD" 1)   ;文字位于尺寸线上方
  62.     (setvar "DIMJUST" 0)  ;将文字置于尺寸线之上,并在尺寸界线之间置中对正
  63.     (setvar "DIMTXTDIRECTION" 0) ;以从左到右阅读的样式显示标注文字
  64.     (setvar "DIMGAP" 0.8) ;尺寸线和文字的间距
  65.     (setvar "DIMTIX" 1)  ;将文字放置于尺寸界线内侧
  66.     (setvar "DIMTMOVE" 2) ;允许标注文字自由移动而不用添加引线
  67.    
  68.     (setvar "DIMSCALE" 100.0) ;将标注缩放到布局(模型作图就修改)

  69.     (setvar "DIMLUNIT" 2) ;线性标注单位格式
  70.     (setvar "DIMDEC" 0)  ;精度
  71.     (setvar "DIMDSEP" ".") ;小数分隔符
  72.     (princ "")
  73.     )   

  74. )
发表于 2014-11-18 21:18:46 | 显示全部楼层
注意命令顺序
  1. (defun C:JMB ()
  2.   (command "LAYER" "M" "轮廓线-粗" "C" "7" "" "")
  3.   (command "LAYER" "M" "轮廓线-中" "C" "2" "" "")
  4.   (command "LAYER" "M" "轮廓线-细" "C" "5" "" "")
  5.   (command "LAYER" "M" "填充" "C" "252" "" "")
  6.   (command "LAYER" "M" "标注" "C" "3" "" "")
  7.   (command "LAYER" "M" "文字" "C" "4" "" "")
  8.   (setvar "CLAYER" "0")
  9. ;;;接下来建立文字样式   
  10. (entmake (list
  11. '(0 . "STYLE")
  12. '(100 . "AcDbSymbolTableRecord")
  13. '(100 . "AcDbTextStyleTableRecord")
  14. '(2 . "BJ")                      ;样式名
  15. '(70 . 0)                      ;标准标志值
  16. '(40 . 0.0)                      ;预设文字高度
  17. '(41 . 1.0)                      ;字宽比例
  18. '(3 . "gbenor.shx")              ;主字体文件名
  19. '(4 . "gbcbig.shx")))              ;大字体文件名
  20. ;;;接下来建立标注样式
  21. (progn
  22.   (setvar "DIMDLI" 7.0) ;尺寸线间距(基线间距)
  23.   (setvar "DIMEXE" 2.0) ;尺寸界线在尺寸线上(超出尺寸线)
  24.   (setvar "DIMEXO" 2.0) ;尺寸界线原点偏移
  25.   (setvar "DIMBLK" "_ArchTick") ;箭头块名
  26.   (setvar "DIMBLK1" "_ArchTick") ;第一个箭头块名
  27.   (setvar "DIMBLK2" "_ArchTick") ;第二个箭头块名
  28.   (setvar "DIMLDRBLK" "_DOT") ;引线块名
  29.   (setvar "DIMASZ" 2.0) ;箭头大小
  30.   (setvar "DIMTXSTY" "BJ") ;文字样式
  31.   (setvar "DIMCLRT" 4)  ;标注文字颜色(绿色)
  32.   (setvar "DIMTXT" 2.5) ;文字高度
  33.   (setvar "DIMTAD" 1)   ;文字位于尺寸线上方
  34.   (setvar "DIMJUST" 0)  ;将文字置于尺寸线之上,并在尺寸界线之间置中对正
  35. ;  (setvar "DIMTXTDIRECTION" 0) ;以从左到右阅读的样式显示标注文字
  36.   (setvar "DIMGAP" 0.8) ;尺寸线和文字的间距
  37.   (setvar "DIMTIX" 1)  ;将文字放置于尺寸界线内侧
  38.   (setvar "DIMTMOVE" 2) ;允许标注文字自由移动而不用添加引线
  39.   (setvar "DIMSCALE" 0.0) ;将标注缩放到布局(模型作图就修改)
  40.   (setvar "DIMLUNIT" 2) ;线性标注单位格式
  41.   (setvar "DIMDEC" 0)  ;精度
  42.   (setvar "DIMDSEP" ".") ;小数分隔符
  43.   (if (tblsearch "DIMSTYLE" "DIMBJ")
  44.    (command "-DIMSTYLE" "S" "DIMBJ" "Y");建立布局标注
  45.    (command "-DIMSTYLE" "R" "DIMBJ")
  46.   )
  47. )
  48. ;-------------------------------------------------------------------
  49. (progn
  50.   (setvar "DIMDLI" 7.0) ;尺寸线间距(基线间距)
  51.   (setvar "DIMEXE" 2.0) ;尺寸界线在尺寸线上(超出尺寸线)
  52.   (setvar "DIMEXO" 2.0) ;尺寸界线原点偏移
  53.   (setvar "DIMBLK" "_ArchTick") ;箭头块名
  54.   (setvar "DIMBLK1" "_ArchTick") ;第一个箭头块名
  55.   (setvar "DIMBLK2" "_ArchTick") ;第二个箭头块名
  56.   (setvar "DIMLDRBLK" "_DOT") ;引线块名
  57.   (setvar "DIMASZ" 2.0) ;箭头大小
  58.   (setvar "DIMTXSTY" "BJ") ;文字样式
  59.   (setvar "DIMCLRT" 4)  ;标注文字颜色(绿色)
  60.   (setvar "DIMTXT" 2.5) ;文字高度
  61.   (setvar "DIMTAD" 1)   ;文字位于尺寸线上方
  62.   (setvar "DIMJUST" 0)  ;将文字置于尺寸线之上,并在尺寸界线之间置中对正
  63. ;  (setvar "DIMTXTDIRECTION" 0) ;以从左到右阅读的样式显示标注文字
  64.   (setvar "DIMGAP" 0.8) ;尺寸线和文字的间距
  65.   (setvar "DIMTIX" 1)  ;将文字放置于尺寸界线内侧
  66.   (setvar "DIMTMOVE" 2) ;允许标注文字自由移动而不用添加引线
  67.   (setvar "DIMSCALE" 100.0) ;将标注缩放到布局(模型作图就修改)
  68.   (setvar "DIMLUNIT" 2) ;线性标注单位格式
  69.   (setvar "DIMDEC" 0)  ;精度
  70.   (setvar "DIMDSEP" ".") ;小数分隔符
  71.   (if (tblsearch "DIMSTYLE" "DIM-100")
  72.    (command "-DIMSTYLE" "S" "DIM-100" "Y")
  73.    (command "-DIMSTYLE" "S" "DIM-100");建立比例100标注
  74.   )
  75. )
  76. (princ)
  77. )
 楼主| 发表于 2014-11-18 23:23:12 | 显示全部楼层
ZZXXQQ 发表于 2014-11-18 21:18
注意命令顺序

多谢!虽然有点小问题,但是被我修复了!大概有些懂得这意思了,以后再慢慢完善。附上运行成功的代码
  1. (defun C:JMB ()
  2.   (command "LAYER" "M" "轮廓线-粗" "C" "7" "" "")
  3.   (command "LAYER" "M" "轮廓线-中" "C" "2" "" "")
  4.   (command "LAYER" "M" "轮廓线-细" "C" "5" "" "")
  5.   (command "LAYER" "M" "填充" "C" "252" "" "")
  6.   (command "LAYER" "M" "标注" "C" "3" "" "")
  7.   (command "LAYER" "M" "文字" "C" "4" "" "")
  8.   (setvar "CLAYER" "0")
  9. ;;;接下来建立文字样式   
  10. (entmake (list
  11. '(0 . "STYLE")
  12. '(100 . "AcDbSymbolTableRecord")
  13. '(100 . "AcDbTextStyleTableRecord")
  14. '(2 . "BJ")                      ;样式名
  15. '(70 . 0)                      ;标准标志值
  16. '(40 . 0.0)                      ;预设文字高度
  17. '(41 . 1.0)                      ;字宽比例
  18. '(3 . "gbenor.shx")              ;主字体文件名
  19. '(4 . "gbcbig.shx")))              ;大字体文件名

  20. ;;;接下来建立标注样式
  21. (progn
  22.   (setvar "DIMDLI" 7.0) ;尺寸线间距(基线间距)
  23.   (setvar "DIMEXE" 2.0) ;尺寸界线在尺寸线上(超出尺寸线)
  24.   (setvar "DIMEXO" 2.0) ;尺寸界线原点偏移
  25.   (setvar "DIMBLK" "_ArchTick") ;箭头块名
  26.   (setvar "DIMBLK1" "_ArchTick") ;第一个箭头块名
  27.   (setvar "DIMBLK2" "_ArchTick") ;第二个箭头块名
  28.   (setvar "DIMLDRBLK" "_DOT") ;引线块名
  29.   (setvar "DIMASZ" 2.0) ;箭头大小
  30.   (setvar "DIMTXSTY" "BJ") ;文字样式
  31.   (setvar "DIMCLRT" 4)  ;标注文字颜色(绿色)
  32.   (setvar "DIMTXT" 2.5) ;文字高度
  33.   (setvar "DIMTAD" 1)   ;文字位于尺寸线上方
  34.   (setvar "DIMJUST" 0)  ;将文字置于尺寸线之上,并在尺寸界线之间置中对正
  35.   (setvar "DIMTXTDIRECTION" 0) ;以从左到右阅读的样式显示标注文字
  36.   (setvar "DIMGAP" 0.8) ;尺寸线和文字的间距
  37.   (setvar "DIMTIX" 1)  ;将文字放置于尺寸界线内侧
  38.   (setvar "DIMTMOVE" 2) ;允许标注文字自由移动而不用添加引线
  39.   (setvar "DIMSCALE" 0.0) ;将标注缩放到布局(模型作图就修改)
  40.   (setvar "DIMLUNIT" 2) ;线性标注单位格式
  41.   (setvar "DIMDEC" 0)  ;精度
  42.   (setvar "DIMDSEP" ".") ;小数分隔符
  43.   (if (tblsearch "DIMSTYLE" "DIMBJ")
  44.    (command "-DIMSTYLE" "S" "DIMBJ" "Y");建立布局标注
  45.    (command "-DIMSTYLE" "S" "DIMBJ")
  46.   )
  47. )
  48. ;-------------------------------------------------------------------
  49. (progn
  50.   (setvar "DIMDLI" 7.0) ;尺寸线间距(基线间距)
  51.   (setvar "DIMEXE" 2.0) ;尺寸界线在尺寸线上(超出尺寸线)
  52.   (setvar "DIMEXO" 2.0) ;尺寸界线原点偏移
  53.   (setvar "DIMBLK" "_ArchTick") ;箭头块名
  54.   (setvar "DIMBLK1" "_ArchTick") ;第一个箭头块名
  55.   (setvar "DIMBLK2" "_ArchTick") ;第二个箭头块名
  56.   (setvar "DIMLDRBLK" "_DOT") ;引线块名
  57.   (setvar "DIMASZ" 2.0) ;箭头大小
  58.   (setvar "DIMTXSTY" "BJ") ;文字样式
  59.   (setvar "DIMCLRT" 4)  ;标注文字颜色(绿色)
  60.   (setvar "DIMTXT" 2.5) ;文字高度
  61.   (setvar "DIMTAD" 1)   ;文字位于尺寸线上方
  62.   (setvar "DIMJUST" 0)  ;将文字置于尺寸线之上,并在尺寸界线之间置中对正
  63.   (setvar "DIMTXTDIRECTION" 0) ;以从左到右阅读的样式显示标注文字
  64.   (setvar "DIMGAP" 0.8) ;尺寸线和文字的间距
  65.   (setvar "DIMTIX" 1)  ;将文字放置于尺寸界线内侧
  66.   (setvar "DIMTMOVE" 2) ;允许标注文字自由移动而不用添加引线
  67.   (setvar "DIMSCALE" 100.0) ;将标注缩放到布局(模型作图就修改)
  68.   (setvar "DIMLUNIT" 2) ;线性标注单位格式
  69.   (setvar "DIMDEC" 0)  ;精度
  70.   (setvar "DIMDSEP" ".") ;小数分隔符
  71.   (if (tblsearch "DIMSTYLE" "DIM-100")
  72.    (command "-DIMSTYLE" "S" "DIM-100" "Y")
  73.    (command "-DIMSTYLE" "S" "DIM-100");建立比例100标注
  74.   )
  75. )
  76. (princ)
  77. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-23 17:46 , Processed in 0.169570 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表