Đến nội dung


Hình ảnh
- - - - -

[yêu cầu] Lisp đo khoảng cách các điểm trên polyline


  • Please log in to reply
32 replies to this topic

#21 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 670 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 19 June 2015 - 09:59 PM

Mạn phép bác Tue_NV sửa lại chút xíu (và thêm dim Radial). Phần đặt dim phía trên hay dưới (trái phải) chỉ cũng tương đối ... Có gì các bác bổ sung:

(defun c:dopl (/ acadobj ddat dis doc e i modelspace obj ang ang1 ang2 m etype LM:BulgeCenter)
(defun LM:BulgeCenter (p1 p2 B)
(polar p1 (+ (angle p1 p2) (- (/ pi 2) (* 2 (atan B)))) (/ (* (distance p1 p2) (1+ (* b B))) 4 B)))
(defun etype (e / x)
(or (setq x (entget e)) (and (setq x (entget (entdel e))) (entdel e)))
(cdr (assoc 0 x)))
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-activedocument acadObj))
(setq modelSpace (vla-get-modelspace doc))
(setq i 0)
(if (setq e (car (entsel "\nChon Pline: ")))
(if (wcmatch (etype e) "*POLYLINE")
(if (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem):"))
(progn (setq ang1 (angle (vlax-curve-getstartpoint e) (vlax-curve-getpointatparam e (1+ i)))
ang2 (angle (vlax-curve-getstartpoint e) ddat)
ang (- ang2 ang1))
(cond ((= ang1 0)
(cond ((< ang2 (* pi 1.0)) (setq m -2.0))
(t (setq m +2.0))))
((= ang1 (* pi 0.5))
(cond ((< ang2 (* pi 0.5)) (setq m +2.0))
((> ang2 (* pi 1.5)) (setq m +2.0))
(t (setq m -2.0))))
((= ang1 (* pi 1.0))
(cond ((< ang2 (* pi 1.0)) (setq m +2.0))
((> ang2 (* pi 2.0)) (setq m -2.0))
(t (setq m -2.0))))
((= ang1 (* pi 1.5))
(cond ((< ang2 (* pi 0.5)) (setq m -2.0))
((< ang2 (* pi 1.5)) (setq m +2.0))
((> ang2 (* pi 1.5)) (setq m -2.0))
(t (setq m -2.0))))
(t
(cond ((< ang (* pi 0.0)) (setq m +2.0))
((< ang (* pi 1.0)) (setq m -2.0))
((< ang (* pi 2.0)) (setq m +2.0)))))
(setq obj (vlax-ename->vla-object e))
(setq dis (distance ddat (vlax-curve-getstartpoint e)))
(repeat (fix (vlax-curve-getendparam e))
(if (= 0 (vla-getbulge obj i))
(vla-adddimaligned modelSpace
(vlax-3d-point (vlax-curve-getpointatparam e i))
(vlax-3d-point (vlax-curve-getpointatparam e (1+ i)))
(vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
(- (angle '(0 0 0) (vlax-curve-getfirstderiv e (+ i 0.5))) (/ pi m))
dis)))
(progn (vla-adddimarc modelSpace
(vlax-3d-point (LM:BulgeCenter (vlax-curve-getpointatparam e i)
(vlax-curve-getpointatparam e (1+ i))
(vla-getbulge obj i)))
(vlax-3d-point (vlax-curve-getpointatparam e i))
(vlax-3d-point (vlax-curve-getpointatparam e (1+ i)))
(vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
(- (angle '(0 0 0) (vlax-curve-getfirstderiv e (+ i 0.5))) (/ pi m))
dis)))
(vla-adddimradial modelSpace
(vlax-3d-point (LM:BulgeCenter (vlax-curve-getpointatparam e i)
(vlax-curve-getpointatparam e (1+ i))
(vla-getbulge obj i)))
(vlax-3d-point (vlax-curve-getpointatparam e (+ i 0.5)))
0.))) ;if
(setq i (1+ i))) ;Repeat
) ;progn
) ;if
)) ;if
(princ))


  • 1

#22 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 19 June 2015 - 10:58 PM

Mình cũng nghĩ hướng ghi dim cũng tuỳ thuộc váo ý chủ quan của người dùng nữa nên đã viết thêm vào Lisp

Nếu dim ghi không phù hợp thì sau khi ghi dim ra thì lsp hỏi có muốn đặt dim theo hướng ngược lại <Y/N>?

Nếu gõ Y thì Lsp sẽ tự đảo chiều ghi dim, còn nếu nhấn N hoặc enter thì lsp giữ nguyên chiều ghi dim đó

- Bổ sung thêm lsp ghi dim bán kính

(defun c:dopl(/ ghidim acadObj doc modelSpace e ddat)
(defun ghidim(e ddat i / dis lst-dim)
       (setq obj (vlax-ename->vla-object e))
       (setq dis (distance ddat (vlax-curve-getclosestpointto e ddat t)))
     (Repeat (fix (vlax-curve-getEndParam e))
       (if (= 0 (vla-GetBulge obj i))
      (vla-AddDimAligned modelSpace
                    (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                    (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                           (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                    )
      )
(progn
 (vla-adddimradial modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5)))) 
  (vlax-3d-point (vlax-curve-getpointatparam e (+ i 0.5))) 0.0
 ) (setq lst-dim (append lst-dim (list (entlast))))
          (vla-AddDimArc modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5))))
                    (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                    (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                           (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                    )
          )
)
        );if
