DIỄN ĐÀN TÂM NĂNG DƯỠNG SINH PHỤC HỒI SỨC KHỎE
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

DIỄN ĐÀN TÂM NĂNG DƯỠNG SINH PHỤC HỒI SỨC KHỎE

Chào mừng quý vị và các bạn đến với diễn đàn https://tamnangduongsinh.forumvi.com
 
Trang ChínhPortalGalleryLatest imagesTìm kiếmĐăng kýĐăng Nhập
Đăng Nhập
Tên truy cập:
Mật khẩu:
Đăng nhập tự động mỗi khi truy cập: 
:: Quên mật khẩu
Hỗ trợ trực tuyến
Admin : Nguyễn Gia Sơn điện thoại 0983559480
Thống kê truy cập diễn đàn
Top posters
tamnangduongsinh (586)
lisp - lisp tạo đường bao bằng region hoặc polyline I_vote_lcaplisp - lisp tạo đường bao bằng region hoặc polyline I_voting_barlisp - lisp tạo đường bao bằng region hoặc polyline I_vote_rcap 
Admin (372)
lisp - lisp tạo đường bao bằng region hoặc polyline I_vote_lcaplisp - lisp tạo đường bao bằng region hoặc polyline I_voting_barlisp - lisp tạo đường bao bằng region hoặc polyline I_vote_rcap 
tamphat (129)
lisp - lisp tạo đường bao bằng region hoặc polyline I_vote_lcaplisp - lisp tạo đường bao bằng region hoặc polyline I_voting_barlisp - lisp tạo đường bao bằng region hoặc polyline I_vote_rcap 
Latest topics
» Hàm lượng cốt thép
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeTue Apr 09, 2024 11:15 am by tamnangduongsinh

» Hướng dẫn cách kiểm tra độ chai pin laptop, máy tính cực đơn giản
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeFri Mar 29, 2024 9:20 am by tamnangduongsinh

» GIẾNG CÁT
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeWed Mar 27, 2024 3:58 pm by tamnangduongsinh

» HƯỚNG DẪN PHÂN TÍCH THÀNH PHẦN HẠT CỦA CÁT
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSat Mar 23, 2024 9:53 am by tamnangduongsinh

» Hướng dẫn cách xả pin laptop đúng cách
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSat Mar 23, 2024 9:35 am by tamnangduongsinh

» "Vụ tử vong vì laptop phát nổ ở Hải Dương": Có thật là vừa cắm sạc vừa dùng sẽ khiến máy tính phát nổ?
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSat Mar 23, 2024 8:56 am by tamnangduongsinh

» Hướng dẫn khắc phục lỗi không ghost được với ổ cứng SSD
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeFri Mar 15, 2024 2:35 pm by Admin

» Cách Boot WinPE từ ổ cứng không cần USB với 1 click
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeFri Mar 15, 2024 2:33 pm by Admin

»  Cách bung file Ghost (.GHO) trên máy tính chuẩn UEFI
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeFri Mar 15, 2024 2:31 pm by tamnangduongsinh

» Hướng dẫn sử dụng Grab Booking trên điện thoại cực kỳ đơn giản
lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeFri Mar 15, 2024 11:36 am by tamnangduongsinh

Tìm kiếm
 
 

Display results as :
 

 


Rechercher Advanced Search

KẾT QUẢ XỔ SỐ
Keywords
1 tròn ct_height 3 lisp 2 CHIỀU 4 cống 5 tiện 6

 

 lisp tạo đường bao bằng region hoặc polyline

Go down 
Tác giảThông điệp
tamnangduongsinh




Tổng số bài gửi : 586
Tổng số điểm : 1397
Được cảm ơn : 85
Join date : 05/12/2014

lisp - lisp tạo đường bao bằng region hoặc polyline Empty
Bài gửiTiêu đề: lisp tạo đường bao bằng region hoặc polyline   lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSun Mar 17, 2019 5:55 pm

(defun c:bao(/ p os)
 (setq os (getvar "osmode"))
 (setvar "osmode" 0)
 (setq p (getpoint "pick diem :"))
 
 (command "._boundary" "A" "O" "R" "" p "")
 (Command "._region" "L" "")
 (setq el (entlast))
(redraw el 3)
 (while (setq p (getpoint "pick diem :"))
     (command "._boundary" p "")
     (Command "._region" "L" "")
   (command "._union" el "L" "")
   (setq el (entlast))
   (redraw el 3)
 )
 (setvar "osmode" os)
)


Nguồn bài viết : https://www.cadviet.com/forum/topic/168447-vi%E1%BA%BFt-lisp-t%E1%BA%A1o-%C4%91%C6%B0%E1%BB%9Dng-bao/
Về Đầu Trang Go down
tamnangduongsinh




Tổng số bài gửi : 586
Tổng số điểm : 1397
Được cảm ơn : 85
Join date : 05/12/2014

lisp - lisp tạo đường bao bằng region hoặc polyline Empty
Bài gửiTiêu đề: Re: lisp tạo đường bao bằng region hoặc polyline   lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSun Mar 17, 2019 6:13 pm

Đây là lisp tạo đường biên, của nước ngoài.

;---------- Co the dung lenh REGION va UNION neu cac duong kin
;---------- lib:IsPtInView. Kiem tra xem lieu 1 diem co nam trong viewport. Auguments: 'pt' mot diem de phan tich trong cac MSC. Return : T hoac nil neu 'pt' o trong khung nhin hay khong
(defun lib:IsPtInView (pt / VCTR Y_Len SSZ X_Pix Y_Pix X_Len Lc Uc)
(setq pt (trans pt 0 1))
(setq VCTR (getvar "VIEWCTR") Y_Len (getvar "VIEWSIZE")
SSZ (getvar "SCREENSIZE") X_Pix (car SSZ) Y_Pix (cadr SSZ)
X_Len (* (/ X_Pix Y_Pix) Y_Len)
Lc (polar VCTR (dtr 180.0) (* 0.5 X_Len))
Uc (polar Lc 0.0 X_Len) Lc (polar Lc (dtr 270.0) (* 0.5 Y_Len))
Uc (polar Uc (dtr 90.0) (* 0.5 Y_Len)))
(if (and (> (car pt) (car Lc)) (< (car pt) (car Uc)) (> (cadr pt) (cadr Lc)) (< (cadr pt) (cadr Uc)))
T
nil))
(defun DTR (a)
(* pi (/ a 180.0)))
(defun RTD (a)
(/ (* a 180.0) pi))
;---------- lib:Zoom2Lst. Function: Zoom danh sach cac diem bien. Arguments: 'vlist' 1 danh sach cac diem trong MSC. Zoom man hinh de thay tat ca cac diem co the nhin thay. Returns: t co duoc phong to, nil khong co
(defun lib:Zoom2Lst( vlist / bl tr Lst OS)
(setq Lst (lib:pt_extents vlist) bl (car Lst) tr (cadr Lst))
(if (not (and (lib:IsPtInView bl) (lib:IsPtInView tr)))
(progn
(setq OS (getvar "OSMODE")) (setvar "OSMODE" 0)
(command "_.Zoom" "_Window" (trans bl 0 1) (trans tr 0 1) "_.Zoom" "0.95x")
(setvar "OSMODE" OS) T) NIL))
;---------- lib:pt_extents. Function : tra ve gioi han cua MIN, MAX X,Y,Z danh sach cac diem. Argument: 'vlist' 1 danh sach diem. Returns: danh sach cac diem
(defun lib:pt_extents (vlist / tmp)
(setq tmp (mapcar '(lambda (x) (vl-remove-if 'null x))
(mapcar '(lambda (what) (mapcar '(lambda (x) (nth what x)) vlist)) '(0 1 2))))
(list (mapcar '(lambda(x) (apply 'min x)) tmp) (mapcar '(lambda(x) (apply 'max x)) tmp)))
;========== HAM CHINH: tao duong bien cho cac doi tuong. http://www.caduser.ru/forum/index.php...&TID=30797. External contour of objects
(defun C:ECO ( / *error* blk obj MinPt MaxPt hiden pt pl unnamed_block isRus tmp_blk adoc blks lays lay oname sel csp loc sc ec ret DS osm)
(defun *error* (msg)
(mapcar '(lambda (x) (vla-put-Visible x :vlax-true)) hiden)
(vla-endundomark adoc)
(if (and tmp_blk (not (vlax-erased-p tmp_blk)) (vlax-write-enabled-p tmp_blk))
(vla-Erase tmp_blk))
(if osm (setvar "OSMODE" osm))
(foreach x loc
(vla-put-lock x :vlax-true)))
(vl-load-com) (setvar "CMDECHO" 0) (setq osm (getvar "OSMODE"))
(if (zerop (getvar "WORLDUCS"))
(progn (vl-cmdf "_.UCS" "") (vl-cmdf "_.Plan" "")))
(setq isRus (= (getvar "SysCodePage") "ANSI_1251")) ;1251 la ma ANSI cua tieng Nga, 1252 la ma ANSI cua tieng Anh
(setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
blks (vla-get-blocks adoc) lays (vla-get-layers adoc))
(vla-startundomark adoc)
(if isRus (princ "\nВыберите объекты для построения контура") (princ "\nSelect objects for making a contour"))
(if (setq sel (ssget))
(progn
(setq sel (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex sel)))))
(setq csp (vla-objectidtoobject adoc (vla-get-ownerid (car sel))))
(setq unnamed_block (vla-add (vla-get-blocks adoc) (vlax-3d-point '(0. 0. 0.)) "*U"))
(foreach x sel
(setq oname (strcase (vla-get-objectname x)) lay (vla-item lays (vla-get-layer x)))
(if (= (vla-get-lock lay) :vlax-true)
(progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
(cond ((member oname '("ACDBVIEWPORT" "ACDBATTRIBUTEDEFINITION")) nil)
((= oname "ACDBBLOCKREFERENCE")
(vla-InsertBlock unnamed_block
(vla-get-insertionpoint x) (vla-get-name x)
(vla-get-xscalefactor x) (vla-get-yscalefactor x)
(vla-get-zscalefactor x) (vla-get-rotation x))
(setq blk (cons x blk)))
(t (setq obj (cons x obj)))));_foreach
(setq lay (vla-item lays (getvar "CLAYER")))
(if (= (vla-get-lock lay) :vlax-true) (progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
(if obj (progn (vla-copyobjects (vla-get-activedocument (vlax-get-acad-object))
(vlax-make-variant (vlax-safearray-fill
(vlax-make-safearray vlax-vbobject (cons 0 (1- (length obj))))
obj)) unnamed_block)))
(setq obj (append obj blk))
(if obj (progn
(setq tmp_blk (vla-insertblock csp (vlax-3d-point '(0. 0. 0.)) (vla-get-name unnamed_block) 1.0 1.0 1.0 0.0))
(vla-GetBoundingBox tmp_blk 'MinPt 'MaxPt) ;_chan ranh gioi
(setq MinPt (vlax-safearray->list MinPt) MaxPt (vlax-safearray->list MaxPt)
DS (max (distance MinPt (list (car MinPt) (cadr MaxPt)))
(distance MinPt (list (car MaxPt) (cadr MinPt))))
DS (* 0.2 DS) ;1/5
DS (max DS 10) MinPt (mapcar '- MinPt (list DS DS))
MaxPt (mapcar '+ MaxPt (list DS DS)))
(lib:Zoom2Lst (list MinPt MaxPt)) (setq sset (ssget "_C" MinPt MaxPt))
(if sset (progn (setvar "OSMODE" 0)
(setq hiden (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex sset))))
hiden (vl-remove tmp_blk hiden))
(mapcar '(lambda(x) (vla-put-Visible x :vlax-false)) hiden)
(setq pt (mapcar '+ MinPt (list (* 0.5 DS) (* 0.5 DS))))
(vl-cmdf "_.RECTANG" (trans MinPt 0 1) (trans MaxPt 0 1))
(setq pl (vlax-ename->vla-object(entlast)))
(setq sc (1-(vla-get-count csp)))
(if (VL-CATCH-ALL-ERROR-P (VL-CATCH-ALL-APPLY '(lambda ()
(vl-cmdf "_-BOUNDARY" (trans pt 0 1) "")
(while (> (getvar "CMDACTIVE") 0) (command "")))))
(if isRus (princ "\nНе удалось построить контур") (princ "\nIt was not possible to construct a contour")))
(setq ec (vla-get-count csp))
(while (< sc ec) (setq ret (append ret (list (vla-item csp sc))) sc(1+ sc)))
(setq ret (vl-remove pl ret))
(mapcar '(lambda (x) (vla-Erase x) (vlax-release-object x)) (list pl tmp_blk)) (setq pl nil tmp_blk nil)
(setq ret (mapcar '(lambda ( x / mipt) (vla-GetBoundingBox x 'MiPt nil) ;_chan ranh gioi
(setq MiPt (vlax-safearray->list MiPt)) (list MiPt x)) ret))
(setq ret (vl-sort ret '(lambda (e1 e2) (< (distance MinPt (car e1)) (distance MinPt (car e2))))))
(setq pl (nth 1 ret) ret (vl-remove pl ret)) (mapcar 'vla-erase (mapcar 'cadr ret))
(mapcar '(lambda(x) (vla-put-Visible x :vlax-true)) hiden)
(foreach x loc (vla-put-lock x :vlax-true))
(if pl (progn (initget "Yes No")
(if (= (getkword (if isRus "\nУдалять объекты? [Yes/No] : " "\nDelete objects? [Yes/No] : ")) "Yes")
(mapcar '(lambda (x) (if (vlax-write-enabled-p x) (vla-Erase x))) obj)))
(if isRus (princ "\nНе удалось построить контур") (princ "\nIt was not possible to construct a contour")))))))
(VL-CATCH-ALL-APPLY '(lambda () (mapcar 'vlax-release-object (list unnamed_block tmp_blk csp blks lays))))));_if not
(foreach x loc (vla-put-lock x :vlax-true)) (setvar "OSMODE" osm)
(vla-endundomark adoc) (vlax-release-object adoc) (princ))
(if (= (getvar "SysCodePage") "ANSI_1251")
(princ "\nНаберите в командной строке ECO")
(princ "\nType ECO in command line"))
;----------

nguồn bài viết :https://www.cadviet.com/forum/topic/145843-xin-lisp-lisp-boundary-th%C3%A0nh-1-h%C3%ACnh/
Về Đầu Trang Go down
tamnangduongsinh




Tổng số bài gửi : 586
Tổng số điểm : 1397
Được cảm ơn : 85
Join date : 05/12/2014

lisp - lisp tạo đường bao bằng region hoặc polyline Empty
Bài gửiTiêu đề: Re: lisp tạo đường bao bằng region hoặc polyline   lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSun Mar 17, 2019 6:15 pm

;| ! *******************************************************************
;; ! lib:IsPtInView
;; ! *******************************************************************
;; ! ????????? ????????? ?? ????? ? ??????? ??????
;; ! Auguments: 'pt' - ????? ??? ??????? ? ???!!!
;; ! Return : T ??? nil ???? 'pt' ? ??????? ?????? ??? ???
;; ! *******************************************************************|;
(defun lib:IsPtInView (pt / VCTR Y_Len SSZ X_Pix Y_Pix X_Len Lc Uc)
(setq pt (trans pt 0 1))
(setq VCTR (getvar "VIEWCTR") Y_Len (getvar "VIEWSIZE")
SSZ (getvar "SCREENSIZE")
X_Pix (car SSZ) Y_Pix (cadr SSZ)
X_Len (* (/ X_Pix Y_Pix) Y_Len)
Lc (polar VCTR (dtr 180.0) (* 0.5 X_Len))
Uc (polar Lc 0.0 X_Len)
Lc (polar Lc (dtr 270.0) (* 0.5 Y_Len))
Uc (polar Uc (dtr 90.0) (* 0.5 Y_Len)))
(if (and (> (car pt) (car Lc))(< (car pt) (car Uc))
(> (cadr pt) (cadr Lc))(< (cadr pt) (cadr Uc)))
T nil))
(defun DTR (a)(* pi (/ a 180.0)))
;| ! ***************************************************************************
;; ! lib:pt_extents
;; ! ***************************************************************************
;; ! Function : ?????????? ??????? MIN, MAX X,Y,Z ?????? ?????
;; ! Argument : 'vlist' - ?????? ?????
;; ! Returns : ?????? ????? (??????? ?????????)
;; ! ***************************************************************************|;
(defun lib:pt_extents (vlist / tmp)
(setq tmp (mapcar '(lambda (x) (vl-remove-if 'null x))
(mapcar '(lambda (what) (mapcar '(lambda (x) (nth what x)) vlist))
'(0 1 2))));_setq

(list (mapcar '(lambda(x)(apply 'min x)) tmp)(mapcar '(lambda(x)(apply 'max x)) tmp)));_defun
;http://www.theswamp.org/index.php?topic=15123.0
;;;(defun GetBoundingBox-3d (pt_lst)
;;; (list (apply 'mapcar (cons 'min pt_lst))
;;; (apply 'mapcar (cons 'max pt_lst))
;;; )
;;Wink
; ! ***********************************************************
;; ! lib:Zoom2Lst
;; ! **********************************************************
;; ! Function : Zoom ?????? ?????? ?????
;; ! Arguments: 'vlist' - ?????? ????? ? ???!!!!
;; ! ????????? ?????, ????? ??? ????? ???? ?????
;; ! Returns : t - ???? ???????????? nil - ???
;; ! **********************************************************
(defun lib:Zoom2Lst( vlist / bl tr Lst OS)
(setq Lst (lib:pt_extents vlist)
bl (car Lst) tr (cadr Lst))
(if (not (and (lib:IsPtInView bl) (lib:IsPtInView tr)))
(progn (setq OS (getvar "OSMODE"))(setvar "OSMODE" 0)
(command "_.Zoom" "_Window" (trans bl 0 1)(trans tr 0 1)
"_.Zoom" "0.95x")
(setvar "OSMODE" OS)
T) NIL))
;External contour of objects
(defun C:ECO ( / *error* blk obj MinPt MaxPt hiden pt pl unnamed_block isRus
tmp_blk adoc blks lays lay oname sel csp loc sc ec ret DS osm iNSpT)
(defun *error* (msg)(princ msg)(mapcar '(lambda (x) (vla-put-Visible x :vlax-true)) hiden)
(vla-endundomark adoc)(if (and tmp_blk (not (vlax-erased-p tmp_blk))(vlax-write-enabled-p tmp_blk) )
(vla-Erase tmp_blk))(if osm (setvar "OSMODE" osm))(foreach x loc (vla-put-lock x :vlax-true)))
(vl-load-com)(setvar "CMDECHO" 0)(setq osm (getvar "OSMODE"))
(if (zerop (getvar "WORLDUCS"))(progn(vl-cmdf "_.UCS" "")(vl-cmdf "_.Plan" "")))
(setq isRus (= (getvar "SysCodePage") "ANSI_1251"))
(setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
blks (vla-get-blocks adoc) lays (vla-get-layers adoc))
(vla-startundomark adoc)(if isRus (princ "\n???????? ??????? ??? ?????????? ???????")(princ "\nSelect objects for making a contour"))
(vlax-for lay lays
(if (= (vla-get-lock lay) :vlax-true)
(progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
)
(if (setq sel (ssget))(progn
(setq sel (ssnamex sel))
;;; (setq iNSpT(apply 'mapcar (cons 'min
;;; (mapcar 'cadr (apply 'append (mapcar '(lambda(x)(vl-remove-if-not 'listp x)) sel))))))
(setq iNSpT '(0 0 0))
(setq sel (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr sel))))
(setq csp (vla-objectidtoobject adoc (vla-get-ownerid (car sel))))
; (setq unnamed_block (vla-add (vla-get-blocks adoc)(vlax-3d-point '(0. 0. 0.)) "*U"))
(setq unnamed_block (vla-add (vla-get-blocks adoc)(vlax-3d-point inspt) "*U"))
(foreach x sel
(setq oname (strcase (vla-get-objectname x)))
(cond ((member oname '("ACDBVIEWPORT" "ACDBATTRIBUTEDEFINITION" "ACDBMTEXT" "ACDBTEXT")) nil)
((= oname "ACDBBLOCKREFERENCE")
(vla-InsertBlock unnamed_block
(vla-get-insertionpoint x)(vla-get-name x)
(vla-get-xscalefactor x)(vla-get-yscalefactor x)
(vla-get-zscalefactor x)(vla-get-rotation x))
(setq blk (cons x blk)))
(t (setq obj (cons x obj)))));_foreach
(setq lay (vla-item lays (getvar "CLAYER")))
(if (= (vla-get-lock lay) :vlax-true)(progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
(if obj (progn (vla-copyobjects (vla-get-activedocument (vlax-get-acad-object))
(vlax-make-variant (vlax-safearray-fill
(vlax-make-safearray vlax-vbobject (cons 0 (1- (length obj))))
obj)) unnamed_block)))
(setq obj (append obj blk))
(if obj (progn
;(setq tmp_blk (vla-insertblock csp (vlax-3d-point '(0. 0. 0.))(vla-get-name unnamed_block) 1.0 1.0 1.0 0.0))
(setq tmp_blk (vla-insertblock csp (vlax-3d-point inspt)(vla-get-name unnamed_block) 1.0 1.0 1.0 0.0))
(vla-GetBoundingBox tmp_blk 'MinPt 'MaxPt) ;_??????? ?????
(setq MinPt (vlax-safearray->list MinPt) MaxPt (vlax-safearray->list MaxPt)
DS (max (distance MinPt (list (car MinPt)(cadr MaxPt)))
(distance MinPt (list (car MaxPt)(cadr MinPt))))
DS (* 0.2 DS) ;1/5
DS (max DS 10) MinPt (mapcar '- MinPt (list DS DS))
MaxPt (mapcar '+ MaxPt (list DS DS)))
(lib:Zoom2Lst (list MinPt MaxPt))(setq sset (ssget "_C" MinPt MaxPt))
(if sset (progn (setvar "OSMODE" 0)
(setq hiden (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex sset))))
hiden (vl-remove tmp_blk hiden))
(mapcar '(lambda(x)(vla-put-Visible x :vlax-false)) hiden)
(setq pt (mapcar '+ MinPt (list (* 0.5 DS)(* 0.5 DS))))
(vl-cmdf "_.RECTANG" (trans MinPt 0 1)(trans MaxPt 0 1))
(setq pl (vlax-ename->vla-object(entlast)))
(setq sc (1-(vla-get-count csp)))
(if (VL-CATCH-ALL-ERROR-P (VL-CATCH-ALL-APPLY '(lambda ()
(vl-cmdf "_-BOUNDARY" (trans pt 0 1) "")
(while (> (getvar "CMDACTIVE") 0)(command "")))))
(if isRus (princ "\n?? ??????? ????????? ??????")(princ "\nIt was not possible to construct a contour")))
(setq ec (vla-get-count csp))
(while (< sc ec)(setq ret (append ret (list (vla-item csp sc))) sc(1+ sc)))
(setq ret (vl-remove pl ret))
(mapcar '(lambda (x)(vla-Erase x)(vlax-release-object x))(list pl tmp_blk))(setq pl nil tmp_blk nil)
(setq ret (mapcar '(lambda ( x / mipt)(vla-GetBoundingBox x 'MiPt nil) ;_??????? ?????
(setq MiPt (vlax-safearray->list MiPt))(list MiPt x)) ret))
(setq ret (vl-sort ret '(lambda (e1 e2)(< (distance MinPt (car e1))(distance MinPt (car e2))))))
(setq pl (nth 1 ret) ret (vl-remove pl ret)) (mapcar 'vla-erase (mapcar 'cadr ret))
(mapcar '(lambda(x)(vla-put-Visible x :vlax-true)) hiden)
(foreach x loc (vla-put-lock x :vlax-true))
(if pl (progn (initget "Yes No")
(if (= (getkword (if isRus "\n??????? ???????? [Yes/No] : " "\nDelete objects? [Yes/No] : ")) "Yes")
(mapcar '(lambda (x) (if (vlax-write-enabled-p x)(vla-Erase x))) obj)))
(if isRus (princ "\n?? ??????? ????????? ??????")(princ "\nIt was not possible to construct a contour")))))))
(VL-CATCH-ALL-APPLY '(lambda ()(mapcar 'vlax-release-object
(list unnamed_block tmp_blk csp blks lays))))));_if not
(foreach x loc (vla-put-lock x :vlax-true))(setvar "OSMODE" osm)
(vla-endundomark adoc)(vlax-release-object adoc)(princ))

nguồn bài viết :https://www.cadviet.com/forum/topic/145843-xin-lisp-lisp-boundary-th%C3%A0nh-1-h%C3%ACnh/
Về Đầu Trang Go down
tamnangduongsinh




Tổng số bài gửi : 586
Tổng số điểm : 1397
Được cảm ơn : 85
Join date : 05/12/2014

lisp - lisp tạo đường bao bằng region hoặc polyline Empty
Bài gửiTiêu đề: Re: lisp tạo đường bao bằng region hoặc polyline   lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSun Mar 17, 2019 6:19 pm

Về Đầu Trang Go down
tamnangduongsinh




Tổng số bài gửi : 586
Tổng số điểm : 1397
Được cảm ơn : 85
Join date : 05/12/2014

lisp - lisp tạo đường bao bằng region hoặc polyline Empty
Bài gửiTiêu đề: Re: lisp tạo đường bao bằng region hoặc polyline   lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitimeSun Mar 17, 2019 6:23 pm

Lisp tạo Boundary ra Polyline với Layer tùy chọn :

(defun c:b2 (/ elast lay) (setq elast (entlast) lay (cdr (assoc 8 (entget (car (entsel "\nPick an entity to gap Layer :"))))))
(command ".boundary")
(while (= (logand (getvar "CMDACTIVE") 1) 1) (command pause))
(while (setq elast (entnext elast))(vla-put-Layer (vlax-ename->vla-object elast) lay)))

(defun c:HO ()
(vl-load-com)
(prompt "pick diem")
(COMMAND "-LAYER" "m" "Ho" "color" "5" "" "") ;;; "lw" "1"
(command "boundary" pause "") (princ))

Nguồn bài viết :https://www.cadviet.com/forum/topic/53017-y%C3%AAu-c%E1%BA%A7u-lisp-t%E1%BA%A1o-boundary-ra-polyline-v%E1%BB%9Bi-layer-t%C3%B9y-ch%E1%BB%8Dn/?tab=comments#comment-166284
Về Đầu Trang Go down
Sponsored content





lisp - lisp tạo đường bao bằng region hoặc polyline Empty
Bài gửiTiêu đề: Re: lisp tạo đường bao bằng region hoặc polyline   lisp - lisp tạo đường bao bằng region hoặc polyline I_icon_minitime

Về Đầu Trang Go down
 
lisp tạo đường bao bằng region hoặc polyline
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Lisp tìm kiếm và thay thế text cũ bằng text mới
» Lisp chuyển region sang pline!!
» Lisp copy nhiều text được chọn cộng hoặc trừ 1 số bất kỳ
» Tạo tuyến từ đường polyline hay tuyến đã được xây dựng trước đó
» Copy doi tuong tu XREF hoac Block

Permissions in this forum:Bạn không có quyền trả lời bài viết
DIỄN ĐÀN TÂM NĂNG DƯỠNG SINH PHỤC HỒI SỨC KHỎE :: Autocad :: Lisp autocad-
Chuyển đến