Muhammad Khalid 发表于 2022-7-6 07:03:11

带autolisp的I梁

大家好,刚刚加入进来的人都想知道,如果任何一个有很好的lisp知识的人可以通过下面的例行程序,顺便说一句,这是生成一个I梁输入用户和不工作。它确实接受输入,但当我运行它时,模型空间中没有绘制任何内容。我会非常感激的。提前谢谢。
 
注意,突出显示的部分是红色的,嗯,嗯,我真的不确定。任何时候,图标都不是例程的一部分
 
例行程序从此处开始
 
(定义c:ukc()
 
;定义函数
 
;********************************************************
 
;保存系统变量
 
(setq oldsnap(getvar“osmode”))
;保存捕捉设置
 
(setq oldblipmode(getvar“blipmode”))
;保存blipmode设置
 
;********************************************************
;关闭系统变量
 
(setvar“osmode”0)
;关闭snap
 
(setvar“blipmode”0)
;关闭Blipmode
 
;********************************************************
 
;获取用户输入
 
(initget(+1 2 3))
;检查用户输入
 
(setq wl(getdist“\n Web长度:”)
;获取Web长度的长度
 
(initget(+1 2 3))
;检查用户输入
 
(setq fl(getdist“\n法兰长度:”)
;获取法兰的长度
 
(initget(+1 2 3))
;检查用户输入
 
(setq wt(getdist“\n网络厚度:”))
;获取腹板厚度
 
(initget(+1 2 3))
;检查用户输入
 
(setq ft(getdist“\n语言厚度:”)
;获取法兰厚度
 
(initget(+1 2 3))
;检查用户输入
 
(setq rr(getdist“\n根半径:”)
;获取根半径
 
(initget(+1 2 3))
;检查用户输入
 
(setq nd(getdist“\n节的深度:”))
;获取截面深度
 
;用户输入结束
;*********************************************************
;获取插入点
 
(setvar“osmode”32)
;打开snap
 
(虽然
;while循环的开始
 
(setq ip(getpoint“\n插入点:”)
;获取插入点
 
(setvar“osmode”0)
;关闭snap
 
;********************************************************
;极坐标计算的开始
 
(setq p2(极性ip(dtr 90.0)(/nd 2)))
(setq p3(极轴p2(dtr 180.0)(/fl 2)))
(setq p4(极轴p3(dtr 270.0)英尺))
(setq p5(极性p4(dtr 0.0)(((/fl 2)(/wt 2))rr)))
(setq p56(极性p5(dtr 270.0)rr))
(setq p6(极性p56(dtr 0.0)rr))
(setq p7(极坐标p6(dtr 270.0)wl))
(setq p78(极坐标p7(dtr 180.0)rr))
(setq p8(极坐标p78(dtr 270.0)rr))
(setq p9(极坐标p8(dtr 180)rr))
(setq p10(polar p9(dtr 270)ft))
(setq p11(极性p10(dtr 0.0)fl))
(setq p12(极坐标p11(dtr 90)英尺))
(setq p13(极性p12(dtr 180.0)(((/fl 2)(/wt 2))rr)))
(setq p1314(极性p13(dtr 90)rr))
(setq p14(极坐标p1314(dtr 180.0)rr))
(setq p15(极坐标p14(dtr 90.0)wl))
(setq p1516(极性p15(dtr 0.0)rr))
(setq p16(极坐标p1516(dtr 90.0)rr))
(setq p17(极性p16(dtr 0.0)(((/fl 2)(/wt 2))rr)))
(setq p18(极坐标p17(dtr 90.0)英尺))
 
;极坐标计算结束
 
;**********************************************************
 
;启动命令功能
 
(命令“行”p2 p3 p4 p5“c”
“行”p6 p7“”
“行”p8 p9 p10 p11 p12 p13“”
“行”p14 p15“”
“Line”p16 p17 p18 p2“”
“arc”p56 p6 p5“”
“arc”p78 p8 p7“”
“arc”p1314 p14 p13“”
“arc”p1516 p16 p15“”
 
)   ;End命令
;命令结束功能
 
 
;**********************************************************
 
(setvar“osmode”32)
;打开snap
 
);while循环结束
 
;**********************************************************
 
;重置系统变量
 
(setvar“osmode”oldsnap)
;重置捕捉
 
(setvar“blipmode”oldblipmode)
;重置blipmode
 
;**********************************************************
 
(普林斯)
;干净地完成
 
)    ;defun结束
 
;**********************************************************
 
;此函数用于将度转换为弧度。
 
(defun dtr(x)
;定义度到弧度函数
 
(*π(/x 180.0))
;将角度除以180,然后
;将结果乘以常数PI
 
)   ;功能结束
 
;**********************************************************
(普林斯);干净地装载
;**********************************************************

ReMark 发表于 2022-7-6 07:13:45

我假设你这样做是为了用第二个原因(也许?)自学Lisp程序创造一些你在工作中会用到的东西。是/否?

GP_ 发表于 2022-7-6 07:25:10

将绿色替换为红色。
 


(setq p5 (polar p4 (dtr 0.0) (-(-(/fl 2)(/wt 2)) rr)))
(setq p5 (polar p4 (dtr 0.0) (-(-(/ fl 2)(/ wt 2)) rr)))
.
(setq p13 (polar p12 (dtr 180.0) (-(-(/fl 2)(/wt 2)) rr)))
(setq p13 (polar p12 (dtr 180.0) (-(-(/ fl 2)(/ wt 2)) rr)))
.
(setq p17 (polar p16 (dtr 0.0)(-(-(/fl 2)(/wt 2)) rr)))
(setq p17 (polar p16 (dtr 0.0)(-(-(/ fl 2)(/ wt 2)) rr)))


 

SLW210 发表于 2022-7-6 07:29:15

请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。

GP_ 发表于 2022-7-6 07:39:31

@SLW210。。。一年过去了。。。
(穆罕默德没有回应这一建议)

SLW210 发表于 2022-7-6 07:46:19

OP最近创建了一个新线程,我想我会提醒他们这个线程。
 
竣工

Lee Mac 发表于 2022-7-6 07:54:53

 
为什么要挖出这条旧线索来这么说?

SLW210 发表于 2022-7-6 07:56:17

 
没想到是一岁!他其余的帖子都是在这个周末发布的。

BIGAL 发表于 2022-7-6 08:04:48

无论如何
 
Arc "3P" pt1 pt2 pt3

also why not for ease
(setq d90 (dtr 90.0))

(setq p2 (polar ip d90 (/ nd 2)))

页: [1]
查看完整版本: 带autolisp的I梁