乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 59|回复: 9

[编程交流] 制作w形光束的例行程序

[复制链接]

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-6 08:26:10 | 显示全部楼层 |阅读模式
嗨,我在这里有一个惯例,我不能使它正常工作,我不明白为什么。
 
当我一步一步地做的时候,它运行得很好,但我像程序一样运行它,它给了我一个变形的梁。
 
这里是代码:
 
  1. (defun c:test (/ O L H EA ES R)
  2.   (setq O (getpoint "\nSelecte the point of origine : "))
  3.   (setq H (getreal "\nGive the depth of the beam 'd' : "))
  4.   (setq L (getreal "\nGive the width of the flange 'b' : "))
  5.   (setq EA (getreal "\nGive the web thickness 'w' : "))
  6.   (setq ES (getreal "\nGive the flange thickness 't' : "))
  7.   
  8.   (setq pt1 (polar O pi (/ L 2)))
  9.   (setq pt2 (polar pt1 (/ pi 2)ES))
  10.   (setq pt3 (polar pt2 0 (/(- L EA) 2)))
  11.   (setq pt4 (list (car pt3)(+ (cadr O) (- H ES))))
  12.   (setq pt5 (list (car pt1)(cadr pt4)))
  13.   (setq pt6 (list (car pt1) (+ (cadr pt5) ES)))
  14.   (setq pt7 (polar pt6 0 L))
  15.   (setq pt8 (list(car pt7) (cadr pt5)))
  16.   (setq pt9 (list(+ (car pt4) EA) (cadr pt8)))
  17.   (setq pt10 (list (car pt9) (cadr pt3)))
  18.   (setq pt11 (list (car pt8) (cadr pt10)))
  19.   (setq pt12 (list (car pt11) (cadr pt1)))
  20.   
  21.   (command "_.pline" O pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12 O "")
  22.   (command "_.fillet" "_r" R)
  23.   (command "_.fillet" pt3 pt4 pt4 pt5 pt9 pt10 pt10 pt11 "")
  24. (princ)
  25. );defun c:

 
就是这样。
提前感谢您的帮助
 
干杯和啤酒
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:39:13 | 显示全部楼层
由于您使用的是命令调用,因此OSnap可能会影响点的放置。
 
在点输入前加上“_non”以忽略OSnap,即。
 
  1. (command "_.pline" "_non" O "_non" pt1 ... )

 
