rakezhao 发表于 2005-4-17 11:22:00

老程序转换问题

以前公司有NN多的.r12程序,lisp写的...现在要改成.2002版本.里面有太多东东要改了.问问.要怎么样才会快.我改了一个月了.才改了十来个.头大了.

meflying 发表于 2005-4-17 13:07:00

没有你的程序,怎么改?

CADghost 发表于 2005-4-17 14:29:00

me版,说说2000和2004以及R14的程序之间有什么不一样的,


我也老是遇到楼主所说的问题。

meflying 发表于 2005-4-18 08:44:00

要系统地说,我还真说不出来,给到程序,估计能改出来,


我觉得主要是使用上的区别导致程序的有所改动,就语言方面来说,应该没什么改动

rakezhao 发表于 2005-4-18 15:44:00

;比如下面程序.此程序已在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:&lt;" (itoa diso) "&gt;:" )))<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>

rakezhao 发表于 2005-4-20 11:05:00

顶顶..

spring 发表于 2005-4-20 12:16:00

呵呵,重新写过,顺便练练手啊

rakezhao 发表于 2005-4-21 14:44:00

重新写新.是好多呢.不是一个.怎么办.我要想个转换思路
页: [1]
查看完整版本: 老程序转换问题