老程序转换问题
以前公司有NN多的.r12程序,lisp写的...现在要改成.2002版本.里面有太多东东要改了.问问.要怎么样才会快.我改了一个月了.才改了十来个.头大了. 没有你的程序,怎么改? me版,说说2000和2004以及R14的程序之间有什么不一样的,我也老是遇到楼主所说的问题。 要系统地说,我还真说不出来,给到程序,估计能改出来,
我觉得主要是使用上的区别导致程序的有所改动,就语言方面来说,应该没什么改动 ;比如下面程序.此程序已在meflying上次的说明中我已改过来了.可是还好多此程问题
;如一个一个去核对改.好烦.这个还只是Poly
(defun c:of(/ cl dis np entn entd sd entnn ovp ovp1 vf vfd nvp nvp1 angd nly)<BR> (setvar "cmdecho" 0)<BR> (setq cl (getvar "CLAYER"))<BR> (if (= diso nil) (setq diso 1))<BR> (initget 6)<BR> (setq dis (getint (strcat "\nOffset distance:<" (itoa diso) ">:" )))<BR> (if (= dis nil)(setq dis ( / diso 25.4 ))(setq diso dis))<BR> (setq dis_org dis)<BR> (setq np nil)<BR> (while (= np nil)<BR> (setq np (entsel))<BR> (if (/= np nil)<BR> (progn<BR> (setq entn (car np))<BR> (setq entd (entget entn))<BR> (setq entd (subst (cons 8 "3") (assoc 8 entd) entd))<BR> (if (/= (assoc '62 entd) nil)(setq entd (subst '(62 . 256) (assoc '62 entd) entd)))<BR> (entmod entd)<BR> (setq sd (getpoint "\nSide to offset:"))<BR> (command "offset" dis np sd "")<BR> (setq entnn (entlast))<BR> (setq ovp (cdr (assoc '10 (entget (setq entn (entnext entn))))))<BR> (setq vf (cdr (assoc '70 (setq vfd (entget (setq entn (entnext entn)))))))<BR> (if (/= vf 0)<BR> (setq ovp1 (cdr (assoc '10 (entget (entnext entn)))))<BR> (setq ovp1 (cdr (assoc '10 vfd)))<BR> );end if<BR> (setq nvp (cdr (assoc '10 (entget (entnext entnn)))))<BR> (setq angd (angle ovp ovp1))<BR> (setq nvp1 (polar ovp (+ angd (/ pi 2)) dis))<BR> (if (equal nvp nvp1 0.005)<BR> (setq angd "A")<BR> (progn<BR> (setq nvp1 (polar ovp (- angd (/ pi 2)) dis))<BR> (if (equal nvp nvp1 0.005) (setq angd "B"))<BR> );progn<BR> );if<BR> (setq entd (subst (cons 8 (setq nly (strcat (rtos dis_org 2 0) angd)))<BR> (assoc 8 (setq entd (entget entnn))) entd))<BR> (entmod entd)<BR> (setvar "CLAYER" nly)<BR> (command "layer" "c" 10 "" "")<BR> (setvar "CLAYER" cl)<BR> (setq np nil)<BR> );progn<BR> (setq np t)<BR> );if<BR> );while<BR>(princ)<BR>);<BR> 顶顶.. 呵呵,重新写过,顺便练练手啊 重新写新.是好多呢.不是一个.怎么办.我要想个转换思路
页:
[1]