几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » 数据库ObjectDBX
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-28, 01:17 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】帮忙看看自动做图框的lsp,能做图框,为什么不是块。

帮忙看看自动做图框的lsp,能做图框,为什么不是块。
www.dimcax.com
帮忙看看自动做图框的lsp,能做图框,为什么不是块。
想做成一个图框块。
;;; 此程序用于绘制图框.
;;;-------------------------------------------------------------------------
(setq i (getvar "dimscale")) ;获取比例
(setvar "regenmode" 1) ;保证autocad不询问是否重新生成
(setvar "cmdecho" 0) ;屏蔽command显示
(setq cl (getvar "clayer") osm (getvar "osmode"))
(command "limits" "off")
(setvar "osmode" 0)
(initget "0 1 2 3 4")
(princ "\nsmcad-lsp, 绘制图框 ...")
(setq tf (getkword "\n选择标准图幅(0-4)<4>:"))
(if (not tf) (setq tf 4) (setq tf (atoi tf)))
(if (= tf 4) (progn
(initget "hor ver")
(setq hv (getkword "\nstyle(ver/hor)<ver>:"))
(if (not hv) (setq hv "ver"))
(if (= hv "hor") (setq bb 210. ll 297.) (setq bb 297. ll 210.))) ;progn
) ;if
(cond ((= tf 0) (setq bb 841. ll 1188.)) ;841x1188
((= tf 1) (setq bb 594. ll 841.)) ;546x841
((= tf 2) (setq bb 420. ll 594.))
((= tf 3) (setq bb 297. ll 420.))
) ;cond
(setq aa 25 i ii)
(if (< tf 3) (setq cc 10) (setq cc 5))
(setq aa (* aa i) ll (* ll i) bb (* bb i) cc (* cc i))
(command "layer" "s" "0" "")
(command "pline" '(0 0) "w" (* i 0.5) (* i 0.5)
(polar '(0 0) 0 (- ll aa cc))
(polar (getvar "lastpoint") (/ pi 2) (- bb cc cc))
(polar '(0 0) (/ pi 2) (- bb cc cc)) "cl")
(command "layer" "s" "0" "")
(command "pline"
(setq pti (list (- aa) (- cc))) "w" 0 0
(polar (getvar "lastpoint") 0 ll)
(setq ptm (polar (getvar "lastpoint") (/ pi 2) bb))
(polar (list (- aa) (- cc)) (/ pi 2) bb) "cl")
(command "limits" (polar pti -2.356 i) (polar ptm 0.785 i)
"zoom" "e")
(setq fn (strcat " file name: " (strcase (getvar "dwgname")) ".dwg"))
(command "insert" "/block/sign.dwg" "0,0" i i 0
"text" (list (* -1.5 i) (* 105 i)) (* i 3) 90 fn)
(command "layer" "s" cl "")
(setvar "osmode" osm)
(princ)
(defun c:autostbk()
(princ "\nauto camd (ver.szp), automatic-set a block...")
(setq osmode_save (getvar "osmode"))
(setvar "osmode" 0)
(setq sss (ssget))
(if sss (progn
(setq cd (rtos (getvar "cdate") 2 6))
(setq cd (substr cd (- (strlen cd) 5)))
(command "block" (strcat "auto-set-" cd) (getvar "viewctr") sss "")
(command "insert" (strcat "auto-set-" cd) (getvar "viewctr") 1 1 0)
) ;progn
) ;if
(setvar "osmode" osmode_save)
(princ)
)
(c:autostbk)

应该是形成一个块,只是需人工选择作成块的元素范围
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 04:17 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多