这里是整个Lisp程序,命令移动什么也不做。。。应适用于点和文本对,其中插入点具有相同的x和y坐标,z不同
- (defun c:pz (/ layer punct)
- (princ "\nSELECTEAZA PUNCTELE")
- (setq ssp (ssget '((0 . "point"))))
- (princ "\nSELECTEAZA TEXTELE")
- (setq sst (ssget '((0 . "text"))))
-
- ;;;;;;;;;;;;;;;;;;;;;;LISTA PUNCTE
- (setq i 0)
- (setq listap nil)
- (repeat (sslength ssp)
- (setq ename (ssname ssp i))
- (setq data (entget ename))
- (setq entName (cdr (assoc -1 data)))
- (setq punct (cdr (assoc 10 data)))
- (setq layer (cdr (assoc 8 data)))
- (setq culoare (cdr (assoc 62 data)))
- (setq listap (cons (list punct layer culoare entName) listap))
- (setq i (1+ i))
- )
- ;;;;;;;;;;;;;;;;;;;;;;LISTA TEXTE
- (setq i 0)
- (setq listat nil)
- (repeat (sslength sst)
- (setq ename (ssname sst i))
- (setq data (entget ename))
- (setq entName (cdr (assoc -1 data)))
- (setq pct (cdr (assoc 10 data)))
- (setq z (atof (cdr (assoc 1 data))))
- (setq ztext (caddr pct))
- (setq listat (cons (list pct z ztext) listat))
- (setq i (1+ i))
- )
- ;;;;;;;;;;;;;;;;;;;;;
-
- ;
- (setq listabuna nil)
- (setq listaent nil)
- (setq i 0)
- (repeat (length listap)
- (setq text (nth i listat))
- (foreach punct listap
- (if (= (car (car text)) (car (car punct)))
- (setq p (list
- (list
- (car(car punct))
- (cadr(car punct))
- (cadr text)
- ) ;_ end of list
- (setq la (cadr punct))
- (setq cul (caddr punct))
- (setq entitate (cadddr punct))
- )
- ) ;_ end of setq
-
- ) ;_ end of if
- ) ;_ end of foreach
- (setq listabuna (cons p listabuna))
- (setq listaent (cons entitate listaent))
- (setq i (1+ i))
- ) ;_ end of repeat
- (setq i 0)
- (repeat (length listabuna)
- (entmake (list (cons 0 "POINT")
- (cons 8 (cadr (nth i listabuna)))
- (if
- (/= (caddr (nth i listabuna)) nil)
- (cons 62 (caddr (nth i listabuna)))
- (cons 62 256)
- )
- (cons 10 (car(nth i listabuna)))))
-
- (command "_.move"
- (nth i listaent)
- ""
- (setq pti(car (nth i listat)))
- (setq ptf
- (list
- (car (car (nth i listat)))
- (cadr (car (nth i listat)))
- (cadr (nth i listat)))))
- (setq i (1+ i))
- )
- (setq sse (ssadd))
- (foreach ent listaent (ssadd ent sse))
- (command "erase" sse "")
- (princ)
- )
|