AutoCAD Civil 3D-路线-断链的处理

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hjpqindong/article/details/97897351

因施工期内根据现场情况发生设计变更导致的线路改线,使得线路比原设计线路长短发生变化,通常是比原线路变长。对于线路断链处理,在Civil 3D里只需在线路特性里设置断链点及其前后桩号就可以了。

设置断链点及前后桩号

增加断链点后,纵断面图上会如下标记:

纵断面图上的断链点

以上线路中的链断为:K104+353.32=K104+350.00,重复段3.32米。在创建布局纵断面时若折点在上面重复段时C3D会出现询问对话框,此时需手动指定文件中的桩号是断链前桩号还是断链后桩号,如下图:

103160.00 2966.11
103800.00 2930.00
104100.00 2935.00
104350.00 3100.00
104351.23 2950.00
104353.32 2980.00
106700.00 2950.00

 

注意以上文件中有个桩号为K104+353.32,该桩号是显示的断链点桩号,本应也出现提示确认,但因精度显示原因,真实的断链点桩号是K104+353.317,故自动判断为该点为断链后桩号。

从今日起,部分博文不再对普通游客开放,仅粉丝可见。

展开阅读全文

单链表断链问题

04-08

/*本程序用于生成数据元素值递增有序的单链表,算法思想:先用CreateList()函数生成一个初始的链表,再用函数ListSort()对链表进行数据元素值自小到大的排序,再用函数DelrepetElem()删除元素值重复的结点.这样就得到一个数据元素值递增有序的单链表了.可问题是:ListSort()函数不能正确处理程序传递给它的链表(发生断链现象,而程序传递给它的确实是链表的引用,怎么还会有断链?*/rn#includern#includern#includern#includern#includerntypedef struct LNodernrn int data;rn struct LNode *next;rnLNode,*LinkList;rnrnint DisplayList(LinkList head)//输出链表中的数据域的值rnrn if(head==NULL)rn rn printf("链表为空!\n");rn return 0;rn rn LinkList p=head;rn while(p->next!=NULL)rn rn printf("%5d ->",p->data);rn p=p->next;rn rn printf("%5d",p->data); //输出最后一个数据rn printf("\n");rn return 0;rnrnint CreateList(LinkList &head)// 生成链表的函数定义rnrn int i=0;rn LinkList p=NULL,q=NULL;rn head=NULL;rn srand( (unsigned)time( NULL ) );rn for(i=0;i<30;i++)rn rn p=(LinkList)malloc(sizeof(LNode));rn p->data=rand()%100*7;rn if(head==NULL)rn head=p;rn elsern q->next=p;rn q=p;rn rnrn if(head!=NULL)rn rn q->next=NULL;rn rn rn return 1;rnrnrnvoid ListSort(LinkList head)rnrn if(head==NULL || head->next==NULL)rn rn elsern rn LinkList pre,lp,p,q,s;rn pre=head;q=p=pre->next;head->next=NULL;rn while(p!=NULL)rn rn s=(LinkList)malloc(sizeof(LNode));rn s->data=q->data;s->next=NULL;rn p=p->next;free(q);q=p;//记得释放原结点rn if(s->data < head->data)rn rn s->next=head;rn head=s;rn rn elsern rn pre=head;lp=pre->next;rn while(lp!=NULL && s->data > lp->data)rn if(s->data > lp->data)rn rn pre=lp;lp=lp->next;rn rn s->next=lp;pre->next=s;rn rn rn rnrnint DelrepetElem(LinkList head)//删除链表中重复的结点rnrn LinkList pre=head,lp;rn if(pre!=NULL)rn rn while(pre->next!=NULL)rn if(pre->data != pre->next->data)rn pre=pre->next;rn elsern rn lp=pre->next;rn pre->next=lp->next;rn free(lp);rn rn rn return 1;rnrnvoid main()rnrn LinkList head;rn CreateList(head); //生成链表larn printf("初始生成时链表la的数据为:\n");rn DisplayList(head);rn ListSort(head);rn printf("经排序后的链表la的数据为:\n");rn DisplayList(head);rn DelrepetElem(head);rn printf("经排序且删除相同元素后的链表la的数据为:\n");rn DisplayList(head);rnrnrnrn 论坛

没有更多推荐了,返回首页