如何将所有点更改为
我找到了一个lisp,但它不能同时将所有点都变成矩形。请有任何人可以帮我尝试更新这个Lisp程序?还是给我另一个选择?
谢谢!!
(defun C:ptr ()
(setq wide (getdist "\nEnter Rectangle X Dimension ? :")
(setq high (getdist "\nEnter Rectangle Y Dimension ? :")
(setq ptc (getpoint "\nPick Center of Rectangle:")
hwide (/ wide 2.0)
hhigh (/ high 2.0)
ptll (list (- (car ptc) hwide) (- (cadr ptc) hhigh))
ptur (list (+ (car ptll) wide) (+ (cadr ptll) high))
)
(setvar "plinewid" 0.0)
(command ".PLINE" ptll "W" "0" "0" ".X" ptur ".Y" ptll ptur ".X" ptll ".Y" ptur "C")
)
(prin1) 这应该足够了。
(defun c:Test (/ w h p)
(if (and (setq w (getdist "\n Specify Rectangle X Dimension :"))
(setq h (getdist "\n Specify Rectangle Y Dimension :"))
(setq p (getpoint "\n Pick Center Point of Rectangle:"))
)
(command "_.rectang" "_w" 0.0 "_non" (setq 1p (polar (polar p (* pi 0.5) (/ h 2.)) pi (/ w 2.))) "_non"
(polar (polar 1p 0. w) (* pi 1.5) h)
)
)
(princ)
)
亲爱的Tharwat,
谢谢你的回复。
我有很多点,我怎么能把所有的点同时变成矩形??在你的Lisp程序中,我需要逐个选择点。
这
(defun c:Test (/ w h p s i 1p 2p 3p 4p)
;; Tharwat 10.12.2014 ;;
;; Draw rectangles using the center ;;
;; of selected points ;;
(if (and (setq w (getdist "\n Specify Rectangle X Dimension :"))
(setq h (getdist "\n Specify Rectangle Y Dimension :"))
(princ "\n Select Point objects ...")
(setq s (ssget '((0 . "POINT"))))
)
(repeat (setq i (sslength s))
(setq p(cdr (assoc 10 (entget (ssname s (setq i (1- i))))))
1p (polar (polar p (* pi 0.5) (/ h 2.)) pi (/ w 2.))
2p (polar 1p 0. w)
3p (polar 2p (* pi 1.5) h)
4p (polar 3p pi w)
)
(entmakex
(append (list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100
.
"AcDbPolyline"
)
'(90 . 4)
'(70 . 1)
)
(mapcar '(lambda (q) (cons 10 q)) (list 1p 2p 3p 4p))
)
)
)
)
(princ)
)
亲爱的Tharwat,
非常感谢你。。。。。。。。。。。。这是对的。
你是个天才D: D
非常欢迎你。 亲爱的Tharwat,
乌烟瘴气!!再次打扰你。。。。。。。。。
请问,有没有可能用多个圆变成多个矩形?
或者许多矩形改变了我需要的大小?
只需替换程序中的以下行。
这
(setq s (ssget '((0 . "POINT"))))
用这个。。
(setq s (ssget '((0 . "POINT,CIRCLE"))))
亲爱的Tharwat,
那很好。你真是我的英雄。
非常感谢。。。。
祝您有个美好的一天。
页:
[1]
2