明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2219|回复: 1

生成法兰的原代码

[复制链接]
发表于 2012-4-19 11:51:10 | 显示全部楼层 |阅读模式
  1. (defun  c:fl ()
  2.   (setvar "cmdecho" 0)
  3.   (if (< (getvar "osmode") 16384)
  4.    (setvar "osmode" (+ (getvar "osmode") 16384)))     ; F3关
  5.    ;;输入参数
  6.    (setq zx( getpoint "\n 输入中心点:"))              
  7.    (setq d1( getdist "\n 输入钢管外径:"))              
  8.    (setq d3( getdist "\n 输入法兰外径:"))
  9.    ;;判断螺栓分布直径
  10.    (while(not (and (setq
  11.    d2 (getdist zx"\n 输入螺栓分布直径:"))(< d1 d2 d3)))
  12.        (princ "\n错误!螺栓分布直径应在内外圆之间!"))
  13.    ;;判断螺栓孔径
  14.    (while (not (and (setq d4 (getdist "\n 输入螺栓孔径:"))
  15.            (< d4 (/ (- d3 d1) 2))))
  16.     (princ "\n错误!螺栓孔径过大!"))
  17.    (setq n ( getint "\n 输入螺栓数量:"))
  18.    (setvar "dimcen" ( / d1 8));;;数值自定
  19.    (command"circle"  zx (/ d1 2))
  20.    (command "_.dimcenter" (nentselp (polar zx Pi ( / d1 2))))
  21.    (command "layer" "m" "zx" "c" "r" "zx" "")  ;建新图层
  22.    (command"circle"  zx (/ d2 2))
  23.    (command "layer" "s" 0 "")     ;恢复原图层
  24.    (command"circle"  zx (/ d3 2))
  25.    (setq sa (/ pi n))
  26.    (setq p2 (polar zx sa (/ d2 2)))
  27.    (command"circle"  p2 (/ d4 2))          ;;p2为螺栓孔中心
  28.    (command "_.array" (entlast) "" "p" zx n 360.0 "N")
  29.    (setq k1 (polar p2 (/ pi n) (- (/ d4 3 ))))
  30.    (setq k2 (polar p2 (/ pi n) (+ (/ d4 3 ))))
  31.    (command "pline" k1 k2 "" )
  32.    (command "_.array" (entlast) "" "p" zx n 360.0 "Y")
  33.    (setq jh (getdist"\n 请输入加强筋厚度:"))  ;;虽然加强筋宽度可以输入,但是不想要那么多参数,加强筋可以另外去画。
  34.    (setq sb (- pi pi))    ;;此处加强筋开始角度是0度,但是测试参数不能写0,不知道还有别的表达方法么。
  35.    (setq s (/ jh 2))
  36.    (setq s2 (/ d1 2))
  37.    (setq c ( - (/ (- d3 d1) 2) 5))
  38.    (setq p3 (polar zx sb s2))
  39.    (setq j1 (polar p3 (* 0.5 pi) s))   
  40.    (setq j2 (polar p3 (* -0.5 pi) s))   
  41.    (setq j3 (polar j1 sb c))
  42.    (setq j4 (polar j2 sb c))
  43.    (command "pline" j1 j2 j4 j3 "c" )
  44.    (command "_.array" (entlast) "" "p" zx n 360.0 "Y")
  45.    (setvar "osmode" (- (getvar "osmode") 16384)) ; F3开
  46.    (setvar "cmdecho" 1)
  47.    (Princ)
  48.   )

感谢这几天论坛里朋友的帮助,完成了一个小程序,用来生成法兰的,因为才学,所以我感觉代码中应该有能简化的地方,欢迎高手来指点,不过这段代码已经测试过,使用是没有问题的,现在把代码贴出来,目的是相互学习,让大家指出不妥之处,另外这个程序写完了,计划另外再写一个新的,有好多地方也要请教大家,希望各位不要保留,指点一下,新程序另外开贴请教吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-4-19 14:27:40 | 显示全部楼层
支持一下源码!建议添加加强筋选择,程序会更通用些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 14:24 , Processed in 0.156207 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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