transcad 发表于 2022-7-6 07:53:59

帮助选择

我想移动一个物体,我用这个:
(命令“移动”(第n个lst)“p1 p2)
(第n个lst)为()
发生了什么?应该怎样?

Tharwat 发表于 2022-7-6 08:08:34

张贴变量lst的列表,以确定它们是否正确

pBe 发表于 2022-7-6 08:15:22

AFAICT语法正确:
 
(命令“_.move”
(第n i个lst);
""
p1
p2)
 
现在,如果从选择集中选择,它将是(ssname i lst)

transcad 发表于 2022-7-6 08:23:03

这里是整个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)
)

MSasu 发表于 2022-7-6 08:32:02

您需要集中精力调试listabuna变量;它并没有达到应有的水平*。
此外,请注意,如果“颜色”设置为“ByLayer”,则DXF代码62不可用。
 
(布纳=好的)

pBe 发表于 2022-7-6 08:44:04

 
真的
 
MSasu,你能写出生日问候语的代码吗?

MSasu 发表于 2022-7-6 08:47:10

恐怕还没有!

pBe 发表于 2022-7-6 09:01:53

 
Mircea没什么大不了的,只是给我们大家带来了一点乐趣。
 
干杯
页: [1]
查看完整版本: 帮助选择