Đến nội dung


Hình ảnh
* * * - - 17 Bình chọn

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2850 replies to this topic

#1941 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 10 October 2014 - 08:43 AM

@nhoclangbat diễn đạt lủng cũng quá. Để kiểm tra 1 phần tử có thuộc list hay không có nhiều cách, như của nhoc la 1 cách

(if (member 'a '(d s a 1 4))
  (progn; a thuoc list
    (alert "a thuoc list")
    ;......
    )
  (progn; a khong thuoc list
    (alert "a khong thuoc list")
    ;.....
    )
  )

hoặc dùng hàm (vl-position "a" '("r" "b" "a" "d" "e")). Tuỳ theo từng trường hợp mà dùng cho thích hợp


  • 0

#1942 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 October 2014 - 12:48 PM

- mấy anh xem dùm lsp  nhoc sửa với, nhoc test mún nát cad lun rùi ^^ mà hình như vẫn lỗi gì đó khó hỉu lắm, cùng 1 hình 1 điểm khi chọn điểm đầu tiên, có lúc nó nhận đc điểm đó đúng trong list chạy ngon lành, có lúc lại không nhận đc @@, rùi chạy lại từ đầu thì lại đc @@, nhoc cũng thử kiểm tra tọa độ pick với list tọa độ thu đc từ lệnh bo, xem có sự sai lệch ko, nhưng test mấy lần điểm pick vẫn thuộc list mà nó lại chạy thẳng xuống vế  "ko thì" của if :(

- mấy hàm các anh gợi ý cho nhoc, nhoc vẫn chưa pit áp dụng thế nào ^^

(defun *error* (msg)
  (princ "error: ")
  (princ msg)
  (princ)
)
;;;;;;;;;;;============================================================
(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;=================================
;;;;------------------------------------------
;;ham tao text 2
(defun mktext (point height string justify layer textstyle / lst)
(setq lst (list '(0 . "TEXT")
                              (cons 10 point)
							  (cons 40 height)
							  (cons 1 string)
							  (cons 8 layer)
							  (cons 7 textstyle)
							  
			)
			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
;;--------------------------------------
(defun _layer2 ( name colour )
    (if (null (tblsearch "LAYER" name))
        (entmake
            (list
               '(0 . "LAYER")
               '(100 . "AcDbSymbolTableRecord")
               '(100 . "AcDbLayerTableRecord")
               '(70 . 0)
                (cons 2 name)
                (cons 62 colour)
            )
        )
    )
)
;;-----------------------------------
(defun Wdis (p1 p2 / dis ang point point1)
  (setq dis (distance p1 p2))
  (setq ang (angle p1 p2))
  (if (and (> ang (/ Pi 2)) (< ang (* Pi 1.5)) )
    (progn
      (setq ang (+ Ang Pi)) 
      (setq Point (polar p2 ang (/ dis 2.0)))
      (setq Point1 (polar point (+ (/ pi 2) ang) (* 0.25 (/ TileBdHT 500))))

    )
	(progn
    (setq Point (polar p1 ang (/ dis 2.0)))
    (setq Point1 (polar point (+ (/ pi 2) ang) (* 0.25 (/ TileBdHT 500))))
	)
  )
  (command "Text" "S" "vaptimn" "c" point1 (/ TileBdHT 500) (* (/ ang Pi) 180) (rtos dis 2 2))
)
;--------------------------------------------------------------------------
(defun pointpl (name t2 k / namem i bien t1 p1 diem)
	(setq namem name)
	(setq i 1)
	(while (<= i k)
	(progn
		(setq bien (assoc t2 namem))
		(setq t1 (member bien namem))
		(setq p1 (car t1))
		(setq namem (cdr t1))
		(setq diem (cdr p1))
		(setq i (+ 1 i))
	)
	)
	diem
);;;-----------------------------------------------------------------------------
(defun removed(part lst / lst1 lst2)
  (setq lst1 (reverse(cdr(member part(reverse lst))))
lst2 (cdr(member part lst)))
  (append lst1 lst2)
  )
;hàm tạo textstyle
(defun emk_style (MyStyle MyFont)
(entmake (list    (cons 0 "STYLE")    
(cons 100 "AcDbSymbolTableRecord")    
(cons 100 "AcDbTextStyleTableRecord")    
(cons 2 MyStyle)    (cons 3  MyFont)    
(cons 70 0))))
;;;;
(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)))))
;;;;;;--------------------------------------------------------------------------------------------
(prompt "LSP XUAT BANG TOA DO CAC DINH THU DAT, LENH: DKK")
;;----------------------------------------------------------------------------------------------
(defun c:dkk (/ p tam i f k lst1 lst2 lst lst_new i kk m luuxy pt pt11 old  canh p01 p02 p03 p04 p05 p06 p07 p08 p09 p10 p11 p12 p13 p14 x x1 y y1 toado toado0 toado1 pyy pxx psh pgc t0 t1 t2 t3 t4 y tsh txx tyy tgc)
(setq old (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
;-----------------------------------------------------
(if (null (tblsearch "style" "vaptimn"))
		(emk_style "vaptimn" "vavon.ttf"))
	(if (null (tblsearch "style" "vhelveb"))
		(emk_style "vhelveb" "vhelven.TTF"))
	(if (null (tblsearch "layer" "sohieu_diem"))
		(_layer2 "sohieu_diem" 2))
    (if (null (tblsearch "layer" "canh"))
		(_layer2 "canh" 3))
	(if (null (tblsearch "layer" "bang_toado"))
		(_layer2 "bang_toado" 7))
	(if (null (tblsearch "layer" "Ranh_dat"))
		(_layer2 "Ranh_dat" 6))
	(if (not r1) (setq r1 500))
	(setq TileBdHT (getreal (strcat "\nMau So Ti Le Cua BDHT" "(" (rtos r1 2 0) "):")))
	(if (= TileBdHT nil)
		(setq TileBdHT r1))
;--------------------------------------------------------------------------
(setvar "osmode" 33)
(setq pt11 (removed 0.0 (getpoint "\nchon diem bat dau:")))
(setvar "osmode" 0)
(setq p (getpoint "\npick tam thua:"))
(command "-Boundary" p "")
(setq tam (entget (entlast)))
(setq kk (cdr (assoc 90 tam)))
(command ".erase" "last" "")
(setq m 1)
(setq lst nil)

(repeat kk
(setq f (pointpl tam 10 m))
(setq m (1+ m))
(if f (setq lst (cons f lst)))
)

;------------------------------------------==========================================---------------------------------
(if (= (type (member pt11 lst)) 'LIST)
;;====================-----------------------------======================================-----------------------
(progn
;--------------------====================================------------------------------------
(if (/= lst nil)
(progn
;------------------------===============================--------------------------------------
(setq bit (cond (bit) ("T")))
(initget "T N")
(setq	Tmp (strcat "\nBan muon chay Thuan hay Ngich chieu dong ho [T/N] <" bit ">: ")
	    bit (cond ((getkword Tmp)) (bit)))
(if (eq bit "T")
(progn
(setq lst1 (member pt11 lst))
(setq lst2 (reverse (cdr (member pt11 (reverse lst)))))
(setq lst_new (append lst1 lst2))
)
(progn
(setq lst1 (member pt11 (reverse lst)))
(setq lst2 (reverse (cdr (member pt11 lst))))
(setq lst_new (append lst1 lst2))
)
)
;---------------------------------==============================-----------------------------------
(Makepline lst_new 1 "Ranh_dat" nil nil nil)
;----------------------------=========================================--------------------------
)
)
;--------------------------------------------------------------------------------------------------------
(setq luuxy (entget (entlast)))
(setvar "osmode" 0)
	(setq pt (getpoint "\n Diem dat bang toa do :"))
	(setq k (cdr (assoc 90 luuxy)))
	(if (/= pt nil)
		(progn
			(setq p01 pt)
			(setq p02 (mapcar '+ pt '(10.0  0.0 0.0)))
			(setq p03 (mapcar '+ pt '(22.5 -2.5 0.0)))
			(setq p04 (mapcar '+ pt '(35.0  0.0 0.0)))
			(setq p05 (mapcar '+ pt '(45.0  0.0 0.0)))
			(setq p06 (mapcar '+ pt '(0.0 -5.0 0.0)))
			(setq p07 (mapcar '+ pt '(10.0 -2.5 0.0)))
			(setq p08 (mapcar '+ pt '(35.0 -2.5 0.0)))
			(setq p09 (mapcar '+ pt '(45.0 -5.0 0.0)))
			(if (<= k 10)			
				(progn
					(setq p10 (mapcar '+ pt '(0.0 -40.0 0.0)))
					(setq p11 (mapcar '+ pt '(10.0 -40.0 0.0)))
					(setq p12 (mapcar '+ pt '(22.5 -40.0 0.0)))
					(setq p13 (mapcar '+ pt '(35.0 -40.0 0.0)))
					(setq p14 (mapcar '+ pt '(45.0 -40.0 0.0)))
				)
				(progn
					(setq ty (* -1 (+ 10.0 (* k 3))))
					(setq t0 (list 0.0 ty 0.0))
					(setq t1 (list 10.0 ty 0.0))
					(setq t2 (list 22.5 ty 0.0))
					(setq t3 (list 35.0 ty 0.0))
					(setq t4 (list 45.0 ty 0.0))
					(setq p10 (mapcar '+ pt t0))
					(setq p11 (mapcar '+ pt t1))
					(setq p12 (mapcar '+ pt t2))
					(setq p13 (mapcar '+ pt t3))
					(setq p14 (mapcar '+ pt t4))
				)
			)
			
			(makeline p01 p05 "bang_toado" nil nil nil)
			(makeline p01 p10 "bang_toado" nil nil nil)
			(makeline p02 p11 "bang_toado" nil nil nil)
			(makeline p03 p12 "bang_toado" nil nil nil)
			(makeline p04 p13 "bang_toado" nil nil nil)
			(makeline p05 p14 "bang_toado" nil nil nil)
			(makeline p07 p08 "bang_toado" nil nil nil)
			(makeline p06 p09 "bang_toado" nil nil nil)
			(makeline p10 p14 "bang_toado" nil nil nil)
;------------------------------------------------------------------------------------------------------------------
(mktext (mapcar '+ pt '(22.5 2.0 0.0)) 1.25 "BAÛNG LIEÄT KEÂ TOÏA ÑOÄ GOÙC RANH" "M" "bang_toado" "vhelveb")
(mktext (mapcar '+ pt '(5.0 -1.5 0.0)) 1.15 "Soá hieäu" "M" "bang_toado" "vhelveb")
(mktext (mapcar '+ pt '(5.0 -3.5 0.0)) 1.15 "ñieåm" "M" "bang_toado" "vhelveb")
(mktext (mapcar '+ pt '(22.5 -1.25 0.0)) 1.15 "Toïa ñoä" "M" "bang_toado" "vhelveb")
(mktext (mapcar '+ pt '(16.25 -3.75 0.0)) 1.15 "X(m)" "M" "bang_toado" "vhelveb")
(mktext (mapcar '+ pt '(28.75 -3.75 0.0)) 1.25 "Y(m)" "M" "bang_toado" "vhelveb")
(mktext (mapcar '+ pt '(40.0 -2.5 0.0)) 1.25 "Caïnh" "M" "bang_toado" "vhelveb")
;-------------------====================--------------------------------------------------------------------------
		)
	)
	(setq i 1)
	(while (<= i k)
		(progn
			(setq toado (pointpl luuxy 10 i))
			(setq x (rtos (car toado) 2 2))
			(setq y (rtos (cadr toado) 2 2))
			(setq doi (list (* 0.2 (/ TileBdHT 500)) (* 0.2 (/ TileBdHT 500)) 0.0))
			(mktext (mapcar '+ toado doi) (/ TileBdHT 500) (itoa i) "L" "sohieu_diem" "vaptimn")
            (command "-layer" "s" "sohieu_diem" "")			
			(command ".donut" 0 (* 0.25 (/ TileBdHT 500)) toado "")			
			(setq tsh (list 5.0 (- (* -3 i) 4.5) 0.0))
			(setq txx (list 16.25 (- (* -3 i) 4.5) 0.0))
			(setq tyy (list 28.75 (- (* -3 i) 4.5) 0.0))
			(setq tgc (list 40.0 (- (* -3 i) 3.0) 0.0))
			(setq psh (mapcar '+ pt tsh))
			(setq pxx (mapcar '+ pt txx))
			(setq pyy (mapcar '+ pt tyy))
			(setq pgc (mapcar '+ pt tgc))
			(if (= i 1)
				(progn
					(setq toado1 toado)
					(setq x1 (rtos (car toado1) 2 2))
					(setq y1 (rtos (cadr toado1) 2 2))
				)
			)
			(if (>= i 2)
(progn
	(setq canh (distance toado0 toado))
	(mktext pgc 1.2 (rtos canh 2 2) "M" "bang_toado" "vaptimn")
	(setvar "clayer" "canh")
	(wdis toado0 toado)
)
			)
			(mktext psh 1.2 (itoa i) "M" "bang_toado" "vaptimn")
			(mktext pxx 1.2 y "M" "bang_toado" "vaptimn")
			(mktext pyy 1.2 x "M" "bang_toado" "vaptimn")
			
			(setq toado0 toado)
			(setq i (+ i 1))
		)
	)
	(setvar "clayer" "canh")
	(wdis toado toado1)
	(setq canh (distance toado toado1))
			(setq tsh (list 5.0 (- (* -3 (+ k 1)) 4.5) 0.0))
			(setq txx (list 16.25 (- (* -3 (+ k 1)) 4.5) 0.0))
			(setq tyy (list 28.75 (- (* -3 (+ k 1)) 4.5) 0.0))
			(setq tgc (list 40.0 (- (* -3 (+ k 1)) 3.0) 0.0))
			(setq psh (mapcar '+ pt tsh))
			(setq pxx (mapcar '+ pt txx))
			(setq pyy (mapcar '+ pt tyy))
			(setq pgc (mapcar '+ pt tgc))
	(mktext pgc 1.2 (rtos canh 2 2) "M" "bang_toado" "vaptimn")
	(mktext psh 1.2 "1" "M" "bang_toado" "vaptimn")
	(mktext pxx 1.2 y1 "M" "bang_toado" "vaptimn")
	(mktext pyy 1.2 x1 "M" "bang_toado" "vaptimn")
	
)
(alert "ban chua chon dung dinh thua dat\nban chay lai lenh tu dau hen thong cam ^^!!")
)
	(setvar "clayer" "0")
	(setvar "osmode" old)
    (setvar "cmdecho" 1)
	(princ "\n")
	(princ)
)


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

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








#1943 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 10 October 2014 - 01:11 PM

Chạy ổn nhưng code hơi dài. Nhưng như vậy là tốt rồi. ^^. Chịu khó mần là ok. 


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#1944 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 October 2014 - 01:27 PM

- ổn hả anh Duan, sao nhiều lúc nhoc pick trúng mà nó vẫn trả về nil mà anh :(, khó chịu lắm, giống hên xui ^^


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

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








#1945 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 10 October 2014 - 01:42 PM

Pick hên xui vì khi pick bạn pick không trùng với đỉnh của Polyline được tạo ra.

Tham khảo

   (setq PVG (vlax-curve-getClosestPointTo ObjPline Pnt)
          Pd1 (vlax-curve-getpointAtParam ObjPline (fix (vlax-curve-getparamatPoint ObjPline PVG)))
          Pd2 (vlax-curve-getpointAtParam ObjPline (1+ (fix (vlax-curve-getparamatPoint ObjPline PVG))))
    )

Tức là xét điểm pick gần với đỉnh nào nhất của Polyline được tạo ra.

 

 

 

 

    (setq PVG (vlax-curve-getClosestPointTo ObjPline Pnt)
          Pd1 (vlax-curve-getpointAtParam ObjPline (fix (vlax-curve-getparamatPoint ObjPline PVG)))
          Pd2 (vlax-curve-getpointAtParam ObjPline (1+ (fix (vlax-curve-getparamatPoint ObjPline PVG))))
    )

  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#1946 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 October 2014 - 02:34 PM

- nhoc thử ko khử biến pick với lst pointpline để dò lại, nhoc thấy nó giống nhau mà a, lúc đó là nó trả về nil lun chưa chạy đc gì, nên nhoc mới gọi 2 biến đó lên xem, ngộ vậy đó ^^


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

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








#1947 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 October 2014 - 02:53 PM

- hi vậy mình áp dụng cái hàm vlax của anh vào lsp thế nào để điểm pick nhận đúng tọa độ điểm gần nhất của pline ma mình pick vậy anh ^^


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

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








#1948 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 10 October 2014 - 05:08 PM

Rõ ràng nhoclangbat pick trước điểm rồi mới pick trong vùng, khi đó Polyline mới dc tạo ra. Nhưng mà ko sao, ta tóm được nó hết. Có cần mình viết 1 đoạn code khi pick điểm trên pline thì nhận biết được nó là đỉnh thứ mấy ko? (pick gần đỉnh nào nhất thì lấy đỉnh đó, quên điểm pick đi)


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#1949 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 10 October 2014 - 05:34 PM

(vl-load-com)
(defun c:DPL ();;;DINH POLYLINE
(defun *error* ( msg )
(if Olmode (setvar 'osmode Olmode))
(if (not (member msg '("*BREAK,*CANCEL*,*EXIT*")))
    (princ (strcat "\nError: " msg))
)
(princ)
)
(setq Olmode (getvar "OSMODE"))
(setvar "CMDECHO" 0)
(setvar "OSMODE" 1)
(setq loop T)
(setq ObjPline (car (entsel "\nChon Polyline: ")))
(while loop
	(setq Pnt (getpoint "\nPick diem de biet dinh gan nhat la dinh thu may cua Polyline: "))
  	(cond
	  (T
		(if Pnt
		  (progn
			(setq PVG (vlax-curve-getClosestPointTo ObjPline Pnt)
			          Pd1 (vlax-curve-getpointAtParam ObjPline (fix (vlax-curve-getparamatPoint ObjPline PVG T)))
			          Pd2 (vlax-curve-getpointAtParam ObjPline (1+ (fix (vlax-curve-getparamatPoint ObjPline PVG T))))
			)
			(setq D1 (distance PVG Pd1))
			(setq D2 (distance PVG Pd2))
			(if (>= D1 D2)
			    (setq Dinh (fix (vlax-curve-getparamatPoint ObjPline PVG)))
			    (setq Dinh (1+ (fix (vlax-curve-getparamatPoint ObjPline PVG))))
			)
			(Alert (strcat  "\nDinh ban vua pick la dinh thu : " (rtos Dinh 2 0) " cua Polyline"))
		  )
		  (setq loop nil)
		)
	  )
	)
)  
(setvar "OSMODE" Olmode)
(princ)
)

  • 1



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#1950 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 October 2014 - 06:11 PM

@Nhoclangbat : không khử 2 biến pt11 và lst trong khai báo thủ tục, sau đó chayj với 1 thửa chỉ có 3 đỉnh thôi cho dễ test

- Khi nhận thông báo lỗi nil thì chạy thử tiếp đoạn này để lấy khoảng cách từ điểm pt11 đến các đỉnh trong boundary. Từ đây chắc nhoc sẽ biết lý do tại sao member trả về nil.

 

(mapcar '(lambda(x)(distance x pt11)) lst)
 

  • 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


#1951 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 11 October 2014 - 06:09 AM

- hi giờ thì nhoc đã pit tại sao rùi, kq biến trả ra là 1 chuyện còn lúc cad nó tính thì lại là chiện khác ^^, thằng tọa độ này nguy hiểm phết nhỉ

- hàm anh Duan nhoc đành mót để dành, nhưng nó có nhiều hàm vl quá nhoc chưa phân tích nổi để hình dung nắm rõ đc nó áp dụng vào lsp nhoc, nên nhoc chọn cách xử thằng pick trước, còn chiêu anh chỉ để thong thả lên tay áp dụng sau ^^


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

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








#1952 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 11 October 2014 - 08:40 AM

@ Thanhduan2407:

Bác cho hỏi trong hàm của bác ở #1949 có đưa biến loop, hàm cond vào để làm gì ?

 

p/s: chỉ là câu hỏi thắc mắc để mót, bác đừng hiểu nhầm ý em nha !


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#1953 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 11 October 2014 - 09:05 AM

- nhoc đoán mò là để đánh lừa cad kaka


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

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








#1954 Namvanvo

Namvanvo

    Edu level: li5

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

Đã gửi 14 October 2014 - 10:01 AM

 Các bạn cho mình hỏi : 2 lệnh này thực hiện trực tiếp trên command cad thì chạy bình thường , nhưng khi nằm trong chương trình lisp thì chạy xong lệnh pline thì không chạy lệnh revcloud?

(command ".pline" pause)
(command ".revcloud" "A" "5" "" "O" (entlast) "")


  • 0

#1955 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 14 October 2014 - 10:24 AM

Bạn phải thêm cái này vào giữa 2 cái đó.

(while (= 1 (logand 1 (getvar 'cmdactive)))
        (command "\\")
)
(while (= 1 (logand 1 (getvar 'cmdactive)))
        (command "\\")
)

  • 3

#1956 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 14 October 2014 - 10:30 AM

lại 1 cao thủ nữa xài em Logan , bác Tot77 có thể nói sơ về hàm đo cho mình mót tí đc chứ ạh !


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#1957 Namvanvo

Namvanvo

    Edu level: li5

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

Đã gửi 14 October 2014 - 10:37 AM

Dear HiepTtr: biết lỗi lệnh PL, cụ thể là chỗ pause nhưng không biết cách khắc phục sao cả  :wacko:

 

Bạn phải thêm cái này vào giữa 2 cái đó.

 

(while (= 1 (logand 1 (getvar 'cmdactive)))
        (command "\\")
)
(while (= 1 (logand 1 (getvar 'cmdactive)))
        (command "\\")
)

Thank Tot77, đã dùng ok, mặc dù không hiểu code này lắm  :)


  • 0

#1958 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 14 October 2014 - 10:41 AM

Cái này là của LM chứ không phải của tôi.  :D  :D  :D

logand cũng giống and thôi nhưng mà là and của các integer.

Câu trên ý nói là hễ còn thực hiện lệnh (cmdactive = 1) thì cứ làm cái (command "\\")

(command "\\") cũng giống như (command pause) thôi.


  • 1

#1959 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 14 October 2014 - 10:43 AM

- nhoc đoán mò là để đánh lừa cad kaka

Hề hề hề,

Mạn phép bác ThanhDuan2407 đoán mò nhé: Biến loop đưa vào để kiểm soát vòng lặp While 


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#1960 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 14 October 2014 - 10:48 AM

Cái này là của LM chứ không phải của tôi.  :D  :D  :D

logand cũng giống and thôi nhưng mà là and của các integer.

Câu trên ý nói là hễ còn thực hiện lệnh (cmdactive = 1) thì cứ làm cái (command "\\")

(command "\\") cũng giống như (command pause) thôi.

Thì trong help vẫn ghi sơ sơ vậy, mình đọc mà chẳng hiểu gì :D :D :D

and của các integer phải hiểu làm sao đây ???


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson