Đế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
2851 replies to this topic

#2061 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 23 October 2014 - 10:25 PM

Ơ....có người.......nick giống mình kìa. @@

Mạo danh quá thể. Hic hic


  • 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







#2062 Tot77

Tot77

    biết lệnh adcenter

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

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

Do CV hơi quá dễ dãi trong việc tạo nick mới, ko kiểm tra đc email, IP nên mới ra cớ sự.
  • 0

#2063 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 24 October 2014 - 02:27 AM

Dùng (vla-get-area (vlax-ename->vla-object (car (entsel))))

Đúng rồi cám ơn bạn. Hình như hàm này các bạn đã có lần chỉ cho mình rồi nhưng dùng với Hatch phức tạp thì chạy chậm  nên mình quên mất. 

Các bạn cho mình hỏi thêm tý, khi đối tượng có màu (mã 62 giống nhau) nhưng ở dạng 3 màu  (RGB) nó lại khác, vậy làm thê nào nhận dạng hay loc chúng ra đc.

Cám ơn các bạn


  • 0

#2064 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 24 October 2014 - 06:38 AM

Đúng rồi cám ơn bạn. Hình như hàm này các bạn đã có lần chỉ cho mình rồi nhưng dùng với Hatch phức tạp thì chạy chậm  nên mình quên mất. 

Các bạn cho mình hỏi thêm tý, khi đối tượng có màu (mã 62 giống nhau) nhưng ở dạng 3 màu  (RGB) nó lại khác, vậy làm thê nào nhận dạng hay loc chúng ra đc.

Cám ơn các bạn

Cái này bữa trước bạn hỏi và tôi đã trả lời cho bạn rồi mà!

http://www.cadviet.c...eo-layer/page-4


  • 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.


#2065 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

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

Xin lỗi và cám ơn bạn, có lẽ mình chờ hồi lâu kg thấy sau đó bận quá rồi đãng trí quên mất. Nhưng không hiểu sao nó vẫn chưa chạy được bạn ạ. Code nó đây

-------------------------

(defun ColRGB(r g B)
 (ssget (list (cons 420 (+ (lsh (fix r) 16) (lsh (fix g) 8) (fix B))))))
---------------------------

Mình thử nó chưa được:

------------------------------

Command: (ColRGB 180 255 255)

Select objects: all
0 found

Select objects:
nil

------------------------------

bạn xem lại giúp mình nhé.

Cho mình hỏi thêm, làm thế nào khi mình chọn trên bản vẽ 1 đối tượng dạng này nó sẽ trả vế tất cả các đối tượng như vậy trên bản vẽ. Cám ơn bạn


  • 0

#2066 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 24 October 2014 - 10:12 AM

Xin lỗi và cám ơn bạn, có lẽ mình chờ hồi lâu kg thấy sau đó bận quá rồi đãng trí quên mất. Nhưng không hiểu sao nó vẫn chưa chạy được bạn ạ. Code nó đây

-------------------------

(defun ColRGB(r g B)
 (ssget (list (cons 420 (+ (lsh (fix r) 16) (lsh (fix g) 8) (fix B))))))
---------------------------

Mình thử nó chưa được:

------------------------------

Command: (ColRGB 180 255 255)

Select objects: all
0 found

Select objects:
nil

------------------------------

bạn xem lại giúp mình nhé.

Cho mình hỏi thêm, làm thế nào khi mình chọn trên bản vẽ 1 đối tượng dạng này nó sẽ trả vế tất cả các đối tượng như vậy trên bản vẽ. Cám ơn bạn

Bạn cho mình coi file đó tí. Mình đã test trên bản vẽ của mình OK mà.


  • 0

* 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.


#2067 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

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

file mình đã up ở mục #2055 đó bạn

Mình xem lại rồi, nó đúng khi đó là thuộc tính "color", còn file mình up lại là thuộc tính "pattern fill color" bạn ạ. Bạn xem có thể giải quyết được kg giúp mình nhé.


  • 0

#2068 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 24 October 2014 - 11:26 AM

Các đối tượng khác thì nó có DXF là 420. Mình test trên nó >> OK.

Với đối tượng MPOLYGON thì DXF là 421 >> Bạn sửa 420 thành 421 là OK.


  • 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.


