明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1571|回复: 7

[源码] 求高手帮忙写个代码(高手在民间)

[复制链接]
发表于 2013-7-13 22:00 | 显示全部楼层 |阅读模式
2明经币
本帖最后由 86023383 于 2013-7-13 22:26 编辑

在CAD上面选择例如 HK500X350X10X16/280 或者多个这种格式的文本读取,及[600-10-14X100或者多个这样格式读取 ,生成 LIS 文件  。在此小弟谢谢大家了!

PROFILE DATABASE EXPORT VERSION = 3  (这行是固定的)
PROFILE_NAME = "HK500X350X10X16/280";
{
    TYPE = 11; SUB_TYPE = 11001; COORDINATE = 0.000;
    {
        "HEIGHT"                            5.000000000E+002   (高)对应的500
        "WEB_THICKNESS"                     1.000000000E+001   (腹板厚度)对应的10
        "FLANGE_THICKNESS"                  1.600000000E+001   (翼缘厚度)对应的16
        "WIDTH"                             3.500000000E+002   (翼缘宽度)对应的350
        "CANTILEVER"                        3.500000000E+001   ((宽度-280)/2) 对应的是 (350-280)/2
        "ROUNDING_RADIUS"                   1.500000000E+001   (固定)
        "CROSS_SECTION_AREA"                0.000000000E+000
        "COVER_AREA"                        0.000000000E+000
        "WEIGHT_PER_UNIT_LENGTH"            0.000000000E+000
        "MOMENT_OF_INERTIA_X"               0.000000000E+000
        "MOMENT_OF_INERTIA_Y"               0.000000000E+000
        "SECTION_MODULUS_X"                 0.000000000E+000
        "SECTION_MODULUS_Y"                 0.000000000E+000
        "RADIUS_OF_GYRATION_X"              0.000000000E+000
        "RADIUS_OF_GYRATION_Y"              0.000000000E+000
        "NEUTRAL_AXIS_LOCATION_ELASTIC_X"   0.000000000E+000
        "NEUTRAL_AXIS_LOCATION_ELASTIC_Y"   0.000000000E+000
        "NEUTRAL_AXIS_LOCATION_PLASTIC_X"   0.000000000E+000
        "NEUTRAL_AXIS_LOCATION_PLASTIC_Y"   0.000000000E+000
        "PLASTIC_MODULUS_X"                 0.000000000E+000
        "PLASTIC_MODULUS_Y"                 0.000000000E+000
        "TANGENT_OF_PRINCIPAL_AXIS_ANGLE"   0.000000000E+000
        "SHEAR_CENTER_LOCATION"             0.000000000E+000
        "TORSIONAL_CONSTANT"                0.000000000E+000
        "WARPING_CONSTANT"                  0.000000000E+000
        "NORMALIZED_WARPING_CONSTANT"       0.000000000E+000
        "WARPING_STATICAL_MOMENT"           0.000000000E+000
        "STATICAL_MOMENT_Qf"                0.000000000E+000
        "STATICAL_MOMENT_Qw"                0.000000000E+000
        "SQRT_OF_E_x_Cw_PER_G_x_J"          0.000000000E+000
        "POLAR_RADIUS_OF_GYRATION"          0.000000000E+000
    }
}





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

最佳答案

发表于 2013-7-13 22:00 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2013-7-15 00:06 编辑
  1. (defun c:tt () ;HK500X350X10X16/280,[550-10-14X100
  2. (setq fnm (if (= (type fnm) 'STR) fnm ""))
  3. (if (and (setq ss (ssget '((0 . "TEXT") (1 . "HK*X*X*X*/*,`[*`-*`-*X*"))))
  4.           (setq fnm (getfiled "选择文件" fnm "lis" 1))) (progn
  5.   (setq fp (open fnm "w"))
  6.   (setq i -1)
  7.   (repeat (sslength ss)
  8.    (setq txt (cdr(assoc 1 (entget(ssname ss (setq i (1+ i)))))))
  9.    (setq j 1 tmp "" nlst (list))
  10.    (while (wcmatch (substr txt j 1) "~[0-9]") (setq j (1+ j)))
  11.    (while (<= j (strlen txt))
  12.     (if (wcmatch (setq a (substr txt j 1)) "[0-9]")
  13.      (setq tmp (strcat tmp a))
  14.      (setq nlst (cons (atof tmp) nlst) tmp "")
  15.     )
  16.     (setq j (1+ j))
  17.    )
  18.    (if (> (strlen tmp) 1) (setq nlst (cons (atof tmp) nlst)))
  19.    (setq nlst (reverse nlst))
  20.    (princ "PROFILE DATABASE EXPORT VERSION = 3\n" fp)
  21.    (princ "PROFILE_NAME = " fp)
  22.    (prin1 txt fp)
  23.    (princ ";\n{\n    TYPE = " fp)
  24.    (if (= (substr txt 1 1) "[") (progn
  25.     (princ "999; SUB_TYPE = "CCCC"; SUB_TYPE = 999168; COORDINATE = 0.000;\n    {\n" fp)
  26.     (princ "\n        "T1"                                " fp)
  27.     (princ (rtos (caddr nlst) 1 9) fp)
  28.     (princ "\n        "T2"                                " fp)
  29.     (princ (rtos (cadr nlst) 1 9) fp)
  30.     (princ "\n        "B1"                                " fp)
  31.     (princ (rtos (last nlst) 1 9) fp)
  32.     (princ "\n        "H"                                 " fp)
  33.     (princ (rtos (car nlst) 1 9) fp)
  34.    ) (progn
  35.     (princ "11; SUB_TYPE = 11001; COORDINATE = 0.000;\n    {\n" fp)
  36.     (princ "        "HEIGHT"                            " fp)
  37.     (princ (rtos (car nlst) 1 9) fp);5.000000000E+002   (高)对应的500
  38.     (princ "\n        "WEB_THICKNESS"                     " fp)
  39.     (princ (rtos (caddr nlst) 1 9) fp);1.000000000E+001   (腹板厚度)对应的10
  40.     (princ "\n        "FLANGE_THICKNESS"                  " fp)
  41.     (princ (rtos (cadddr nlst) 1 9) fp);1.600000000E+001   (翼缘厚度)对应的16
  42.     (princ "\n        "WIDTH"                             " fp)
  43.     (princ (rtos (cadr nlst) 1 9) fp);3.500000000E+002   (翼缘宽度)对应的350
  44.     (princ "\n        "CANTILEVER"                        " fp)
  45.     (princ (rtos (/ (- (cadr nlst) (last nlst)) 2.0) 1 9) fp);3.500000000E+001   ((宽度-280)/2) 对应的是 (350-280)/2
  46.     (princ "\n        "ROUNDING_RADIUS"                   1.500000000E+001" fp);   (固定)
  47.    ))
  48. ;*****
  49.    (princ "\n        "CROSS_SECTION_AREA"                0.000000000E+000" fp)
  50.    (princ "\n        "COVER_AREA"                        0.000000000E+000" fp)
  51.    (princ "\n        "WEIGHT_PER_UNIT_LENGTH"            0.000000000E+000" fp)
  52.    (princ "\n        "MOMENT_OF_INERTIA_X"               0.000000000E+000" fp)
  53.    (princ "\n        "MOMENT_OF_INERTIA_Y"               0.000000000E+000" fp)
  54.    (princ "\n        "SECTION_MODULUS_X"                 0.000000000E+000" fp)
  55.    (princ "\n        "SECTION_MODULUS_Y"                 0.000000000E+000" fp)
  56.    (princ "\n        "RADIUS_OF_GYRATION_X"              0.000000000E+000" fp)
  57.    (princ "\n        "RADIUS_OF_GYRATION_Y"              0.000000000E+000" fp)
  58.    (princ "\n        "NEUTRAL_AXIS_LOCATION_ELASTIC_X"   0.000000000E+000" fp)
  59.    (princ "\n        "NEUTRAL_AXIS_LOCATION_ELASTIC_Y"   0.000000000E+000" fp)
  60.    (princ "\n        "NEUTRAL_AXIS_LOCATION_PLASTIC_X"   0.000000000E+000" fp)
  61.    (princ "\n        "NEUTRAL_AXIS_LOCATION_PLASTIC_Y"   0.000000000E+000" fp)
  62.    (princ "\n        "PLASTIC_MODULUS_X"                 0.000000000E+000" fp)
  63.    (princ "\n        "PLASTIC_MODULUS_Y"                 0.000000000E+000" fp)
  64.    (princ "\n        "TANGENT_OF_PRINCIPAL_AXIS_ANGLE"   0.000000000E+000" fp)
  65.    (princ "\n        "SHEAR_CENTER_LOCATION"             0.000000000E+000" fp)
  66.    (princ "\n        "TORSIONAL_CONSTANT"                0.000000000E+000" fp)
  67.    (princ "\n        "WARPING_CONSTANT"                  0.000000000E+000" fp)
  68.    (princ "\n        "NORMALIZED_WARPING_CONSTANT"       0.000000000E+000" fp)
  69.    (princ "\n        "WARPING_STATICAL_MOMENT"           0.000000000E+000" fp)
  70.    (princ "\n        "STATICAL_MOMENT_Qf"                0.000000000E+000" fp)
  71.    (princ "\n        "STATICAL_MOMENT_Qw"                0.000000000E+000" fp)
  72.    (princ "\n        "SQRT_OF_E_x_Cw_PER_G_x_J"          0.000000000E+000" fp)
  73.    (princ "\n        "POLAR_RADIUS_OF_GYRATION"          0.000000000E+000" fp)
  74.    (princ "\n    }\n}\n" fp)
  75.   )
  76.   (close fp)
  77. (startapp "notepad" fnm)
  78. ))
  79. (princ)
  80. )
回复

使用道具 举报

 楼主| 发表于 2013-7-13 22:54 | 显示全部楼层
ZZXXQQ 发表于 2013-7-13 22:45

大哥 为什么运行就退出了呢? 能帮我把后面那个例子也加上吗?
回复

使用道具 举报

发表于 2013-7-14 08:30 | 显示全部楼层
修正了错误。再试试
回复

使用道具 举报

 楼主| 发表于 2013-7-14 10:34 | 显示全部楼层
本帖最后由 86023383 于 2013-7-14 11:15 编辑
ZZXXQQ 发表于 2013-7-14 08:30
修正了错误。再试试

大哥 这下输出可以了 但是 这行 (princ (rtos (/ (- (cadr nlst) (last nlst)) 2) 5 9) fp);    这行输出的不是 “((宽度-280)/2) 对应的是 (350-280)/2” 有点问题。其它都是对的    还有就是 读取多个文本的时候只能输出一个
回复

使用道具 举报

发表于 2013-7-14 22:27 | 显示全部楼层
这回改好了,去沙发下载吧。
回复

使用道具 举报

发表于 2013-7-14 23:55 | 显示全部楼层
双改了。再试试
回复

使用道具 举报

 楼主| 发表于 2013-7-15 00:19 | 显示全部楼层
谢谢版主大哥 耐心 细心调试无数次。千言万语 只能说谢谢 和敬佩!!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 12:20 , Processed in 0.239023 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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