乐筑天下

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

[编程交流] 铁路轨道lisp例程

[复制链接]

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:42:09 | 显示全部楼层 |阅读模式
我找到了一个lisp例程来制作2d铁路轨道,但其中有一些错误,我对编写lisp例程一无所知,因此我无法找出错误所在或如何修复它们。我正在使用Civil3d 2012。谢谢你在这方面的帮助。
 
代码如下:
[code];从绘制为多段线的定义中心线创建铁路线(defun C:rrtrax(/curlyr rr cl rrlyr oldosnap rt lt e ename etype enttent osdone entstart cntr bulge rtoffltoff startpt TblLst bss blname lyrcount)(defun myerror(s);如果发生错误(如ESC或InvalidSelect);当此命令处于活动状态时。。。(如果(/=s“函数已取消”)(princ(strcat”\n错误:“s))(setvar“osmode”oldosnap)(命令“\u layer“s”curlyr”);恢复保存的模式(setq*error*olderr);Restore old*error*handler(princ))(命令“undo”“begin”)(setq olderr*error**error*myerror)(setq oldosnap(getvar“osmode”)(if(<oldosnap 16384)(setvar“osmode”(+16384 oldosnap))(setq CROLLYR(getvar“clayer”))(setq rrlyr“1-RR-TRACK”)(setq rrcl“RR cl”)(if(=(tblsearch“layer”rrlyr)nil)(命令“n”rrlyr“c”12“rrlyr”rrlyr“s”rrlyr“”)(命令“rrlyr”s上的“T”rrlyr”rrlyr“”)(if(=(tblsearch“layer”rrcl)nil)(命令“_layer”n“rrcl”)(命令“rrcl”上的“T”rrcl”)(defun osline()(setq rt(polar entstart(+(angle entstart entend)(/pi 2))1.0)lt(polar entstart(-angle entstart entend)(/pi 2))1.0)(doos rt lt);结束osline(defun osarc()(setq rt(polar entstart(angle entstart cntr)1.0)lt(polar entstart(angle cntr entstart)1.0))(doos rt lt);end osarc(defun dopoly()(setq osdone nilename(entnext ename)tent(entget ename)nent(entget(entnext ename))(while(/=“SEQEND”(cdr(assoc 0 nent)))(setq entstart(cdr(assoc 10 tent))entend(cdr(assoc 10 nent))bulge(cdr(assoc 42 tent))(if(=bulge 0.0)(drawline)(drawarc))(setq ename(entnext ename)tent(entget(entnext ename)а);end dopoly(defun drawine()(if(=osdone nil)(progn(osline)(setq startpt entstart)))(defun drawarc()(if(=osdone nil)(progn(osarc)(setq startpt entstart)))(defun doos(rt lt)(命令“\u offset”(/rr\u w 2)e rt“”)(命令“\u change”l“”p“”la“rrlyr”)(setq rtoff(entlast))(命令“\u offset”(/rr\u w 2)e lt“”)(命令“\u change”l“”p“”“la”rrlyr“”)(setq ltoff(entlast))(setq-osdone t));结束灾难;根据需要制作块(defun makebl()(entmake’((0。“block”)(2。“rr-tie”)(8。“1-rr-TRACK”)(70.0)(10 0.333 3.354 0))(entmake’((0。“LWPOLYLINE”)(100。“AcDbEntity”)(100。“AcDbPolyline”)(90.4)(10 0.00 0.00)(10 0.666 0.00)(10 0.666 6 6.708)(10 0.00 6.708)(70.129))(entmake’((0。“ENDBLK”))))(defun GetFilterTable(Tbl Nme/CurTbl)(setq TblLst nil)(while(setq CurTbl(tblnext Tbl(not CurTbl))(if(wcmatch(cdr(assoc 2 CurTbl))Nme)(setq TblLst(cons CurTbl TblLst)))(reverse TblLst))(defun insblock()(setq bss(ssget“_X”'((2。“rr tie”)))(ssadd rtoff bss)(ssadd ltoff bss)(if(=(GetFilterTable“BLOCK”“TRACKS-*”)nil)(setq blname“TRACKS-1”)(progn(setq lyrcount(1+(长度TblLst)))(setq blname t“TRACKS—”(rtos lyrcount )ааа)а);结束if(命令“-block”blname startpt bss”“)(命令“-insert”blname startpt 1“0”)(if(=rr\U w nil)(setq rr\U w 4.708))(princ(strcat“\nDraws美国标准
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 06:46:43 | 显示全部楼层
有什么想法吗?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 06:49:13 | 显示全部楼层
什么样的错误?你能说得更具体些吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 06:55:12 | 显示全部楼层
一些标准仪表尺寸看起来是:
 
轨道:
[列表]
钢轨内边缘之间
  • 8’4-1\2”
    头部
  • 2-3\4“宽
    底座处
  • 5-1\2“宽
  • 6“高
    [/列表]
     
    领带:
    [列表]
  • 9“宽x 7”高x 102”长
  • 19.5英寸居中
    [/列表]
     
     
    这些是你使用的尺寸吗?
     
    -大卫
  • 回复

    使用道具 举报

    6

    主题

    249

    帖子

    247

    银币

    初来乍到

    Rank: 1

    铜币
    30
    发表于 2022-7-6 06:55:59 | 显示全部楼层
    嗯,最后还有一个额外的权利。
    HTH公司
    回复

    使用道具 举报

    1

    主题

    8

    帖子

    7

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 06:59:57 | 显示全部楼层
    尺寸对我来说很好。我面临的主要问题是:1。当我使用appload加载它时,它会立即请求输入,而不是等待我调用命令。2.加载后,除了它自动启动命令外,如果不再次使用appload,我将无法使用它。3。谢谢你在这方面的帮助。
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-6 07:05:34 | 显示全部楼层
    听起来你需要像史蒂夫建议的那样查看额外的括号-大卫
    回复

    使用道具 举报

    1

    主题

    8

    帖子

    7

    银币

    初来乍到

    Rank: 1

    铜币
    5
    发表于 2022-7-6 07:07:35 | 显示全部楼层
    我按照建议删除了最后一个括号,但这并没有改变错误。
    回复

    使用道具 举报

    8

    主题

    1133

    帖子

    1164

    银币

    初来乍到

    Rank: 1

    铜币
    10
    发表于 2022-7-6 07:11:59 | 显示全部楼层
     
    我希望读数应该是4'8½“,否则就有了一个正在萌芽的宽轨
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-6 07:14:37 | 显示全部楼层
    我很抱歉,但是这个例程写得太糟糕了,如果你想利用时间来尝试和删除它,那将是不明智的-大卫
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-10 14:48 , Processed in 0.628053 second(s), 72 queries .

    © 2020-2025 乐筑天下

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