Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
dauquangminh

[Yêu cầu]1 Lisp vẽ đường polyline nối baseponit của các block và

Các bài được khuyến nghị

dauquangminh    37

Hix :wacko: . Hôm qua lần đầu tiên em gửi bài, không đúng nội quy nên bị xóa. Hôm nay xin phép gửi lại chủ đề này, xin nhờ các anh chị giúp đỡ viết giùm em 2 lisp sau, cụ thể, chi tiết xin xem file đính kèm ạ: http://www.mediafire.com/?7svc4575ko2gh7y

Cảm ơn các anh chị.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.680

Hix :wacko: . Hôm qua lần đầu tiên em gửi bài, không đúng nội quy nên bị xóa. Hôm nay xin phép gửi lại chủ đề này, xin nhờ các anh chị giúp đỡ viết giùm em 2 lisp sau, cụ thể, chi tiết xin xem file đính kèm ạ: http://www.mediafire.com/?7svc4575ko2gh7y

Cảm ơn các anh chị.

Tôi đã đọc bản vẽ của bạn. Có đúng và có sai. Nhưng bạn phải giải thích rõ quy luật nối, ví dụ theo X tăng dần, theo Y tăng dần...

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.653

Hix :wacko: . Hôm qua lần đầu tiên em gửi bài, không đúng nội quy nên bị xóa. Hôm nay xin phép gửi lại chủ đề này, xin nhờ các anh chị giúp đỡ viết giùm em 2 lisp sau, cụ thể, chi tiết xin xem file đính kèm ạ: http://www.mediafire.com/?7svc4575ko2gh7y

Cảm ơn các anh chị.

Yêu cầu của bạn thiếu mô tả dữ liệu đầu vào, sơ qua yêu cầu và hình ảnh minh họa (không phải ai cũng có điều kiện dơnload về để đọc mà => yêu cầu của bạn sẽ bị lãng quên) Hi vọng lần sau bạn rút kinh nghiệm

Còn đây là lisp bạn yêu cầu. Mình bổ sung dữ kiện : đối tượng bắt đầu đường đi

Lệnh :

- Yêu cầu 1 : b2pl :

+ Chọn các Block cần vẽ đường Pline qua, chọn Block đầu => Lisp tìm đường đi theo quy luật điểm thứ n sẽ gần điểm n-1 nhất và kẻ Pline qua đó

- Yêu cầu 2 : b2t

+ Chọn các Block cần ghi text, Block bắt đầu, Khoảng cách từ Text tới Block, Giá trị bắt đầu, Gia số => Lisp sẽ đánh số với gia số và quy luật như trên với mỗi Block

Chúc bạn vui

Update : input Text Height

(defun c:b2pl (/ ss estart dump)
(grtext -1 "Free lisp from CadViet @Ketxu")
(setvar "nomutt" 1)(prompt "Ch\U+1ECDn c\U+00E1c Block mu\U+1ED1n k\U+1EBB Pline :")
(setq ss (ssget (list (cons 0 "INSERT")))
	dump (setvar "nomutt" 0) 
	estart (car (entsel "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng \U+0111\U+1EA7u :"))
	)
(ST:Entmake-Pline
(ST:List-Sort-ByDistance
	(ST:Ss->ListBasePoint ss)
	(vl-position (ST:Ent-Dxf 10 estart) (ST:Ss->ListBasePoint ss))
)
	(getvar "clayer")
	4
	Nil
)
)