#2069 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 24 October 2014 - 04:05 PM

- mấy anh ơi trợ giúp nhoc bài toán này với ^^, nhoc đang tính nâng cấp cái lsp nhoc lên mà chưa nghĩ ra giải thuật ngắn gọn ^^, nó có nhiều trường hợp lắc léo, nhoc test chắc hơn chục trường hợp , gặp cái nào nhoc thêm đk cái đó riết cái lsp dài lê thê mà vẫn chưa thỏa đc.

-  nhoc có 1 danh sách các khoảng cách mắt lưới như sau 10-25-50-100-200-250-500, hàm làm tròn của nhoc có 1 tham số tương đương với khoảng cách mắt lưới.

- sơ khai lsp dựa vào kich thước khung, rùi nhoc đặt đk từ lớn đến nhỏ khoảng cách lưới, thằng nào thỏa trước sẽ làm thằng đó, nhưng cái dở ở đây, với khung to, mắt lưới tạo ra quá dày nhìn bị rối.

- nhoc dựa vào biến tỉ lệ để quyết định hệ số làm tròn là bao nhiêu, tuy nhiên với tỉ lệ nhỏ, mà khung quá to khoảng cách mắt lưới nhỏ, nhìn dày quá ^^

- ý định của nhoc là ko cần dựa vào tỉ lệ nhập nữa mà dựa vào kích thước khung để quyết định khoảng cách mắt lưới, tỉ lệ chỉ quyết định chiều cao tẽt và kick thước mắt lưới

- VD: tỉ lệ 500, mà khung tới 700 chẳng hạn, nhoc muốn nó duyệt từ từ lấy 700 chia cho từng đơn vị mắt lưới ở trên từ lớn đến nhỏ, để ra số lần lặp, tối thiểu phải có 2 mắt trục x và 2 mắt trục y, lớn nhất chỉ 3 mắt, còn ra ngoài 2 đk đó thì nó duyệt thằng khác,chừng nào thỏa thì sẽ trả về đơn vị mắt lưới cần tạo và hệ số làm tròn tương ứng, như Vd nhoc ở đây thì 700/200 là đẹp ^^ số làn lặp sẽ là 3.

