Đến nội dung


Hình ảnh
- - - - -

[Nhờ Chỉnh Sửa] Đo khoảng cách hai điểm và ghi kết quả ra nơi minh chọn


  • Please log in to reply
49 replies to this topic

#21 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 05 November 2014 - 12:13 PM

- nhoc vẫn chưa hiểu í bạn đó lắm sao phải chọn rùi pick 2 điểm nữa nhỉ đê test thử hàm anh Ket xem thế nào ^^
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#22 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 05 November 2014 - 01:20 PM

Cảm ơn các bác. e đang làm vê ks e cân do kc giữa điểm. trên tuyên mà tuyến thì dạng spl. nen e muốn đo kc giữa 2 điểm A, B trên tuyen.


  • 0

#23 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 05 November 2014 - 01:30 PM

Tiện đây e muôn hỏi 1 vấn đề: e có 1 đường gấp khúc ABCDE, công việc của e là đo kc từng đoạn thẳng AB, BC,..và các góc giữa các đoạn thẳng. Liệu có lisp nào có thể thống kê luôn chiều dài các đoạn thẳng và góc các đoạn thẳng không ạ. Mong các bác giúp 1 tay. e chân thành cảm ơn !

http://www.cadviet.c.../83858_vidu.dwg


  • 0

#24 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 05 November 2014 - 01:34 PM

- ah vậy ý bạn đó là lấy khoảng cách 2 điểm bất kỳ thuộc đường đã chọn ^^, theo gợi ý anh Ket nhoc viết lại thế này xem bạn đó vừa ý chưa hì :)