(setq lst-dim (append lst-dim (list (entlast))))
    (setq i (1+ i))
    );Repeat
lst-dim
)
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
 
    (setq modelSpace (vla-get-ModelSpace doc))
  (if (and (setq e (car(entsel "\n Chon Pline : "))) (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem) :")))
     (progn
(setq lst-dim (ghidim e ddat 0))
(initget "Y N")
(if (= "Y" (getkword "\nBan muon ghi dim theo huong nguoc lai <Y/N>")) (progn
   (mapcar 'entdel lst-dim) (command "._pedit" e "R" "") (ghidim e ddat 0)
))
  );progn
 );if
(princ)
)

  • 1

#23 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 19 June 2015 - 11:00 PM

Cám ơn mọi người đã nhiệt tình giúp đỡ. Quá tuyệt vời khi dùng!!!!


  • 0

#24 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 19 June 2015 - 11:09 PM

 

Mình cũng nghĩ hướng ghi dim cũng tuỳ thuộc váo ý chủ quan của người dùng nữa nên đã viết thêm vào Lisp

Nếu dim ghi không phù hợp thì sau khi ghi dim ra thì lsp hỏi có muốn đặt dim theo hướng ngược lại <Y/N>?

Nếu gõ Y thì Lsp sẽ tự đảo chiều ghi dim, còn nếu nhấn N hoặc enter thì lsp giữ nguyên chiều ghi dim đó

- Bổ sung thêm lsp ghi dim bán kính

(defun c:dopl(/ ghidim acadObj doc modelSpace e ddat)
(defun ghidim(e ddat i / dis lst-dim)
       (setq obj (vlax-ename->vla-object e))
       (setq dis (distance ddat (vlax-curve-getclosestpointto e ddat t)))
     (Repeat (fix (vlax-curve-getEndParam e))
       (if (= 0 (vla-GetBulge obj i))
      (vla-AddDimAligned modelSpace
                    (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                    (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                           (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                    )
      )
(progn
 (vla-adddimradial modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5)))) 
  (vlax-3d-point (vlax-curve-getpointatparam e (+ i 0.5))) 0.0
 ) (setq lst-dim (append lst-dim (list (entlast))))
          (vla-AddDimArc modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5))))
                    (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                    (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                           (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                    )
          )
)
        );if
(setq lst-dim (append lst-dim (list (entlast))))
    (setq i (1+ i))
    );Repeat
lst-dim
)
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
 
    (setq modelSpace (vla-get-ModelSpace doc))
  (if (and (setq e (car(entsel "\n Chon Pline : "))) (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem) :")))
     (progn
(setq lst-dim (ghidim e ddat 0))
(initget "Y N")
(if (= "Y" (getkword "\nBan muon ghi dim theo huong nguoc lai <Y/N>")) (progn
   (mapcar 'entdel lst-dim) (command "._pedit" e "R" "") (ghidim e ddat 0)
))
  );progn
 );if
(princ)
)

Lỗi Bác Tue_NV ơi

Bấm N thì ok

Bấm Y lỗi không thấy Dim xuất hiện (Thấy PL được highlight)

lỗi như sau:

Ban muon ghi dim theo huong nguoc lai <Y/N>y
 
Invalid option keyword.
; error: Function cancelled
 
Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype 
gen/Undo]: Osmode Reseted!

  • 0