(defun c:b2t (/ ss estart tH dump)
(grtext -1 "Free lisp from CadViet @Ketxu")
(setvar "nomutt" 1)(prompt "Ch\U+1ECDn c\U+00E1c Block mu\U+1ED1n k\U+1EBB Pline :")
(or #a (setq #a 2))
(or #start (setq #start 1))
(or #inc (setq #inc 1))
(or #tH (setq #inc (* 5 (getvar "dimtxt")(getvar "dimscale"))
)))

(setq ss (ssget (list (cons 0 "INSERT")))
	dump (setvar "nomutt" 0)
	estart (car (entsel "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng \U+0111\U+1EA7u :")) 
	a1 (getreal (strcat "\nKho\U+1EA3ng c\U+00E1ch t\U+1EEB Text t\U+1EDBi BasePoint c\U+1EE7a Block < " (rtos #a 2 1) " >: ") )
	start1 (getreal (strcat "\nS\U+1ED1 b\U+0103t \U+0111\U+1EA7u : < " (rtos #start 2 1) " >: ")) 
	inc1 (getreal (strcat "\nGia s\U+1ED1 < " (rtos #inc 2 1) " >: "))
	tH1 (getreal (strcat "\nCao Text < " (rtos #tH 2 1) " >: "))
(if a1 (setq #a a1))
(if start1 (setq #start start1))
(if inc1 (setq #inc inc1))
(if tH1 (setq #tH tH1))

(mapcar
(function
(lambda (x )
(wtxt_l (rtos  #start 2 0) (mapcar '+ x (list 0 #a 0)) #tH)(setq #start (+ #start #inc)))) 
(ST:List-Sort-ByDistance
	(ST:Ss->ListBasePoint ss)
	(vl-position (ST:Ent-Dxf 10 estart) (ST:Ss->ListBasePoint ss))
)

)
)

;;;;;;;;;;;;; Local Functions 

(defun wtxt_l(txt p h)(entmakex (list (cons 0 "TEXT") (cons 7 (getvar "textstyle")) (cons 40 h)(cons 1 txt) (cons 10 p))))
(defun ST:Ent-Dxf (dxfCode Ent)(if (= (type Ent) 'ENAME)(cdr (assoc dxfCode (entget Ent))) nil))
(defun ST:Ss->ListBasePoint (ss / n l)
;31-7-2011 @Ketxu
 (setq n (sslength ss))
 (while (setq e (ssname ss (setq n (1- n))))
   (setq l (cons (ST:Ent-Dxf 10 e) l))
 )  
)
(defun ST:Entmake-Pline (list_pt Layer Color isClosed / Polylist)
;31-7-2011 @Ketxu
(setq Polylist 
(list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
   (cons 8 Layer) 
   (cons 43 0) 
   (cons 62 Color) 
   (cons 90 (length list_pt))
(cons 70 (cond ((= isClosed T) 1)(T 0)))
)
Polylist (append Polylist (mapcar '(lambda (coord) (cons 10 coord)) list_pt)))
(entmakex PolyList)
)
(defun ST:List-Sort-ByDistance (lst start / lstRT 1st item lstDis)
;31-7-2011 @Ketxu
(setq 1st (nth start lst) lstRT (list 1st) lst (append lstRT (vl-remove 1st lst)))
(while (> (length lst) 1)
(setq lst (vl-remove (setq item (nth (1+ (vl-position (setq mindis (apply 'min (setq lstDis (cdr (mapcar '(lambda(x) (distance 1st x)) lst))))) lstDis)) lst)) lst))
(setq lstRT (cons item lstRt))
(setq 1st (car lstRT))
)
(reverse lstRT)
)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
dauquangminh    37

Yêu cầu của bạn thiếu mô tả dữ liệu đầu vào, sơ qua yêu cầu và hình ảnh minh họa (không phải ai cũng có điều kiện dơnload về để đọc mà => yêu cầu của bạn sẽ bị lãng quên) Hi vọng lần sau bạn rút kinh nghiệm

Còn đây là lisp bạn yêu cầu. Mình bổ sung dữ kiện : đối tượng bắt đầu đường đi

Lệnh :

- Yêu cầu 1 : b2pl :

+ Chọn các Block cần vẽ đường Pline qua, chọn Block đầu => Lisp tìm đường đi theo quy luật điểm thứ n sẽ gần điểm n-1 nhất và kẻ Pline qua đó

- Yêu cầu 2 : b2t

+ Chọn các Block cần ghi text, Block bắt đầu, Khoảng cách từ Text tới Block, Giá trị bắt đầu, Gia số => Lisp sẽ đánh số với gia số và quy luật như trên với mỗi Block

Chúc bạn vui

(defun c:b2pl (/ ss estart dump)
(grtext -1 "Free lisp from CadViet @Ketxu")
(setvar "nomutt" 1)(prompt "Ch\U+1ECDn c\U+00E1c Block mu\U+1ED1n k\U+1EBB Pline :")
(setq ss (ssget (list (cons 0 "INSERT")))
	dump (setvar "nomutt" 0) 
	estart (car (entsel "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng \U+0111\U+1EA7u :"))
	)
(ST:Entmake-Pline
(ST:List-Sort-ByDistance
	(ST:Ss->ListBasePoint ss)
	(vl-position (ST:Ent-Dxf 10 estart) (ST:Ss->ListBasePoint ss))
)
	(getvar "clayer")
	4
	Nil
)
)




(defun c:b2t (/ ss estart tH dump)
(grtext -1 "Free lisp from CadViet @Ketxu")
(setvar "nomutt" 1)(prompt "Ch\U+1ECDn c\U+00E1c Block mu\U+1ED1n k\U+1EBB Pline :")
(or #a (setq #a 2))
(or #start (setq #start 1))
(or #inc (setq #inc 1))

(setq ss (ssget (list (cons 0 "INSERT")))
	dump (setvar "nomutt" 0)
	estart (car (entsel "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng \U+0111\U+1EA7u :")) 
	a1 (getreal (strcat "\nKho\U+1EA3ng c\U+00E1ch t\U+1EEB Text t\U+1EDBi BasePoint c\U+1EE7a Block < " (rtos #a 2 1) " >: ") )
	start1 (getreal (strcat "\nS\U+1ED1 b\U+0103t \U+0111\U+1EA7u : < " (rtos #start 2 1) " >: ")) 
	inc1 (getreal (strcat "\nGia s\U+1ED1 < " (rtos #inc 2 1) " >: ") 		)
	tH (* 5 (getvar "dimtxt")(getvar "dimscale"))
)
(if a1 (setq #a a1))
(if start1 (setq #start start1))
(if inc1 (setq #inc inc1))

(mapcar
(function
(lambda (x )
(wtxt_l (rtos  #start 2 0) (mapcar '+ x (list 0 #a 0)) tH)(setq #start (+ #start #inc)))) 
(ST:List-Sort-ByDistance
	(ST:Ss->ListBasePoint ss)
	(vl-position (ST:Ent-Dxf 10 estart) (ST:Ss->ListBasePoint ss))
)

)
)

;;;;;;;;;;;;; Local Functions 

(defun wtxt_l(txt p h)(entmakex (list (cons 0 "TEXT") (cons 7 (getvar "textstyle")) (cons 40 h)(cons 1 txt) (cons 10 p))))
(defun ST:Ent-Dxf (dxfCode Ent)(if (= (type Ent) 'ENAME)(cdr (assoc dxfCode (entget Ent))) nil))
(defun ST:Ss->ListBasePoint (ss / n l)
;31-7-2011 @Ketxu
 (setq n (sslength ss))
 (while (setq e (ssname ss (setq n (1- n))))
   (setq l (cons (ST:Ent-Dxf 10 e) l))
 )  
)
(defun ST:Entmake-Pline (list_pt Layer Color isClosed / Polylist)
;31-7-2011 @Ketxu
(setq Polylist 
(list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")
   (cons 8 Layer) 
   (cons 43 0) 
   (cons 62 Color) 
   (cons 90 (length list_pt))
(cons 70 (cond ((= isClosed T) 1)(T 0)))
)
Polylist (append Polylist (mapcar '(lambda (coord) (cons 10 coord)) list_pt)))
(entmakex PolyList)
)
(defun ST:List-Sort-ByDistance (lst start / lstRT 1st item lstDis)
;31-7-2011 @Ketxu
(setq 1st (nth start lst) lstRT (list 1st) lst (append lstRT (vl-remove 1st lst)))
(while (> (length lst) 1)
(setq lst (vl-remove (setq item (nth (1+ (vl-position (setq mindis (apply 'min (setq lstDis (cdr (mapcar '(lambda(x) (distance 1st x)) lst))))) lstDis)) lst)) lst))
(setq lstRT (cons item lstRt))
(setq 1st (car lstRT))
)
(reverse lstRT)
)

Cảm ơn anh ketxu rất nhiều. Lisp 1 chạy rất tốt ạ, còn lisp 2 là lisp điền text ấy, anh có thể thêm một mục để người dùng nhập chiều cao chữ được không ạ, vì chiều cao chữ khi xuất ra lúc thì 0.9, lúc thì 10...

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.653

Cảm ơn anh ketxu rất nhiều. Lisp 1 chạy rất tốt ạ, còn lisp 2 là lisp điền text ấy, anh có thể thêm một mục để người dùng nhập chiều cao chữ được không ạ, vì chiều cao chữ khi xuất ra lúc thì 0.9, lúc thì 10...

Chính là do bạn không cho dữ liệu đầu vào của cao text, nên mình lấy theo tỉ lệ dim. Lần tới nếu bạn có yêu cầu thì cố gắng nhập càng đủ dữ liệu càng tốt, vừa đỡ phải chờ mà người viết cũng k phiền lòng . Code chỉnh lại mình up lại bài trên, bạn download lại nhé. Chúc bạn vui

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

.

Hề hề hề,

bạn dùng thử cái ni coi đã ưng ý chưa hè???


(defun c:mabl (/ oldos bln ssbl plst an h pre suf sta k i d)
(vl-load-com)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq bln (getstring t "\n Hay nhap ten block can danh dau: "))
(setq ssbl (acet-ss-to-list (ssget (list (cons 0 "insert") (cons 2 bln)))))
(setq plst (list))
(foreach en ssbl
      (foreach a (entget en)
            (if (= (car a) 10)
                (setq plst (append plst (list (cdr a))))
            )
       )
)
(setq plst (vl-sort plst '(lambda (x y) (< (car x) (car y)))))
(setq an (getstring "Ban muon ve duong noi <Y or N>: "))
(if (= (strcase an) "Y")
   (progn
          (command "pline")
                  (foreach x plst 
                         (command x)
                  )
         (command "")
   )
   (progn
           (setq h (getreal "\n Nhap chieu cao text: ")
                   pre (getstring t "\n Nhap tiep dau: ")
                   suf (getstring t "\n Nhap tiep duoi: ")
                   sta (getreal "\n Nhap so bat dau: ")
                   k (getreal "\n Nhap gia so: ")
                   d (getdist "\n Nhap khoang cach dat text: ")
                   i 0
           )
           (foreach x plst
                  (entmake (list (cons 0 "text")
                                       (cons 1 (strcat pre (rtos (+ sta (* i k)) 2 0) suf))
                                       (cons 40 h)
                                       (cons 10 (list (car x) (+ (cadr x) d) (caddr x)))
                                )
                  )
                  (setq i (1+ i))
          )
    )
)
(setvar "osmode" oldos)
(command "undo" "e")
(princ)
)

 

Hề hề hề,

Cái lisp ni mình đã ghép hai yêu cầu của bạn vào một lệnh là mabl. Nếu bạn muốn vẽ pline thì khi lisp hỏi "Ban muon ve duong noi <Y or N>: " bạn nhập y vào dòng command, còn nếu bạn không nhập gì hoặc nhập bát kỳ ký tự chi khác y hay Y lisp sẽ ghi text theo yêu cầu của bạn.

Chú ý trong lisp mình có bổ sung thêm việc nhập tên block vì e rằng trên bản vẽ có thể có nhiều block khác nhau nên bạn sẽ nối nhầm.

Lisp được viết theo yêu cầu của bạn là vẽ pline hay viết text theo tọa độ x tăng dần của các block được chọn bạn nhé.

Nếu có chi chưa ưng ý thì hãy post lên để mình sửa.

Hề hề hề,

Chúc bạn vui.

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
lp_hai    209

:excl: @-->>dauquangminh mình nghĩ bạn bạn nên nhấn dấu cộng màu xanh ở dưới bài bác ketxu một cái, khi sửa lại bài theo ý bạn thì nên nhấn thêm cái nữa. nếu bạn down lisp của bác Phamthanhbinh về "xài thử" thì cũng nên nhấn vào dấu + luôn.

hehheee.

:rolleyes:

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.653

Bạn dauquangminh nhớ là lisp của mình và của bác Bình giải quyết 2 bài toán khác nhau :

 

Untitled1.jpg

 

- Mình : đi từ block đầu (do bạn chọn, có thể ở giữa đống block, hoặc ở đâu đó) đến block cuối theo khoảng cách (distance)

- Bác Bình : sắp xếp lại block theo thứ tự tọa độ trục X tăng dần, vì vậy không cần bước chọn đối tượng bắt đầu đường đi, vì nó luôn bắt đầu từ thằng đầu tiên bên trái.

 

Bạn không phân biệt rõ sự khác nhau giữa khoảng cách và delta x, làm mình mất khá nhiều thời gian để giải quyết bài toán tổng quát thay vì 1 dòng lambda như bác Bình làm ( :wub: ) :angry:

Bạn cố gắng rút kinh nghiệm nhé :unsure:

 

Ngoài ra, mình cũng nói thêm về topic bạn mới lập thêm để yêu cầu lisp.

- Có phần chọn ba đầu: nếu em chọn bên trái thì nó sẽ tăng dần từ trái sang phải, nếu em chọn bên phải thì nó sẽ tăng dần từ phải sang trái (lấy theo trục X)

Cái BA ở bên nào là do bạn nói với lisp hay nó tính toán ?? Nếu bạn chọn nhầm cái không phải là bên trái đầu tiên hay bên phải đầu tiên thì lisp xử trí thế nào ?? Nó cứ đi theo 1 hướng thì những cái lệch sang bên còn lại tính sao :)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

Bạn dauquangminh nhớ là lisp của mình và của bác Bình giải quyết 2 bài toán khác nhau :

 

Untitled1.jpg

 

- Mình : đi từ block đầu (do bạn chọn, có thể ở giữa đống block, hoặc ở đâu đó) đến block cuối theo khoảng cách (distance)

- Bác Bình : sắp xếp lại block theo thứ tự tọa độ trục X tăng dần, vì vậy không cần bước chọn đối tượng bắt đầu đường đi, vì nó luôn bắt đầu từ thằng đầu tiên bên trái.

 

Bạn không phân biệt rõ sự khác nhau giữa khoảng cách và delta x, làm mình mất khá nhiều thời gian để giải quyết bài toán tổng quát thay vì 1 dòng lambda như bác Bình làm ( :wub: ) :angry:

Bạn cố gắng rút kinh nghiệm nhé :unsure:

 

Ngoài ra, mình cũng nói thêm về topic bạn mới lập thêm để yêu cầu lisp.

 

Cái BA ở bên nào là do bạn nói với lisp hay nó tính toán ?? Nếu bạn chọn nhầm cái không phải là bên trái đầu tiên hay bên phải đầu tiên thì lisp xử trí thế nào ?? Nó cứ đi theo 1 hướng thì những cái lệch sang bên còn lại tính sao :)

Hề hề hề,

Bác Ketxu chỉ được cái nói ..... đúng.

Thực ra cái lisp của bác mới đúng cái yêu cầu ban đầu theo như bạn ý nói là chọn thằng gần nhất, xong khi nhìn trên bản vẽ của bạn ấy thì mình vận dụng kiểu "Nhìn Hình Đoán ..... Ý" của thằng cu Xuân Bắc mà trên TV đang ầm ĩ để làm cái lisp của mình cho nó..... dễ ý mà. Hên ở chỗ bạn ấy chưa biết mình sai nên chưa kịp phê phán đó thôi. Chứ cứ xài nó độ vài trăm bận sẽ thấy cái chưa được của cái lisp ấy mà.

Hề hề hề,

Dù sao thì cũng góp được với các bác một tí cái gọi là lisp.

Hề hề hề.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.653

Hề, dù sao thì nhờ bạn ấy mà e mới mò mẫm ra cái defun sort point theo khoảng cách. Có thời gian em sẽ up nó lên thêm lựa chọn sort "distance" theo x, theo y, hay theo khoảng cách thực để dùng dần ^^ Giờ mới thấy sau khi đã xây dựng 1 bộ defun kha khá thì việc coding cũng nhanh mà nhàn nữa, bác nhểy :wub:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
dauquangminh    37

Bạn dauquangminh nhớ là lisp của mình và của bác Bình giải quyết 2 bài toán khác nhau :

 

Untitled1.jpg

 

- Mình : đi từ block đầu (do bạn chọn, có thể ở giữa đống block, hoặc ở đâu đó) đến block cuối theo khoảng cách (distance)

- Bác Bình : sắp xếp lại block theo thứ tự tọa độ trục X tăng dần, vì vậy không cần bước chọn đối tượng bắt đầu đường đi, vì nó luôn bắt đầu từ thằng đầu tiên bên trái.

 

Bạn không phân biệt rõ sự khác nhau giữa khoảng cách và delta x, làm mình mất khá nhiều thời gian để giải quyết bài toán tổng quát thay vì 1 dòng lambda như bác Bình làm ( :wub: ) :angry:

Bạn cố gắng rút kinh nghiệm nhé :unsure:

 

Ngoài ra, mình cũng nói thêm về topic bạn mới lập thêm để yêu cầu lisp.

 

Cái BA ở bên nào là do bạn nói với lisp hay nó tính toán ?? Nếu bạn chọn nhầm cái không phải là bên trái đầu tiên hay bên phải đầu tiên thì lisp xử trí thế nào ?? Nó cứ đi theo 1 hướng thì những cái lệch sang bên còn lại tính sao :)

 

Hix. Em cũng thấy thất vọng về bản thân mình. Mình hiểu là một chuyện, còn giải thích như thế nào để người khác dễ hiểu và dễ làm lại là một việc khác. Buồn quá. Xin lỗi các bác.

 

Cái BA đầu thì do mình chọn, còn bên trái hay phải là do lisp tính toán trong những block đó block nào có tọa độ X nhỏ nhất tức là block đầu tiên bên trái. Nếu chọn nhầm thì lisp sẽ báo bạn đã chọn nhầm và yêu cầu chọn lại cho đúng.

 

Em muốn hỏi bác ketxu 1 câu ngoài lề: làm sao đưa hình lên diễn đàn như bác được nhỉ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.653

Cái cách chọn BA ấy có lẽ làm như bác Bình là hay nhất, bảo thuận thì nó làm từ trái sang phải, k thì ngược lại, khỏi hỏi nhiều, pick nhiều :) Về vấn đề này bạn sang bên topic đó nhé, bác Bình đã làm giúp bạn rồi đó

 

Ngoài lề : bạn chụp ảnh, up lên 1 host free nào đó, như photobucket.com chẳng hạn, rồi lấy direct link của nó. Ở mục viết bài, có icon Insert Image, ngay cạnh icon bạn dùng để post file đó. kích vào và paste direct link bạn vừa lấy vào là ok

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
dauquangminh    37

Cái cách chọn BA ấy có lẽ làm như bác Bình là hay nhất, bảo thuận thì nó làm từ trái sang phải, k thì ngược lại, khỏi hỏi nhiều, pick nhiều :) Về vấn đề này bạn sang bên topic đó nhé, bác Bình đã làm giúp bạn rồi đó

 

Ngoài lề : bạn chụp ảnh, up lên 1 host free nào đó, như photobucket.com chẳng hạn, rồi lấy direct link của nó. Ở mục viết bài, có icon Insert Image, ngay cạnh icon bạn dùng để post file đó. kích vào và paste direct link bạn vừa lấy vào là ok

cảm ơn bác, em đã làm được rồi.eurolanguages_learn-study-english-abroad.png

một ngày chỉ được bình chọn 4 hay 5 lần thôi ấy nhỉ nên em không bình chọn cho bác được nữa rồi

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
dauquangminh    37

sẵn tiện có bác ketxu ở đây em muốn hỏi cái này luôn:

em có một bộ lisp rất hay mà em đã sưu tầm từ nhiều nơi và nay em muốn chia sẽ với mọi người thì làm thế nào nhỉ?

nếu lập topic mới thì vi phạm nội quy, vì lisp em rất nhiều cả một bộ luôn nếu tiêu đề ghi chung chung quá :( thì người khác sẽ không thể nhìn vào tiêu đề để biết mà tra cứu được

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.653

Nếu nó bao gồm nhiều thứ thì bạn cứ ghi là [Đã xong]Chia sẻ bộ lisp hay thôi ^^ Nếu không thì bạn chọn lọc vài cái hay ho post lên cũng được vậy :lol:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
hongha_gtvt    0

http://www.cadviet.com/upfiles/3/118147_lisp_noi_layer_1.dwgChào cả nhà!

theo chu đề này mình có một bài này muốn nhờ cả nhà giúp.

Mình muốn nhờ cả nhà viết hộ một cái lisp như yêu cầu trong file đã đính kèm. 

thanks! mọi người trước nhá!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

Chào cả nhà!

theo chu đề này mình có một bài này muốn nhờ cả nhà giúp.

Mình muốn nhờ cả nhà viết hộ một cái lisp như yêu cầu trong file đã đính kèm. 

thanks! mọi người trước nhá!

Hề hề hề,

Mình muốn mọi người viết hộ bạn ấy cái lisp như yêu cầu trong file không có đính kèm......

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
phamthanhbinh    3.123

một khó khăn hơn nhờ các bác giúp

Lisp Vẽ đường PLINE nối tọa độ đầu các đường dóng LINE tăng dần theo trục X file dinh kem

http://www.cadviet.com/upfiles/3/132623_pline_3.dwg

Hề hề hề,

Code nháp để bạn test thử, nếu Ok sẽ hoàn thiện sau.

 

(defun c:vpl ()
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(alert "\n Chon cac line can moi")
(setq ssl (acet-ss-to-list (ssget (list (cons 0 "line")))))
(setq plst (list))
(foreach e ssl
(setq elst (entget e)
          p1 (cdr (assoc 10 elst))
          p2 (cdr (assoc 11 elst)) )
(if (< (cadr p1) (cadr p2)) 
    (setq plst (append plst (list p1)))
    (setq plst (append plst (list p2)))
)
)
(setq plst (vl-sort plst '(lambda (x y) (< (car x) (car y)))))
(command "pline")
(foreach p plst
     (command p)
)
(command "")
(setvar "osmode" oldos)
(princ)
)
(defun c:vpl ()
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(alert "\n Chon cac line can moi")
(setq ssl (acet-ss-to-list (ssget (list (cons 0 "line")))))
(setq plst (list))
(foreach e ssl
(setq elst (entget e)
          p1 (cdr (assoc 10 elst))
          p2 (cdr (assoc 11 elst)) )
(if (< (cadr p1) (cadr p2)) 
    (setq plst (append plst (list p1)))
    (setq plst (append plst (list p2)))
)
)
(setq plst (vl-sort plst '(lambda (x y) (< (car x) (car y)))))
(command "pline")
(foreach p plst
     (command p)
)
(command "")
(setvar "osmode" oldos)
(princ)
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×