;=======================
(defun _d2p(e p1 p2) ;Getdist along curve by : Ename P1 P2	
	(abs (apply '- (mapcar '(lambda(x)(vlax-curve-getDistAtPoint e (trans (vlax-curve-getclosestpointto e x) 1 0))) (list p1 p2))))
)
;====================================
(defun C:TL3(/ ss L te p1 p2 textmau P enty old)
(setq old (getvar 'osmode))
(setvar 'osmode 545)
(prompt "chon doi tuong")
(while (and 
            (setq ss (ssget "+.:E:S" (list (cons 0 "*LINE,ARC,CIRCLE,ELLIPSE,SPLINE"))))
            (setq p1 (getpoint "\n Chon diem thu nhat :")) 
            (setq p2 (getpoint p1 "\n Chon diem thu hai :"))
			)
(setq enty (ssname ss 0))
(setq L (_d2p enty p1 p2))
(setq p (getpoint "\nPick diem chen hoac enter bo qua de chon Text :"))
 
(cond ((/= p nil)
  
    (if (not textmau) (setq textmau (car(entsel "\nChon Text mau:"))))
    (entmake (list (cons 0 "TEXT") (cons 1 (rtos L 2 2)) (assoc 40 (entget textmau)) 
  (cons 10 p) (cons 11 p) (assoc 7 (entget textmau)) 
    ))
  )
  ((= p nil)
  (setq te (entget (car (entsel "\n Chon Text de gan ket qua :")))
        te (subst (cons 1 (rtos L 2 2)) (assoc 1 te) te))
(entmod te)
  )
)
(princ "\n")
(prompt "chon doi tuong")
)
(setvar 'osmode old)
(princ)
)

  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#25 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 05 November 2014 - 01:48 PM

Cảm ơn bác nha. Chúc bác vui vẻ và khỏe mạnh


  • 0

#26 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 05 November 2014 - 01:55 PM

Bác nhoclangbat ơi bác giúp e vụ đường thẳng ABCDE đi e có 1 đường gấp khúc ABCDE, công việc của e là đo kc từng đoạn thẳng AB, BC,..và các góc giữa các đoạn thẳng. Liệu có lisp nào có thể thống kê luôn chiều dài các đoạn thẳng và góc các đoạn thẳng không ạ. ( Bác đừng trách e đc voi đòi hai bà nha ) !


  • 0

#27 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 05 November 2014 - 05:06 PM

- ah nhoc có xem rùi để nhoc suy nghĩ thêm ^^, chắc là có thể đc, trong lúc đó có thể có mí anh khác cao tay giúp bạn có lsp sớm hơn ^^


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#28 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 05 November 2014 - 05:59 PM

 Có cái đo thửa đất nhoclangbat làm rồi, chỉ thêm góc nữa thôi. Nhưng cái này bạn nên cân nhắc hỏi nhoclangbat :) 


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#29 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 05 November 2014 - 09:49 PM

- nhoc mới viết đc phần chính ^^, ban test xem có đúng ý bạn chưa, sau khi chọn Pline lsp sẽ xuất bảng thông báo danh sách các cạnh và các góc kẹp, bạn nên làm thủ công trước rùi dùng lsp xem lsp trả về có đúng chưa hì ^^, nếu ok bạn trình bày rõ kết quả cuối cùng bạn mún nó như thế nào nhoc sẽ mông má lại lsp, file cad minh họa càng tốt ^^

;;----------------------------------------------------------------------------------------------
(defun c:kmp (/ ss ename lst lstcanh lstgoc dem p1 p2 p3 d ang1 ang2 goc kdo)
  (vl-load-com)
  (prompt "chon PLine:")
  (setq ss (ssget "+.:E:S" '((0 . "*POLYLINE"))))
  (setq ename (ssname ss 0))
  (setq lst (acet-geom-vertex-list ename))
  (setq lstcanh nil
	     lstgoc nil)
;================================================
  (setq p1 (car lst)
	dem 1)
;===============================================================
  (while (< dem  (length lst))
    (setq p2 (nth dem lst))
    (setq d (distance p1 p2))
    (setq lstcanh (append lstcanh (list d)))
    (setq p1 p2
	  dem (1+ dem))
    (princ)
    )
;==================================================================================
  (setq p1 (car lst)
	dem 1)
;===============================================================================
  (while (< dem  (1- (length lst)))
    (setq p2 (nth  dem lst))
    (setq p3 (nth  (1+ dem) lst))
    (setq ang1 (angle p2 p1)
	  ang2 (angle p2 p3))
    (setq goc (abs (- ang1 ang2)))
    (if (> goc PI)
      (setq goc (- (* 2 pi) goc))
      )
;================================================================================
    (setq kdo (* (/ goc pi) 180.0))
    (setq lstgoc (append lstgoc (list kdo)))
;====================================================================================
    (setq p1 p2
	  dem (1+ dem))
   )
(alert (strcat "Danh sach chieu dai cac canh: " (vl-princ-to-string lstcanh) "\nDanh sach cac goc kep: " (vl-princ-to-string lstgoc)))
); end KMP


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#30 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 05 November 2014 - 10:27 PM

Nhoc: biến nào đã đặt là cục bộ thì không cần set là nil nhé!


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#31 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 06 November 2014 - 07:42 AM

bác kiểm tra lại giúp e với. e load về dùng lệnh kmp. chọn Pline: cad báo lỗi: ; error: bad argument type: lselsetp nil. Hix !
  • 0

#32 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 06 November 2014 - 07:53 AM

- nhoc vẫn chạy ngon lành mà ta, bạn xem lại thử

- bạn có chọn đúng đối tượng là polyline ko, nhoc viết cho trường hợp là pline  ah ^^


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#33 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 06 November 2014 - 08:01 AM

- ah hiểu rùi ^^, nhoc quên nhoc ko test trên file mẫu bạn đưa nên ko để ý thuộc tính pline của bạn ^^, nhoc đã sữa lại ở trên, bạn chạy lại thử xem :)


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#34 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 06 November 2014 - 08:34 AM

Thanks bác. lisp cho kết quả rất đúng, nhưng nếu xuất đc ra bảng, hay ra tệp thì hay quá. vì tuyến thường thì rất dài, mong bác xem có thể cho thêm phần đó đc ko
  • 0

#35 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 06 November 2014 - 09:22 AM

- xuất file thì hiện tại còn khó với nhoc, xuất bảng thì chắc đc, bạn làm ví dụ 1 file mẫu tuyến ngắn có bảng cho nhoc xem thử, bảng đó cách thể hiện như thế nào, nhoc sẽ cố gắng viết gần giống nhất ^^


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#36 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 06 November 2014 - 09:47 AM

như thế này bác ạ:
http://download1084....65tqjv/Vidu.dwg
hix upload ở diễn đàn mình có vẫn đề hay sao ấy
  • 0

#37 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 06 November 2014 - 02:20 PM

- hi bạn xem thử xem vừa ý chưa hì ^^


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#38 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 06 November 2014 - 03:27 PM

Đúng cái e cần rùi, cảm ơn bác nhiều nhiều, chúc bác luôn khoẻ mạnh và thành công
  • 0

#39 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 06 November 2014 - 04:26 PM

- ^^ bạn ok thì nhoc up lsp, tính cho bạn xem trước ngộ nhở bạn có mún thêm bớt gì ko ^^

;;;;;;;;;;;============================================================
(defun Makepline (listpoint closed Layer Linetype LTScale xdata / Lst)
	(setq Lst (list '(0 . "LWPOLYLINE")'(100 . "AcDbEntity")
	(cons 8 (if Layer Layer (getvar "Clayer")))
	(cons 6 (if Linetype Linetype "bylayer"))
	(cons 48 (if LTScale LTScale 1))
	'(100 . "AcDbPolyline")
	(cons 90 (length listpoint))
	(cons 70 (if closed 1 0))))
	(foreach PP listpoint	(setq Lst (append Lst (list (cons 10 PP)))))
	(if xdata (setq Lst (append lst (list (cons -3 (list xdata))))))
	(entmakex Lst))
	;end;=================================
;;;;
(defun MakeLine (PT1 PT2 Layer Linetype LTScale xdata)
	(entmakex (list '(0 . "LINE")
	(cons 8 (if Layer Layer (getvar "Clayer")))
	(cons 6 (if Linetype Linetype "bylayer"))
	(cons 48 (if LTScale LTScale 1))
	(cons 10 PT1)	(cons 11 PT2)
	(cons -3 (if xdata (list xdata) nil))))) 
;;;;;;--------------------------------------------------------------------------------------------
;;ham tao text 2
(defun taotext (point height string justify layer textstyle mau / lst)
(setq lst (list '(0 . "TEXT")
                              (cons 10 point)
							  (cons 40 height)
							  (cons 1 string)
							  (cons 8 (if layer layer (getvar "clayer")))
							  (cons 7 (if textstyle textstyle (getvar 'textstyle)))
							  (cons 62 (if mau mau 256))
							  
			)
			justify (strcase justify))
		(cond   ((= justify "L") (setq Lst (append Lst (list (cons 72 0) (cons 11 point)))))
		        ((= justify "C") (setq Lst (append Lst (list (cons 72 1) (cons 11 point)))))
				((= justify "R") (setq Lst (append Lst (list (cons 72 2) (cons 11 point)))))
				((= justify "M") (setq Lst (append Lst (list (cons 72 4) (cons 11 point)))))
				)
	(entmakex Lst)
  )	;end mktext
;;--------------------------------------
(alert "LSP xuat bang thong ke goc canh , lenh: KKP")
;;----------------------------------------------------------------------------------------------
(defun c:kkp(/ ss ename lst lstcanh lstgoc dem p1 p2 p3 d ang1 ang2 goc kdo dau i k m f j pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 goc270 pt tt ll gg ptt pll pgg old canh kgoc)
  (vl-load-com)
  (setq old (getvar 'osmode))
  (setvar 'osmode 0)
  (prompt "chon PLine:")
  (setq ss (ssget "+.:E:S" '((0 . "*POLYLINE"))))
(if ss
(progn
;--------------------------------------------------------------------
  (setq ename (ssname ss 0))
  (setq lst (acet-geom-vertex-list ename))
  (setq lstcanh nil
	     lstgoc nil)
;================================================
  (setq p1 (car lst)
	dem 1)
;===============================================================
  (while (< dem  (length lst))
    (setq p2 (nth dem lst))
    (setq d (distance p1 p2))
    (setq lstcanh (append lstcanh (list d)))
    (setq p1 p2
	  dem (1+ dem))
    (princ)
    )
(setq bdau 1)
(foreach x lst
 (taotext (polar x (/ pi 2) 0.5) 0.8 (itoa bdau) "M" nil nil 1)
 (setq bdau (1+ bdau))
 )
;==================================================================================
  (setq p1 (car lst)
	dem 1)
;===============================================================================
  (while (< dem  (1- (length lst)))
    (setq p2 (nth  dem lst))
    (setq p3 (nth  (1+ dem) lst))
    (setq ang1 (angle p2 p1)
	  ang2 (angle p2 p3))
    (setq goc (abs (- ang1 ang2)))
    (if (> goc PI)
      (setq goc (- (* 2 pi) goc))
      )
;================================================================================
    (setq kdo (* (/ goc pi) 180.0))
    (setq lstgoc (append lstgoc (list kdo)))
;====================================================================================
    (setq p1 p2
	  dem (1+ dem))
   )
;========================================================================================
(setq pt (getpoint "\nChon diem dat bang:"))
(if (/= pt nil)
(progn
(setq pt1 (mapcar '+ pt (list 45.0 0.0 0.0))
      pt2 (mapcar '+ pt (list 0.0 -4.0 0.0))
      pt3 (mapcar '+ pt (list 45.0 -4.0 0.0))
	  pt4 (mapcar '+ pt (list 5.0 0.0 0.0))
	  pt5 (mapcar '+ pt (list 25.0 0.0 0.0)))
;--------------------------------------------------
(taotext (mapcar '+ pt (list 2.5 -2.0 0.0)) 1.8 "TT" "M" nil nil 3)
(taotext (mapcar '+ pt (list 15.0 -2.0 0.0)) 1.8 "L" "M" nil nil 3)
(taotext (mapcar '+ pt (list 35.0 -2.0 0.0)) 1.8 "GOC" "M" nil nil 3)
(makeline pt2 pt3 nil nil nil nil)
;-----------------------------------------------------
(setq i 1)
(while (<= i (length lst))
(progn
;--------------------------
(setq tt (list 2.5 (- (* -5.0 i) 2.0) 0.0))
(setq ptt (mapcar '+ pt tt))
;--------------------------------
;------------------------------
(taotext ptt 1.8 (itoa i) "M" nil nil 4)
(setq i (1+ i))
)
) ; end while
;===============================================
(setq k 0 m 1)
(repeat (- (length lst) 1)
(setq ll (list 15.0 (- (* -5.0 m) 4.5) 0.0))
(setq pll (mapcar '+ pt ll))
(setq canh (nth k lstcanh))
(taotext pll 1.8 (rtos canh 2 3) "M" nil nil 4)
(setq m (1+ m))
(setq k (1+ k))
)
;==============================================
(setq f 0 j 1)
(repeat (- (length lst) 2)
(setq gg (list 35.0 (- (* -5.0 j) 7.0) 0.0))
(setq pgg (mapcar '+ pt gg))
(setq kgoc (nth f lstgoc))
(taotext pgg 1.8 (rtos kgoc 2 3) "M" nil nil 4)
(setq f (1+ f))
(setq j (1+ j))
)
;----------------------------------------
(setq goc270 (- 0 (/ PI 2)))
(setq pt6 (polar pt goc270 (+ 4 (+ (* 5.0 (length lst)) 3.0)))
      pt7 (polar pt1 goc270 (+ 4 (+ (* 5.0 (length lst)) 3.0)))
	  pt8 (polar pt5 goc270 (+ 4 (+ (* 5.0 (length lst)) 3.0)))
	  pt9 (polar pt4 goc270 (+ 4 (+ (* 5.0 (length lst)) 3.0))))
(makeline pt4 pt9 nil nil nil nil)
(makeline pt5 pt8 nil nil nil nil)
(makepline (list pt pt1 pt7 pt6) 1 nil nil nil nil)
;=============================================
) ;end progn if
) ; end if pt
); end progn ss
(alert "ban chua chon Pline nao")
) ;end if ss	  
;========================================================================================
(alert "Xong ^^")
(setvar 'osmode old)
(princ)
); end KMP


  • 2
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#40 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 07 November 2014 - 08:44 AM

thật ko biết phải nói sao. Cảm ơn bác, cảm ơn diễn đàn. Chúc mọi người, chúc diễn đàn luôn hạnh phúc và phát triển
  • 0