或者,保持命令表达式不变,并在关闭OSMODE之前存储其值,然后在代码末尾重置它,即:
 
  1. (setq osmode (getvar 'OSMODE))
  2. (setvar 'OSMODE 0)
  3. (command ... )
  4. (setvar 'OSMODE osmode)
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-6 08:44:49 | 显示全部楼层
正确!!!
 
现在我只需要给一些角点一个半径。
 
这是一张照片:
 
092616wzelweo44nntbyzv.jpg
 
我已经圈出了我想要输入半径的角。
 
半径是代码开头的变量R
 
但既然我不知道怎么才能做到。
 
我知道我可以用线做一个“圆角”,但由于“pline”只在实体上,而不是几个实体上,我不知道如何继续。
 
如果你不介意的话,我需要一个打击来帮助我。
 
感谢
 
干杯,啤酒!
回复

使用道具 举报

7

主题

143

帖子

136

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-6 08:50:36 | 显示全部楼层
法兰的内表面是否垂直?或者它们是倾斜的?我也在编写自己的钢结构程序,但在开始绘制截面之前,我会先将所有数据格式化。
回复

使用道具 举报

0

主题

5

帖子

5

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 08:56:51 | 显示全部楼层
Hai Cadfrank,
 
为I梁尝试此代码
 
 
(定义c:IBM(/O L H EA ES R)
 
(setq O(getpoint“\n选择原点:”)
(setq H(getreal“\n移动梁的深度‘d’:”)
(setq L(getreal“\n移动法兰“b”的宽度:”)
(setq EA(getreal“\n将腹板厚度“w”:”)
(setq ES(getreal“\n获取法兰厚度‘t’:”)
 
(setq pt1(极性O pi(/L 2)))
(setq pt2(极性pt1(/π2)ES))
(setq pt3(极性pt2 0(/(-L EA)2)))
(setq pt4(列表(car pt3)(+(cadr O)(-H ES)))
(setq pt5(列表(car pt1)(cadr pt4)))
(setq pt6(列表(car pt1)(+(cadr pt5)ES)))
(setq pt7(极性pt6 0 L))
(setq pt8(列表(car pt7)(cadr pt5)))
(setq pt9(列表(+(car pt4)EA)(cadr pt8)))
(setq pt10(列表(car pt9)(cadr pt3)))
(setq pt11(列表(car pt8)(cadr pt10)))
(setq pt12(列表(car pt11)(cadr pt1)))
 
 
(命令“_.pline”O pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10 pt11 pt12 O”)
(命令“.fillet”“\u r”r)
(命令“_.fillet”pt2 pt3”)
(命令“_.fillet”pt3 pt4”)
(命令“_.fillet”pt4 pt5”)
(命令“_.fillet”pt5 pt6”)
(命令“_.fillet”pt8 pt9”)
(命令“_.fillet”pt9 pt10”)
(命令“_.fillet”pt10 pt11”)
(命令“_.fillet”pt11 pt12”)
(普林斯)
 
);德芬c:
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-6 09:04:36 | 显示全部楼层
 
嘿,谢谢你给我的小费,我想怎样就怎样。
 
很抱歉,我们工作时上网有问题。
 
干杯和啤酒
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:09:12 | 显示全部楼层
有很多钢梁的东西都准备好了,已经写好了,如果你想自己做,但是一旦你得到了代码,你做一个查找列表,不输入任何尺寸,而是选择正确的梁来绘制,例如200UB,它有一个数据线连接200 100 8 6这是大小变量。唯一的问题是选择点。您可以使用DCl或此处未提及的侧栏菜单来选择梁类型。有一个包含所有参数的TXT文件,因此易于添加更多参数,而不是在lsp中硬编码等。
 
同样的方法也适用于所有类型的预定义形状UB UC PFB TFB SQhol C Z等
 
从lisp中剪切出来读取txt文件的示例
  1. (setq beamtype (getstring "\enter beam type"))
  2. (setq fo (open "beamlist" "r"))
  3. (while (setq new_line (read-line fo))
  4. (setq x 1)
  5. (setq y 7)
  6. (beam_name)
  7. (setq beam ans )
  8. (setq x
  9. (setq y 10)
  10. (setq d ans)
  11. )
  12. (defun beam_name ()
  13.    (setq ans "")
  14.    (setq char_found "")
  15.    (while (/= x y)
  16.      (setq char_found (substr new_line x 1))
  17.      (setq x (+ x 1))
  18. ;      (if (= char_found (chr 92))
  19.      (if (= char_found " ")
  20.        (setq x y)
  21.        (setq ans (strcat ans char_found))
  22.      )
  23.    )
  24. )
  25. open file get 1st line see if beamtype if yes then read variables else read next till end of file
  26. Then your code
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 09:13:12 | 显示全部楼层
我支持比格尔所说的。有一些非常容易使用,铁锹准备钢详细LISP例程在那里是免费的。STL。lsp,DDSTL。lsp,钢。对于初学者来说,lsp和所有这些都可以在Cadalyst上免费获得。通用域名格式。如果你有兴趣了解它是如何工作的,那么我们当然鼓励你继续你的项目,但是如果你想详细描述钢型材,即使是在3D中,看看这些,你会对已经完成的工作感到惊讶。
回复

使用道具 举报

56

主题

259

帖子

213

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
270
发表于 2022-7-6 09:25:53 | 显示全部楼层
你好
 
谢谢你的提示,我确实找了一些。lsp适用于钢,仅适用于STL。lsp,但似乎无法使其正常工作。
 
但既然我想学LISP,我宁愿从自己动手开始。
 
也许将来我会尝试其他Lisp程序的语言。
 
干杯,啤酒!
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 09:26:27 | 显示全部楼层
为什么不使用动态块?结构钢梁(W形)的基础已包含在AutoCAD 2010的工具选项板中,以英制和公制单位显示。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 08:59 , Processed in 0.509023 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表