#25 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 19 June 2015 - 11:12 PM

 

Lỗi Bác Tue_NV ơi

Bấm N thì ok

Bấm Y lỗi không thấy Dim xuất hiện (Thấy PL được highlight)

lỗi như sau:

Ban muon ghi dim theo huong nguoc lai <Y/N>y
 
Invalid option keyword.
; error: Function cancelled
 
Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype 
gen/Undo]: Osmode Reseted!

 

 

Đó là do mình viết quick code dùng hàm command ..^ _ ^ . Bạn dùng CAD2008 mới được 


  • 0

#26 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 670 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 19 June 2015 - 11:21 PM

Báo cáo bác Tue_VN cái của bác khi đảo chiều thì dim ARC  bị ngược.


  • 0

#27 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 19 June 2015 - 11:22 PM

Đó là do mình viết quick code dùng hàm command ..^ _ ^ . Bạn dùng CAD2008 mới được 

Mình đang sử dụng cad2008 mà

Bạn xem lại


  • 0

#28 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 670 Bài viết
Điểm đánh giá: 313 (khá)

Đã gửi 19 June 2015 - 11:39 PM

141736_0101.gifĐúng là Cad2008 lệnh Pedit không có chức năng đảo ngược (Reverse). Bạn dùng cái sửa lại ở trên, pick chuột phía nào thì Dim về phía đó.


  • 1

#29 snowman.hms

snowman.hms

    biết vẽ ellipse

  • Members
  • PipPip
  • 55 Bài viết
Điểm đánh giá: 26 (tàm tạm)

Đã gửi 20 June 2015 - 01:14 AM

