Lee Mac 发表于 2022-7-6 14:25:11

高程标记

根据此线程的请求:
 
http://www.cadtutor.net/forum/showthread.php?t=37199
 
我使用与上述线程中相同的编程方法创建了一个立面标记。
 
========================================================;;;作者:版权所有©2009 Lee McDonnell(Lee Mac);;;(联系CADTutor.net,The沼泽网);;;版本:1.0 2009年6月13日;;;2.0 2009年6月14日;;;3.0 2009年6月16日;;;目的:将高程标记与曲线对齐;;;Sub_例程:getpoint_或_text。查尔斯·艾伦·巴特勒的lsp(CAB);;;其他功能:;;;使用+/-更改文本偏移;;;使用“P”切换垂直度;;;;==================================================================(defun c:MacElev(/*error*doc spc tmp tStr ent cObj tObj gr cPt pt cAng lAng BsEl;*Mac$Str*};*Mac$tOff*}全局变量;*Mac$Per*})(vl load com);;错误处理程序(defun*Error*(msg)(和tObj(not(vlax-erased-p tObj))(vla delete tObj))(if(not(wcmatch(strcase msg)“*BREAK,*CANCEL*,*EXIT*”)(princ(strcat“>”))(princ));;检查锁定电流层(如果(等式4(logand 4)(cdr(assoc 70(tblsearch“Layer”(getvar“CLAYER”ΉΉ)Ή)))(progn(princ“>”)(exit));;Get Space&Doc(setq Doc(vla Get ActiveDocument(vlax Get Acad Object))spc(if(zerop(vla Get activespace Doc))(if(=(vla Get mspace Doc):vlax true);Vport(vla get modelspace doc)(vla get paperspace doc))(vla get modelspace doc));;设置第一次默认值(或*Mac$Str*(setq*Mac$Str*“text”)(或*Mac$tOff*(setq*Mac$tOff*1。))(或*Mac$每*(setq*Mac$每*(/pi 2))(if(setq bsEl(cadr(getpoint“\n选择基准高程:)))(progn;;Get Text String(while(setq tmp(getpoint\u或\u Text 2(strcat”\n选择水平曲线或指定文本:))(cond((eq”“tmp))((eq’STR(type tmp))(setq*Mac$STR*tmp))((vl consp tmp)(setq cObj(vlax ename->vla object(car tmp))*Mac$STR*(rtos(-(cadr(vlax curve GetClosestPoint to cObj(cadr tmp)))bSEl ())(setq tStr*Mac$Str*)(或tSze(setq tSze(getvar“TEXTSIZE”)));;如果未选择曲线(如果(非cObj)(而(progn(setq ent(ENTSEL“\n选择曲线:))(cond((和(vl consp ent)(vl位置(cdr(assoc 0(entget(car ent))))”(“LINE”“LWPOLYLINE”“POLYLINE”“ARC”“SPLINE”“CIRCLE”“ELLIPSE”“XLINE”))(setq cObj(vlax ename->vla object(car ent)))nil);退出循环(t(princ“\n missed,重试…”);“”);保持循环;;创建文本对象(vla put alignment(setq tObj(vla addText spc tStr(vlax-3D-point’(0 0))tSze))acAlignmentMiddleCenter);;放置文本(while(or)(and(setq gr(grread t 15 0))(eq(car gr)5))(and(eq 2(car gr));键盘(vl位置(cadr gr)'(43;+45;-61;+(as=)80 112));P/P(cond((and(eq 5(car gr))(listp(setq cPt(cadr gr))))(setq pt(vlax curve getClosestPointto cObj cPt)cAng(angle pt cPt)lAng(+cAng*Mac$Per*);;正确角度(cond((and(>lAng(/pi 2))(lAng pi)(

NH3man! 发表于 2022-7-6 14:54:58

我明天早上试试。我现在无法让2009年在Windows 7上保持稳定。我不确定发生了什么,但只要我选择了什么,就会出现致命错误。
 
谢谢李

Lee Mac 发表于 2022-7-6 15:00:49

六羟甲基三聚氰胺六甲醚。。。巧合的是,可能与此线程有关。。。
http://www.cadtutor.net/forum/showthread.php?t=37278

NH3man! 发表于 2022-7-6 15:11:12

我不这么认为,李。我正在运行相同的工作(2009年),并没有什么问题,除非我与25mb或更大的绘图工作。我们已经有了2010年,但还没有改变主意,不知道是更好还是更晚。我知道你现在在用2010,你用的是什么操作系统?

Lee Mac 发表于 2022-7-6 15:32:28

 
我正在运行Windows Vista Home Premium(SP2)-而且,2010是学生版。
页: [1]
查看完整版本: 高程标记