abcxyz0517 发表于 2007-8-11 09:41:00

看看下面的程序到底有什么毛病

看看下面的程序到底有什么毛病,计算是正确的,就是运行的时候会发生错误 <br/>当文字的基准点位中间(只要不是左)就不能正常运行~ <br/><br/>(DEFUN C:ttq ( / count ent gop next pt_base pt_new temp1 temp2 temp3 total yesno) <br/>(setvar "OSMODE" 0) <br/>(SETQ ENT (ENTSEL "\n 选择参照单行文本")) <br/>(IF (= ENT NIL) <br/>(PRINC "\n 没有选中物体") <br/>(PROGN <br/>(SETQ ENT (ENTGET (CAR ENT))) <br/>(IF (/= (CDR (ASSOC 0 ENT)) "TEXT") <br/>(PRINC "\n 选中的物体不是单行文本") <br/>(PROGN <br/>(INITGET 128 "X Y") <br/>(SETQ YESNO (GETKWORD "\n 参照字的X轴(X) / 参照字的Y轴(Y):(X) ")) <br/>(IF (OR (= YESNO "X") (= YESNO NIL)) <br/>(SETQ PT_BASE (CADR (ASSOC 10 ENT))) <br/>(SETQ PT_BASE (CAR (CDDR (ASSOC 10 ENT)))) <br/>) <br/>(PRINC "\n 选择对齐的文本") <br/>(SETQ GOP (ssget ":L") <br/>COUNT 0 <br/>TOTAL 0 <br/>) <br/>(REPEAT (SSLENGTH GOP) <br/>(SETQ NEXT (ENTGET (SSNAME GOP COUNT))) <br/>(IF (= (CDR (ASSOC 0 NEXT)) "TEXT") <br/>(PROGN (SETQ TEMP1 (CAR (CDR (ASSOC 10 NEXT))) <br/>TEMP2 (CADR (CDR (ASSOC 10 NEXT))) <br/>TEMP3 (CAR (CDDR (CDR (ASSOC 10 NEXT)))) <br/>) <br/>(IF (OR (= YESNO "X") (= YESNO NIL)) <br/>(SETQ PT_NEW (LIST PT_BASE TEMP2 TEMP3)) <br/>(SETQ PT_NEW (LIST TEMP1 PT_BASE TEMP3)) <br/>) <br/>(SETQ <br/>NEXT (SUBST (CONS 10 PT_NEW) (ASSOC 10 NEXT) NEXT) <br/>) <br/>(ENTMOD NEXT) <br/>;(PRINC NEXT) <br/>(SETQ TOTAL (1+ TOTAL)) <br/>) <br/>) <br/>(SETQ COUNT (1+ COUNT)) <br/>) <br/>(PRINC "\n 共 ") <br/>(PRINC TOTAL) <br/>(PRINC "字体改变") <br/>) <br/>) <br/>) <br/>) <br/>(PRINC) <br/>)
        <br/>

英雄无敌 发表于 2007-8-14 09:14:00

位于中间时,不用用10的组码,可能要用11的组码来表示文字的位置
页: [1]
查看完整版本: 看看下面的程序到底有什么毛病