(defun c:dpl ( / *error* cen d doc e l pi/2 rl rm s spc)
  
  (defun *error* (msg)    
    (and doc (vla-endundomark doc))
    (if	(and msg
	     (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,"))
	)
      (princ (strcat "\nError: " msg))
    )
  )

  (setq doc (vla-get-activedocument (vlax-get-acad-object))
        spc (vlax-get doc
		      (if (eq (getvar 'CVPORT) 1)
			'Paperspace
			'Modelspace
		      )
	    )
  )
  (if (setq e (ssget  "_+.:E:S" '((0 . "*POLYLINE"))))
    (progn
      (setq l  (_Lw->lst (ssname e 0))
	    rl (vl-remove-if '(lambda (x) (equal 0.0 (caddr x) 1e-8)) l)
	    rm   (if rl
		   (apply
		     (function min)
		     (mapcar
		       (function
			 (lambda (x)
			   (LM:BulgeRadius (car x) (cadr x) (caddr x))
			 )
		       )
		       rl
		     )
		   )
		 )
	    pi/2 (/ pi 2)
      )
      (while (and (setq d (getdist (caar l) "\nSpecify Offset Distance: "))
		  (if rm (>= d rm)))
	(princ (strcat "\nOffset Distance must: < [" (rtos rm 2 2) "]: ")))
      (initget "Left Right")
      (setq *ans*
	     (cond
	       (
		(getkword
		  (strcat "\nChoose [Left/Right] <"
			  (setq	*ans*
				 (cond (*ans*)  ("Left"))
			  )
			  ">: "
		  )
		)
	       )
	       (*ans*)
	     )
      )
      (if (= "Left" *ans*) (setq s +) (setq s -))
      (vla-startundomark doc)
      (foreach x l
	(if (= 0 (caddr x))
	  (_DimAligned spc (car x) (cadr x) (polar (cadddr x) (s (last x) pi/2) d))
	  (progn
	    (setq cen (LM:BulgeCenter (car x) (cadr x) (caddr x)))
	    (_DimArc spc cen (car x) (cadr x) (polar (cadddr x) (s (last x) pi/2) d))
	    (_DimRadial spc cen (cadddr x)))
	)
      )
      (*error* nil)
    )
  )
  (princ)
)

;;=========================== Sub Function ==============================;;

;; Bulge Center  -  Lee Mac
;; p1 - start vertex
;; p2 - end vertex
;; b  - bulge
;; Returns the center of the arc described by the given bulge and vertices
 
(defun LM:BulgeCenter ( p1 p2 b )
    (polar p1
        (+ (angle p1 p2) (- (/ pi 2) (* 2 (atan b))))
        (/ (* (distance p1 p2) (1+ (* b b))) 4 b)
    )
)

;; Bulge Radius  -  Lee Mac
;; p1 - start vertex
;; p2 - end vertex
;; b  - bulge
;; Returns the radius of the arc described by the given bulge and vertices
 
(defun LM:BulgeRadius ( p1 p2 b )
    (/ (* (distance p1 p2) (1+ (* b b))) 4 (abs b))
)

(defun _Lw->lst	(e / a b lst mid o p1 p2 pr)
  (setq	o  (vlax-ename->vla-object e)
	pr -1
  )
  (repeat (fix (vlax-curve-getEndParam o))
    (setq
      p1  (vlax-curve-getpointatparam o (setq pr (1+ pr)))
      p2  (vlax-curve-getpointatparam o (1+ pr))
      mid (vlax-curve-getpointatparam o (+ pr 0.5))
      b	  (vla-getbulge o pr)
      a	  (angle p1 p2)
      lst (cons (list p1 p2 b mid a) lst)
    )
  )
  (reverse lst)
)

(defun _DimArc (spc cen p1 p2 pt)
  (vlax-invoke spc 'addDimArc cen p1 p2 pt)
)

(defun _DimRadial (spc cen pt)
  (vlax-invoke spc 'AddDimRadial cen pt (/ (distance cen pt) -2.0))
)

(defun _DimAligned (spc p1 p2 pt)
  (vlax-invoke spc 'adddimaligned p1 p2 pt)
)

(vl-load-com)

Bài viết đã được chỉnh sửa nội dung bởi snowman.hms: 20 June 2015 - 01:38 AM

  • 1

#30 snowman.hms

snowman.hms

    biết vẽ ellipse

  • Members
  • PipPip
  • 55 Bài viết
Điểm đánh giá: 26 (tàm tạm)

Đã gửi 20 June 2015 - 01:35 AM

biến đầu vào dis của các bạn phải nhỏ hơn bán kính của cung tròn nhỏ nhất nếu không sẽ dẫn đến kết quả không mong muốn (khi dis> Rmin) :)


  • 1

#31 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 20 June 2015 - 07:24 AM

Mình đang sử dụng cad2008 mà

Bạn xem lại

 

Sorry! Do mình làm trên 2 CAD2008 và 2012, buồn ngủ nữa nên test CAD2012 cứ tưởng là test trên CAD 2008

code mình sửa

(defun c:dopl(/ ghidim acadObj doc modelSpace e ddat)
(defun ghidim(e ddat i / dis lst-dim)
       (setq obj (vlax-ename->vla-object e))
       (setq dis (distance ddat (vlax-curve-getclosestpointto e ddat t)))
     (Repeat (fix (vlax-curve-getEndParam e))
       (if (= 0 (vla-GetBulge obj i))
      (vla-AddDimAligned modelSpace
                    (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                    (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                           (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                    )
      )
(progn
 (vla-adddimradial modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5)))) 
  (vlax-3d-point (vlax-curve-getpointatparam e (+ i 0.5))) 0.0
 ) (setq lst-dim (append lst-dim (list (entlast))))
          (vla-AddDimArc modelSpace (vlax-3d-point (mapcar '+ (vlax-curve-getpointatparam e (+ i 0.5)) (vlax-curve-getSecondDeriv e (+ i 0.5))))
                    (vlax-3d-point (vlax-curve-getpointatparam e i)) (vlax-3d-point (vlax-curve-getpointatparam e (1+ i)) )
                    (vlax-3d-point (polar (vlax-curve-getpointatparam e (+ i 0.5))
                           (- (angle '(0 0 0) (vlax-curve-getFirstDeriv e (+ i 0.5))) (/ pi 2.0)) dis)
                    )
          )
)
        );if
(setq lst-dim (append lst-dim (list (entlast))))
    (setq i (1+ i))
    );Repeat
lst-dim
)
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
 
    (setq modelSpace (vla-get-ModelSpace doc))
  (if (and (setq e (car(entsel "\n Chon Pline : "))) (setq ddat (getpoint (vlax-curve-getstartpoint e) "\nDist (Pick diem) :")))
     (progn
(setq lst-dim (ghidim e ddat 0))
(initget "Y N")
(if (= "Y" (getkword "\nBan muon ghi dim theo huong nguoc lai <Y/N>")) (progn
   (mapcar 'entdel lst-dim) ;(command "._pedit" e "R" "") 
   (ghidim (Rpl e) ddat 0)
))
  );progn
 );if
(princ)
)
(defun rpl (p-ent)
(setq again nil)
;;;;(setq p-ent nil)
;;;;;;;;;;;(prompt "\nSelect a polyline: ")
;;;;;;(while (not p-ent)
;;;;(setq p-ent (car (entsel)))
(if (not p-ent)
(progn
(if (and (/= (dxf 0 p-ent) "POLYLINE")
(/= (dxf 0 p-ent) "LWPOLYLINE")
) ;_ end of and
(progn
(prompt "\nNot a polyline, select again:"
) ;_ end of prompt
(setq p-ent nil)
) ; progn
) ;_ end of if
) ;_ end of progn
) ;_ end of if
;;;;) ;_ end of while
(setq etype (dxf 0 p-ent)
x-ent p-ent
is-closed (dxf 70 p-ent)
) ; setq
(if (= etype "LWPOLYLINE")
(progn
(setq num-vert (dxf 90 p-ent)
elist (entget p-ent)
elist (member (assoc 10 elist) elist)
vvlist nil
) ; setq
(repeat num-vert
(setq vlist (list (cdr (assoc 10 elist))))
(setq vlist
(append vlist
(list (cdr (assoc 42 elist)))
) ;_ end of append
) ;_ end of setq
(setq vvlist (append vvlist
(list vlist)
) ;_ end of append
) ;_ end of setq
(setq elist (cdr elist)
elist (member (assoc 10 elist) elist)
) ; setq
) ; repeat
) ; progn lwpolyline
(progn
(setq vvlist nil
p-ent (entnext p-ent)
) ; setq
(while (/= "SEQEND"
(cdr
(assoc 0 (entget p-ent))
) ;_ end of cdr
) ;_ end of /=
(setq vlist (list (dxf 10 p-ent)))
(setq vlist (append vlist
(list (dxf 42 p-ent))
) ;_ end of append
) ;_ end of setq
(setq vvlist (append vvlist
(list vlist)
) ;_ end of append
) ;_ end of setq
(setq p-ent (entnext p-ent))
) ; while
) ; progn polyline
) ; if
(setq p-list (mapcar 'car vvlist)
p-list (reverse p-list)
b-list (mapcar 'cadr vvlist)
b-list (reverse b-list)
b-first (car b-list)
b-list (cdr b-list)
b-list (append b-list (list b-first))
b-list (mapcar '- b-list)
) ; setq
(setq enlist (list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length p-list))
(cons 70 (dxf 70 x-ent))
(cons 8 (dxf 8 x-ent))
) ; list
) ; setq
(setq elst nil)
(repeat (length p-list)
(setq
elst (append elst
(list (cons 10 (car p-list)))
) ;_ end of append
) ; setq
(setq
elst (append elst
(list (cons 42 (car b-list)))
) ;_ end of append
) ; setq
(setq p-list (cdr p-list))
(setq b-list (cdr b-list))
) ; repeat
(setq enlist (append enlist elst))
(entdel x-ent)
(entmakex enlist)
;;;;;(prompt "\nPolyline direction is reversed.\n ")
;;;;(princ)
);rpl
(defun dxf (code ename)
(cdr (assoc code (entget ename)))
) 

  • 1

#32 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 20 June 2015 - 08:09 AM

Đã ok rồi 

Cám ơn mọi người


  • 0

#33 thanhduan2470

thanhduan2470

    Chưa sử dụng CAD

  • Members
  • Pip
  • 4 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 20 June 2015 - 11:34 AM

Ok con bê! Diễn đàn có nhiều cao thủ quá nể :D !


  • 0