Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Lisp cắt đối tượng


  • Please log in to reply
44 replies to this topic

#41 hugo007

hugo007

    biết lệnh erase

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

Đã gửi 11 August 2011 - 10:56 PM

Hề hề hề,
Bạn có thể thay hàm (princ..... ) bằng hàm (alert ....) nó sẽ hiện lên màn hình cho bạn nhòm thoải mái, sau đó nhấn enter để thoát cho khỏi ngứa con mắt....
Hề hề hề....
Mà "nhìn xuống dòng command" cũng là nhìn "lên màn hình" chớ bộ, hề hề hề,.... Hổng nhẽ lại là nhìn sang cô hàng xóm.... hề hề hề

Không phải bác ah,ý e là nó hiện lên giống khi ta dùng cad 2007 trở lên khi đánh lệnh MOVE hoặc COPY thì ngay vị trí con trỏ chuột hiện lên dòng SELECT OBJECTS đó bác.Thanks.
  • 1

#42 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 11 August 2011 - 11:22 PM

Không phải bác ah,ý e là nó hiện lên giống khi ta dùng cad 2007 trở lên khi đánh lệnh MOVE hoặc COPY thì ngay vị trí con trỏ chuột hiện lên dòng SELECT OBJECTS đó bác.Thanks.

nhấn F12
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#43 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 12 August 2011 - 12:43 AM

Hề hề hề,
@ Bác Ketxu: Bác viết lisp bằng cai font chi mà dịch nó khổ quá. Giá bác cứ chơi tiếng Việt không dấu thì dễ đọc biết mấy????

Hề hề, Unicode Hexa, cây nhà lá vườn tội chi không dùng bác ơi ^^

Cho e hỏi 1 ý nhỏ nữa là tại sao các bác viết code không đưa những dòng yêu cầu lên màn hình ngay vị trí con trỏ chuột,chẳng hạn lisp này dòng CHỌN ĐỐI TƯỢNG BỊ CẮTĐỐI TƯỢNG CẮT lên màn hình để đỡ phải nhìn xuống dòng command.Cảm ơn các bác nhiều.

Bạn nên set Dynamic Prompt và tự trừ điểm của mình vì câu hỏi này, vì nói trên diễn đàn nhiều quá rồi ^^ , và xét cho cùng, 1 lệnh chỉ có 2 bước chọn đối tượng thì chỉ cần đến lần thứ 2 là bạn chẳng cần ai nhắc nữa, nó sẽ thành phản xạ như offset, stretch vậy ... :)
  • 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


#44 nhunha_pro279

nhunha_pro279

    biết vẽ line

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

Đã gửi 06 December 2016 - 08:56 PM

Bạn dùng thử cái này xem nhé.



(defun C:CDT( / sl dt giao )

 (setq oldos (getvar "osmode") oldcm (getvar "cmdecho"))

 (setvar "osmode" 0) (setvar "cmdecho" 0)

 (princ "Chon cac Line can cat: ")

 (setq sl (acet-ss-to-list (ssget '((0 . "LINE")))))

 (setq dt (entsel "Chon Line cat: "))

 (foreach n sl

  (setq giao (inters (cdr (assoc 10 (entget n))) (cdr (assoc 11 (entget n))) (cdr (assoc 10 (entget (car dt)))) (cdr (assoc 11 (entget (car dt))))))

  (command "break" n  giao giao))

 (setvar "osmode" oldos) 

 (setvar "cmdecho" oldcm)

 (princ))

(princ "Lenh cat doi tuong: CDT")


Bác #DoanVanHa ơi đoạn (setq dt (entsel "Chon Line cat: ")) có thể chọn nhiều  đối tượng line được không bác nhỉ. Phải sửa code thế nào ạ. Kính mong bác chỉ giúp với!


  • -1

#45 nhunha_pro279

nhunha_pro279

    biết vẽ line

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

Đã gửi 08 December 2016 - 02:57 PM

Mình test thử có thấy lỗi thế đâu nhỉ.
Đây là code của ket mình có edit tí chút.



(defun c:brd (/ lst_tmp lst_ss_bicat lst_ss_cat lst ST:Ent-Length ST:Ss->ListEnt ST:Ent-IntersObj ST:Ent-BrkLPSLine)



(defun ST:Ent-Length(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))



(defun ST:Ent-IntersObj (e1 e2  / ob1 ob2 g L i kq) ;objExtend : doi tuong keo dai

(vl-load-com)

(setq

    ob1 (vlax-ename->vla-object e1)

    ob2 (vlax-ename->vla-object e2))	

	(setq g (vlax-variant-value (vla-IntersectWith ob1 ob2 acExtendNone)))

(if (/= (vlax-safearray-get-u-bound g 1) -1) (setq L (vlax-safearray->list g)))

(setq i 0)

(repeat (/ (length L) 3)

    (setq kq (append (list (list (nth i L) (nth (+ i 1) L) (nth (+ i 2) L))) kq))

    (setq i (+ i 3))

)

kq

)

(defun ST:Ent-BrkLPSLine (obj LineDo / lstInters);ename

(if (setq lstInters (ST:Ent-IntersObj obj LineDo))

(progn

(foreach x lstInters

(command "_break" obj "_non" x "@")

)

)

)

)



(grtext -1 "Free Break and Del *Line @Ketxu Cadviet.com")

(command "undo"  "begin")

(setq ss_new (ssadd))

(prompt "\nCh\U+1ECDn c\U+00E1c Line, Pline, SLine.. b\U+1ECB c\U+1EAFt :")

(setq lst_ss_bicat (acet-ss-to-list (ssget)))

(prompt "\nCh\U+1ECDn c\U+00E1c Line, Pline, SLine...c\U+1EAFt :")

 (setq lst_ss_cat (acet-ss-to-list (ssget)))

(foreach obj lst_ss_bicat 

	(foreach Linedo lst_ss_cat

		(ST:Ent-BrkLPSLine obj Linedo)

		(setq ss_new (ssadd (entlast) ss_new)) 

	)

	(setq lst_tmp (acet-ss-to-list (ssadd obj ss_new)))

(entdel (nth (vl-position (apply 'min (setq lst (mapcar 'ST:Ent-Length lst_tmp))) lst) lst_tmp)) ;Bo dong nay neu khong muon xoa duong ngan nhat

(setq lst_tmp nil ss_new (ssadd))

)

(command "undo" "end")

)


Cảm ơn bạn nhé! Đã đúng theo ý của mình. Bữa giờ tìm mãi mà giờ mới thấy. Hi vọng sẽ được học hỏi nhiều hơn.


  • -1