martinle 发表于 2022-7-6 08:56:14

你好,pbe
 
 
马丁

pBe 发表于 2022-7-6 09:00:07

草稿
(Defun C:test ( / def bnd dir ave ss refpt mn mx e opt o)
(vl-load-com)
(defun def (cv msg)
   (cond ((getdist (strcat msg(if (numberp cv)
    (strcat " <" (rtos cv 2 4) ">: ")
    ": "
    ))))
                  (cv))
   )
(defun bnd (e / mn mx)      
(vla-getboundingbox (vlax-ename->vla-object e) 'mn 'mx)
(list (vlax-safearray->list mn)
   (vlax-safearray->list mx)))      
   
(setq dir '("U" (cadr o) (list (car (cadr o))(+ (cadr mx) dist ht))
         "D" (car o) (list (car (car o))(- (cadr mn) ht dist))
         "L" (car o) (list (- (car mn) ht dist) (cadr (car o)))
         "R" (cadr o) (list (+ (car mx) ht dist)(cadr (cadr o)))
         )
   )

   (if (and
       (setq ave (ssget ":S:E" '((0 . "LWPOLYLINE"))))
(setqdist(def dist "\nEnter Distance: "))
               (setqht(def ht "\nEnter room Height: "))
          (setq ss (ssget ":L" '((0 . "LWPOLYLINE"))))
          (setq refpt (bnd (ssname ave 0)))
               (setq mn (car refpt) mx (cadr refpt)))
            
(repeat (sslength ss)
             (setq e (ssname ss 0))
             (redraw e 3)
             (initget 1 "U D L R")
             (setq opt (getkword "\nSelect Direction : "))
             (setq o (bnd e) r (member opt dir))
             (vla-move (vlax-ename->vla-object e)
                   (vlax-3d-point (eval (cadr r)))
                   (vlax-3d-point (eval (caddr r)) ))
             (redraw e 4)
             (ssdel e ss)))
   (princ)
   )
 
现在试试。。时间用完了

martinle 发表于 2022-7-6 09:01:26

你好,pbe!
 
Acad Meldung:Fehlerhafte Zeichenfolge für ssget Modus
(字符串ssget模式不正确)
 
马丁

Lee Mac 发表于 2022-7-6 09:07:30

更改:
 
:S:E
 

 
:L
 
收件人:
 
_:S:E
 

 
_:L

martinle 发表于 2022-7-6 09:11:40

嗨,李!
 
伙计,我的椅子全湿了!哈哈!
它工作得很好!
谢谢pbe

谢谢你,李
你帮了我很多!
 
马丁

Lee Mac 发表于 2022-7-6 09:12:52

这都归功于pBe,我只考虑了语言变异。

pBe 发表于 2022-7-6 09:17:55

 
不客气,很高兴我能帮上忙
 
 
你在这里给我们的帮助比你认识李还多,非常感谢。
 
干杯
页: 1 [2]
查看完整版本: 多段线移动几次i