编程求助如何计算n根直线的长度,并且列表、归类、汇总
编程求助如何计算n根直线的长度,并且列表、归类、汇总 下面的程序可以做到按长度排序,并将结果存入文件中。楼主的归类是按什么进行的?程序对选中的图元(PLINE,SPLINE,LINE,ARC,CIRCLE)有效,如果楼主只要对直线进行处理,可以加入判断分离无用图元。(DEFUN C:TT (/ SS SS_L N LENN LEN I J LLIST TEMPL IJ)<BR> (setq ss (ssget))<BR> (setq ss_l (sslength ss))<BR> (setq n 0)<BR> (setq lenn 0)<BR> (SETQ LLIST (LIST))<BR> (repeat ss_l<BR> (command "lengthen" (ssname ss n) "")<BR> (setq len (getvar "perimeter"))<BR> (SETQ LLIST (CONS (LIST LEN (SSNAME SS N)) LLIST))<BR> (setq lenn (+ len lenn))<BR> (setq n (1+ n)))<BR> (princ "\nThe total Length is 您所选到的像素总长是 : ")<BR> (princ lenn)<BR> (Princ "(mm)....\n")<BR> (SETQ LLIST (REVERSE LLIST)<BR> SL (LENGTH LLIST) I 0)<BR> (WHILE (< I SL)<BR> (SETQ LEN1 (CAR (NTH I LLIST)) IJ I J (1+ I))<BR> (WHILE (< J SL)<BR> (SETQ LEN2 (CAR (NTH J LLIST)) J (1+ J))<BR> (IF (< LEN2 LEN1) (SETQ LEN1 LEN2 IJ (1- J)))<BR> )<BR> (IF (> IJ I) (PROGN<BR> (SETQ TEMPL1 (LIST) TEMPL (LIST))<BR> (REPEAT I (SETQ TEMPL1 (CONS (CAR LLIST) TEMPL1) LLIST (CDR LLIST)))<BR> (REPEAT (- IJ I)<BR> (SETQ TEMPL (CONS (CAR LLIST) TEMPL) LLIST (CDR LLIST))<BR> )<BR> (SETQ LLIST (APPEND (REVERSE TEMPL1) (LIST (CAR LLIST)) (REVERSE TEMPL) (CDR LLIST)))<BR> ))<BR> (SETQ I (1+ I))<BR> )<BR> (IF (SETQ F (OPEN "LENTABLE.TXT" "w")) (PROGN<BR> (SETQ I 0)<BR> (REPEAT SL<BR> (PRINC (NTH I LLIST) F) (PRINC (NTH I LLIST)) (PRINC "\n") (PRINC "\n" F)<BR> (SETQ I (1+ I))<BR> )<BR> (PRINC "\nTotal Length = " F) (PRINC LENN F) (PRINC "\n" F)<BR> (CLOSE F)<BR> ))<BR> (princ)<BR>)<BR>(PRINC "\n输入TT执行求选集的总长,排序结果在LENTABLE.TXT文件中。")<BR>(PRINC)
页:
[1]