;hàm tao 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))))) 
;;;;;;--------------------------------------------------------------------------------------------
;================================================================================================
(defun dtr (a)
(* (/ a 180.0) pi)
)
(prompt "LISP TAO LUOI TOA DO BAN DO VI TRI, LENH : KKL")
;;;
(defun c:kkl (/ donvi nx ny pt1 pt2 kcx kcy goc1 goc2 x1 x y  heso old ptext1 ptext2 ptext3 ptext4 str str2 goc3 htext num lstp obj ss ss1 ten pt3 pt4 tronx trony kk)
(vl-load-com)
(setq old (getvar "osmode"))
(if (null (tblsearch "STYLE" "vusaln"))
    (emk_style "vusaln" "Vaptimn.TTF"))
(if (null (tblsearch "LAYER" "A1-luoik"))
    (_layer2 "A1-luoik" 7))
  (setq tyleVT (getvalue tyleVT 1000.0 "Nhap ty le ban do VT: "))
  (princ "\n")
  (setq heso (/ 1000 tyleVT))
  (setq htext (/ 2.0 heso))
  (setq kk (/ tyleVT 20))
(prompt "Chon Khung chay luoi, luu y khung chon phai la polyline:")
;==================================================================
(while (/= (setq ss (ssget "+.:E:S" '((0 . "LWPOLYLINE")))) nil)
;===================================*******************++++++++++++++++++++********************===================================  
(progn
(setvar "osmode" 0)
;======================================================================
(setq obj (vlax-ename->vla-object (ssname ss 0)))
(setq lstp (vla-getBoundingBox obj 'minp 'maxp))
(setq pt1 (vlax-safearray->list minp))
(setq pt2 (vlax-safearray->list maxp))
(setq pt3 (inters pt1 (polar pt1 (/ pi 2) 90000) pt2 (polar pt2 pi 90000) nil))
(setq pt4 (inters pt1 (polar pt1 0 90000) pt2 (polar pt2 (dtr 270) 90000) nil))
;=======================================================================
(setq kcx (- (car pt2) (car pt1)) kcy (- (cadr pt2) (cadr pt1)))
;===============================================================================================
(cond        ((and (= tyleVT 500.0) (> kcx 150) (>= (/ kcy 50) 1.8))
			 (setq donvi 50) (setq kk 50))
			 ((and (= tyleVT 4000.0) (> kcx 1270) (>= (/ kcy 400) 1.8))
			 (setq donvi 400) (setq kk 400))
			 ((and (= tyleVT 5000.0) (> kcx 1590) (>= (/ kcy 500) 1.8))
			 (setq donvi 500) (setq kk 500))
             ((and (>= (/ kcx 250) 1.8) (>= (/ kcy 250) 1.8) (> kcx 650))
             (setq donvi 250))
             ((and (>= (/ kcx 200) 2) (>= (/ kcy 200) 1.8) (> kcx 410))
             (setq donvi 200))
            ((and (>= (/ kcx 100) 1.8) (>= (/ kcy 100) 1.8) (> kcx 250))
             (setq donvi 100))
		    ((and (>= (/ kcx 50) 1.8) (>= (/ kcy 50) 1.8) (> kcx 125))
             (setq donvi 50))
            ((and (>= (/ kcx 25) 1.8) (>= (/ kcy 25) 1.8) (> kcx 62.5))
             (setq donvi 25))
			 ((and (>= (/ kcx 10) 1.8) (>= (/ kcy 10) 1.8) (> kcx 25.5))
             (setq donvi 10))
            )
(if donvi
     (progn
    (cond
        ((> donvi 250) (setq tronx (lamtron (fix (+ (car pt1) 100)) kk)) (setq trony (lamtron (fix (+ (cadr pt1) 100)) kk)))
	    ((> donvi 10) (setq tronx (lamtron (fix (+ (car pt1) 10)) kk)) (setq trony (lamtron (fix (+ (cadr pt1) 10)) kk)))
	    ((<= donvi 10) (setq tronx (lamtron (fix (car pt1)) kk)) (setq trony (lamtron (fix (cadr pt1)) kk)))
    )	   
;==============================================================================================
(cond  
        ((> (- (+ tronx (* donvi (- (fix (/ kcx donvi)) 1))) (car pt1)) kcx) (setq nx (- (fix (/ kcx donvi)) 1)))
		((and (< (- (+ tronx (* donvi (- (fix (/ kcx donvi)) 1))) (car pt1)) kcx) (> (- (- (car pt4) (/ 10 heso)) (+ tronx (* donvi (- (fix (/ kcx donvi)) 1)))) donvi)) (setq nx (1+ (fix (/ kcx donvi)))))
		((< (- (+ tronx (* donvi (- (fix (/ kcx donvi)) 1))) (car pt1)) kcx) (setq nx (fix (/ kcx donvi))))
)
(cond  
         ((> (- (+ trony (* donvi (- (fix (/ kcy donvi)) 1))) (cadr pt1)) kcy) (setq ny (- (fix (/ kcy donvi)) 1)))
		 ((and (< (- (+ trony (* donvi (- (fix (/ kcy donvi)) 1))) (cadr pt1)) kcy) (> (- (- (cadr pt3) (/ 5 heso)) (+ trony (* donvi (- (fix (/ kcy donvi)) 1)))) donvi)) (setq ny (1+ (fix (/ kcy donvi)))))
		 ((< (- (+ trony (* donvi (- (fix (/ kcy donvi)) 1))) (cadr pt1)) kcy) (setq ny (fix (/ kcy donvi))))
)
;==============================================================================================
 (setq goc2 (list tronx (cadr pt1) 0.0))
(setq goc3 (list (car pt1) trony 0.0))
;===============================================================
(repeat nx

(makeline goc2 (polar goc2 (/ pi 2) (/ 8.0 heso)) "A1-luoik" nil nil nil)
;=======================================================================
(setq ptext1 (polar goc2 (dtr 23) (/ 3.5 heso)))
(setq ptext2 (polar goc2 (dtr 158) (/ 3.5 heso)))
(setq num (fix (car goc2)))
(setq str (them0 (itoa (rem num 1000))))
(setq str2 (itoa (/ num 1000)))
(mktext ptext1 htext str "M" "A1-luoik" "vusaln" nil)
(mktext ptext2 htext str2 "M" "A1-luoik" "vusaln" nil)
;=======================================================================
(setq goc2 (mapcar '+ goc2 (list donvi 0.0 0.0)))
) ;end repeat nx
;============================================================
(repeat ny
(makeline goc3 (polar goc3 0 (/ 8.0 heso)) "A1-luoik" nil nil nil)
;=====================================================================
(setq ptext3 (polar goc3 (dtr 23) (/ 4.0 heso)))
(setq ptext4 (polar goc3 (dtr 338) (/ 4.0 heso)))
(setq num (fix (cadr goc3)))
(setq str (them0 (itoa (rem num 1000))))
(setq str2 (itoa (/ num 1000)))
(mktext ptext3 htext str2 "M" "A1-luoik" "vusaln" nil)
(mktext ptext4 htext str "M" "A1-luoik" "vusaln" nil)
;============================================================= 
(setq goc3 (mapcar '+ goc3 (list 0.0 donvi 0.0)))
); end repeat ny
;============================================================
(setq goc1 (list tronx trony 0.0))
;============================================================================================ 
 (setq x (car goc1))
  (repeat nx
    (setq y (cadr goc1))
    (repeat ny
      
	  (vediem x y (/ 2.5 heso))
      (setq y (+ y donvi))
    )
;===============================================================================================
    (setq x (+ x donvi))
  )
 ;==============================================================================================
 ) ;end progn donvi
   (alert "Ban chon Khung KiBo qua\nChon Khung Lai Hen!!!^^") ; end nho hon 25
) ; end if don vi
;==============================================================================
) ; end progn while

) ; end while
(prompt "Ban co mun xoa luoi vua tao, co thi quet chon enter, khong thi enter bo qua")
(setq ss1 (ssget '((0 . "LINE,TEXT") (8 . "A1-luoik"))))
(if ss1
 (progn
   (repeat (sslength ss1)
	 (setq ten (ssname ss1 0))
	 (entdel ten)
	 (ssdel ten ss1)
	 )
  )
 )
(setvar "osmode" old)
(princ)
)
;============================================================================================
(defun c:kxoa()
(prompt "Chon luoi vua tao mun xoa")
(ssget '((0 . "LINE,TEXT") (8 . "A1-luoik")))
(vl-cmdf ".erase" "P" "")
(princ)
)
;==============================================================================================
;;;;;;;;;;;;;;;;;;;
(defun lamtron (n k / sodu)
  (setq sodu (rem n k))
  (if (/= sodu 0)
    (setq n (+ (- n sodu) k))
  )
  n
)
;=================================
(defun vediem (xx yy r / left right top bot)
  (setq top (+ yy r))
  (setq bot (- yy r))
  (setq right (+ xx r))
  (setq left (- xx r))
  (makeline (list left yy) (list right yy) "A1-luoik" nil nil nil)
  (makeline (list xx top) (list xx bot) "A1-luoik" nil nil nil)
)
;============================
;=================================================================================
(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)
            )
        )
    )
)
;=====================================================================================
; ham luu gia tri
(defun getvalue ( a giatri dongnhac / astr) 
(or a (setq a giatri))
(cond
	((= (type a) 'INT) (setq a (cond ((getint (strcat "\n" dongnhac "(" (itoa a) ") :")))(a))))
	((= (type a) 'REAL) (setq a (cond ((getreal (strcat "\n" dongnhac "(" (rtos a 2 0) ") :")))(a))))
	((= (type a) 'STR) (setq a (cond ((= "" (setq astr (getstring T (strcat "\n" dongnhac " (" a "): ")))) a) (astr))))
))
;;;;
;ham tao text 2
(defun mktext (point height string justify layer textstyle mau / lst)
(setq lst (list '(0 . "TEXT")
                              (cons 10 point)
							  (cons 40 height)
							  (cons 1 string)
							  (cons 8 layer)
							  (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
;--------------------------------------
(defun them0(chuoi)
  (setq len (strlen chuoi))
  (if (= len 1)
    (strcat "00" chuoi)
    (if (= len 2)
      (strcat "0" chuoi)
      chuoi
    )  
  )
 )

- Mong đc các anh giúp đở ^^

- P/s: nhoc ko giỏi trình bày có gì các anh bỏ quá cho ^^


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

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








#2070 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 24 October 2014 - 04:15 PM

Đọc xong: xỉu! <_<


  • 0

* 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.


#2071 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

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

Đã gửi 24 October 2014 - 04:45 PM

Cho mình hỏi: Làm thế nào để biết chế độ bắt điểm đang ở trạng thái OFF hoặc không có chế độ bắt điểm nào?


  • 0

#2072 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 24 October 2014 - 04:47 PM

- ^^ nhoc viết nhoc còn choáng nữa là , anh Ha có cách gì gợi ý nhoc với :)


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

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








#2073 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 24 October 2014 - 05:24 PM

Cho mình hỏi: Làm thế nào để biết chế độ bắt điểm đang ở trạng thái OFF hoặc không có chế độ bắt điểm nào?

Lấy (setq osm (getvar "osmode"))

Nếu:

osm >= 16384: OFF

osm = 0 hoặc osm = 16384: không có chế độ nào.


  • 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.


#2074 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 24 October 2014 - 06:22 PM

osnap : (/= 16384 (logand 16384 (getvar "osmode"))) 


  • 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


#2075 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 24 October 2014 - 09:29 PM

Lấy (setq osm (getvar "osmode"))

Nếu:

osm >= 16384: OFF

osm = 0 hoặc osm = 16384: không có chế độ nào.

 

Trường hợp: OSM = 1024 : OFF

Trường hợp: OSM = 1024 : không có chế độ nào bác ạ!

 

osnap : (/= 16384 (logand 16384 (getvar "osmode"))) 

 

Chắc là chưa đủ hè!

(setvar "osmode" 1024)

OSNAP đã tắt rồi nhưng mã code của Ket là T -> TH sai


  • 1

#2076 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 25 October 2014 - 12:42 AM

K hề sai. (setvar "osmode" 1024) -> A nhấn chuột phải vào ô setting của nút Osnap và nhìn mục check Osnap Object On để biết cái j đang diễn ra :)


  • 0

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


#2077 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 25 October 2014 - 05:59 AM

Cám ơn bạn Doan Van Ha.

Mình vùa mới biết tới đối tượng Mpolygon nên chưa có kiến thức nhiều về nó. Bạn cho hỏi thêm tý:

- Có khi bản vẽ mở lên không thấy màu của nó, không biết có phải biến hệ thống nào đó hay vì sao?

- Có thể đổi nó thành Hatch hay Polyline được không?


  • 0

#2078 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 25 October 2014 - 06:08 AM

K hề sai. (setvar "osmode" 1024) -> A nhấn chuột phải vào ô setting của nút Osnap và nhìn mục check Osnap Object On để biết cái j đang diễn ra :)

 

Ket dùng (setvar "osmode" 0)  -> Ket hấn chuột phải vào ô setting của nút Osnap và nhìn mục check Osnap Object On để biết cái j đang diễn ra 

Xem nó có giống OSMODE = 1024 không?


  • 0

#2079 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 25 October 2014 - 06:31 AM

Cám ơn bạn Doan Van Ha.

Mình vùa mới biết tới đối tượng Mpolygon nên chưa có kiến thức nhiều về nó. Bạn cho hỏi thêm tý:

- Có khi bản vẽ mở lên không thấy màu của nó, không biết có phải biến hệ thống nào đó hay vì sao?

- Có thể đổi nó thành Hatch hay Polyline được không?

 

Chào bác!

- Theo Tue_NV được biết có thể do biến hệ thống Fillmode =0 có thể làm cho bác không thấy màu của nó

- MPLOLYGON có Hatch thuộc Pattern SOLID thì không thể chuyển Hatch thành POLYLINE.

Cũng có thể Tue_NV không hiểu ý này của bác. Bác có thể nói rõ hơn không?


  • 1

#2080 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 25 October 2014 - 08:39 AM

Ngoai 1024 thi con 17408 nua (chẳng viet duoc tieng Viet).


  • 0

* 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.