Đến nội dung


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

Viết lisp theo yêu cầu [phần 2]


  • Chủ đề bị khóa Chủ đề bị khóa
3783 replies to this topic

#721 Nộ Thiên

Nộ Thiên

    biết lệnh ddedit

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

Đã gửi 09 January 2010 - 08:13 PM

Nhờ mấy Bác giúp cho cái lisp này với:
Hình đã gửi

Lên mạng tìm đc mấy cái lisp liên quan đến "Break" : đem về từ từ ngcứu tiếp.
http://www.cadviet.c...mitools_bri.lsp
http://www.cadviet.c...akobjects18.lsp

Thx to SSG!
  • 1

#722 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 10 January 2010 - 12:28 AM

Nhờ mấy Bác giúp cho cái lisp này với:
Hình đã gửi
Còn đây là file CAD
http://www.cadviet.c...iles/2/lisp.dwg

Bạn đưa ra bài toán này có vẽ hay gặp trong ngành bản đồ. Nều xử lý trên dữ liệu lớn đây là bài toán rất khó. Đòi hỏi phải lập trình nghiêm túc. Tuy nhiên, nếu dữ liệu nhò, vấn đề tìm đối tượng trùng nhau hay cắt nhỏ chúng tại điểm giao nhau trên diễn đàn đã có nhiều rồi.
Nói chung bài toán của bạn có thể kết hợp một số lệnh của cad như sau :
1- Rã các pline thành line (cad có)
2- tìm và xóa các line trùng (cad có)
3- tìm đường bao ngoài (có thể sd lệnh region)
4- cắt nhỏ các line bên trong tại các điểm giao (lisp trên diễn đàn đã có)
  • 0

#723 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 11 January 2010 - 04:58 AM

Bác ssg và các bác trên diễn đàn có thể code giúp Tue_NV bài toán trên được không?
Bài toán :
Cho một tập điểm S. Hãy xác định đa giác lồi P, chứa toàn bộ các điểm thuộc S, mỗi đỉnh của P là 1 điểm thuộc S.

Cảm ơn bác ssg và mọi người nhiều lắm
Tue_NV

có phải yêu cầu của Tue_NV là cái này không? http://www.cadviet.c...files/2/dgl.lsp
lệnh là DGL tức là đa giác lồi
Link vá lỗi: http://www.cadviet.c...les/2/dgl_5.lsp
  • 1

#724 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 11 January 2010 - 06:15 AM

có phải yêu cầu của Tue_NV là cái này không? http://www.cadviet.c...files/2/dgl.lsp
lệnh là DGL tức là đa giác lồi

Cảm ơn bạn tomboy nhiều lắm. Đúng ý mình rồi.
Tiện thể, bạn có thể bớt chút thời gian viết thêm cho trường hợp là đa giác lõm được không?

Cảm ơn tomboy nhiều
  • 0

#725 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 11 January 2010 - 08:39 PM

Lisp này mình down được của anh Thaistreetz!Nhờ các bạn chỉnh sửa dùm mình 1 tí nhen!
Mình muốn khi sử dụng lisp!Lisp sẽ cho phép mình tự nhập số thứ tự lô đất bắt đầu! hiện nay Lisp đang mặc định số đầu tiên là 1!
http://www.cadviet.com/upfiles/2/r.lsp
Thanks và chúc sức khỏe mọi người!
  • 0

#726 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 11 January 2010 - 09:03 PM

Đúng rồi. chỉ cân nhập số muốn chia dưới dạng 1/X là ok, vậy mà em không nghĩ ra.
cảm ơn anh đã thông tin cho em về hàm distof. có nó thì vấn đề lọc text theo số và chuỗi ký tự đã đc giải quyết một cách đơn giản.
code em đã sửa lại đây ạ. Em nghĩ thế này là nó đã hoàn thiện. :cheers:

(defun c:tinh()
(setq i 0 nhan 1 chia 1 cong 0)
(setq nhan1 (getreal (strcat "\n nhap so muon nhan hoac chia <" (rtos nhan 2 3) ">: "))
cong1 (getreal (strcat "\n nhap so muon cong hoac tru <" (rtos cong 2 3) ">:")))
(if nhan1 (setq nhan nhan1))
(if cong1 (setq cong cong1))
(prompt "\nchon cac so can sua ...")
(setq txt (ssget '((0 . "TEXT"))))
(command "undo" "begin")
(repeat (sslength txt)
(setq txt_name (ssname txt i))
(setq txt_ent (entget txt_name))
(setq cont1 (cdr(assoc 1 txt_ent)))
(setq cont (atof cont1))
(if (distof cont1 2)
(progn
(setq s (+ (* cont nhan) cong))
(setq txt_ent (subst (cons 1 (rtos s)) (assoc 1 txt_ent) txt_ent))
(entmod txt_ent));if
);if
(setq i (+ i 1))
);repeat
(command "undo" "end")
);defun
@ bác Thanh Bình: hic, bác ơi, bác đừng gọi em là "bác Thaistreetz" nhé, tổn thọ em mất. Em mới ra trường chưa lâu và so với các bác ở đây chắc cũng chỉ được coi là "tụi trẻ" thôi bác ạ. :cheers:

cái này mình muốn bỏ hết dãy số 0000 ở phía sau được ko anh?có nghĩa là cho phép mình nhập số thập phân sau dấu phẩy đó!thanks mọi người!
Thân!
  • 0

#727 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 11 January 2010 - 09:06 PM

Lisp này mình down được của anh Thaistreetz!Nhờ các bạn chỉnh sửa dùm mình 1 tí nhen!
Mình muốn khi sử dụng lisp!Lisp sẽ cho phép mình tự nhập số thứ tự lô đất bắt đầu! hiện nay Lisp đang mặc định số đầu tiên là 1!
http://www.cadviet.com/upfiles/2/r.lsp
Thanks và chúc sức khỏe mọi người!

Bạn sửa dòng này :
(setq k 0
tdt 0)

thành dòng :

(setq k (1- (getreal "\n so thu tu bat dau :") )
tdt 0)

cái này mình muốn bỏ hết dãy số 0000 ở phía sau được ko anh?có nghĩa là cho phép mình nhập số thập phân sau dấu phẩy đó!thanks mọi người!
Thân!

Bạn thay dòng này :
(setq txt_ent  (subst (cons 1 (rtos s)) (assoc 1 txt_ent) txt_ent))

thành dòng :
(setq txt_ent (subst (cons 1 (rtos s 2 0)) (assoc 1 txt_ent) txt_ent))
Trong đó số 2 : quy định số thập phân decimal
số 0 : chính là số lẻ thập phân đó
  • 1

#728 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 12 January 2010 - 09:46 AM

Cám ơn các lời nhận xét của bác trinhvqh. (do chủ quan của nguời viết nên 1 số chi tiết chưa hoàn chỉnh)

Gửi bác Lisp đã cập nhật theo các yêu cầu ở trên.

về ý kiến : khoảng cách Text trong Table so với đường ngang bên dưới (hơi sát quá)
- tương tự Text và dimension, CAD cung cấp TABLE STYLE để quản lý các đối tuợng Table. Do đó khoảng cách Text trong Table (do LISP tạo ra) chỉ là tạm thời, tùy theo chủ quan và quy định mỗi nguời (cty) sẽ tự tạo TABLE STYLE theo ý mình.

Quản lý đối tuợng CAD theo các xì-tin (Style) cũng đuợc xem là một "PRỒ" chứ nhỉ ?! :cheers:

(defun c:Pid(/ cen doc i h height lst msp ov pt row str stt tblobj vl width x y) ;Point ID out
;; By : Gia Bach, Copyrightゥ December 2009 ;;
;; Contact : gia_bach @ www.CadViet.com ;;
(if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0) (progn
(princ "\nChon cac POINT de xuat ra Bang toa do :")
(if (ssget '((0 . "POINT")))
(progn
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
msp (vla-get-modelspace doc))
(vlax-for e (vla-get-ActiveSelectionSet doc)
(setq cen (vlax-safearray->list (variant-value (vla-get-Coordinates e)))
lst (cons (list e cen )lst))
);vlax-for
(setq lst (vl-sort lst '(lambda (x y) (or (< (car (cadr x)) (car (cadr y)));Check X
(and (> (cadr (cadr x)) (cadr (cadr y)));Check Y
(= (car (cadr x)) (car (cadr y)));Equal X
) ) ) )
str (cadr (last lst))
lst (append (mapcar 'car lst) ) )
(setq vl '("dimzin" "cmdecho") ; Sys Var list
ov (mapcar 'getvar vl)) ; Get Old values
(mapcar 'setvar vl '(0 0))
(or *h* (setq *h* 175))
(initget 6)
(setq h (getreal (strcat "\nChieu cao chu <" (rtos *h*) "> :")))
(if h (setq *h* h) (setq h *h*) )
(if (> (car str)(cadr str) )
(setq str (car str))
(setq str (cadr str)))
(setq width (* 2(TxtWidth (rtos str) h msp))
width1 (* 2 (TxtWidth "STT" h msp))
height (* 2 h))
(if (> h 3)
(setq width (* (fix (/ width 10))10)
width1 (* (fix (/ width1 10))10)
height (* (fix (/ height 5))5)))
(setq i 1
row 2
pt (getpoint "\nDiem dat Bang :")
TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst) 2) 3 height width))
(vla-put-vertcellmargin TblObj (/ h 4))
(vla-SetColumnWidth TblObj 0 width1)
(mapcar '(lambda (x)(vla-setTextHeight TblObj x h))
(list acTitleRow acHeaderRow acDataRow) )
(mapcar '(lambda (x)(vla-setAlignment TblObj x 8))
(list acTitleRow acHeaderRow acDataRow))
(vla-setText TblObj 0 0 "Bang toa do")
(vla-setText TblObj 1 0 "STT")
(vla-setText TblObj 1 1 "X")
(vla-setText TblObj 1 2 "Y")
(foreach e lst
(setq stt (itoa i)
pt (vlax-safearray->list (variant-value (vla-get-Coordinates e)))
obj_id (rtos (vla-get-objectid e)))
(vla-AddText msp stt (vlax-3d-point (polar pt (/ pi 4) (/ h 4))) h)
(vla-setText TblObj row 0 stt)
(vla-setText TblObj row 1 (strcat "%<\\AcObjProp Object(%<\\_ObjId " obj_id ">%).Coordinates \\f \"%lu6%pt1\">%"))
(vla-setText TblObj row 2 (strcat "%<\\AcObjProp Object(%<\\_ObjId " obj_id ">%).Coordinates \\f \"%lu6%pt2\">%"))
(setq row (1+ row) i (1+ i))
)
(vlax-release-object TblObj)
(mapcar 'setvar vl ov) ;reset Sys Vars
(princ)
)
)
)
(alert "\nPhien ban Cad cua ban khong ho tro tao Bang (TABLE)")
)
)

(defun TxtWidth (val h msp / txt minp maxp)
(setq txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) h))
(vla-getBoundingBox txt 'minp 'maxp )
(vla-Erase txt)
(-(car(vlax-safearray->list maxp))(car(vlax-safearray->list minp)))
)


Pid.Lsp của gia_bach như vậy là OK rồi
Nhưng tôi vẫn muốn hoàn hảo hơn một chút nữa
Điều này đồng nghĩa với việc bổ sung thêm Update Pid

Thực tế trong quá trình vẽ Việc Di chuyển Point và Delete point xảy ra rất thường xuyên
cho nên cần phải Update Table
Update phai dam bao cac truong hop nhu: Add Point; Reselect; Unselect,..

Nhu vay, Kể ra cũng hơi khó cho gia_bach vì Point; Text; Table là những đối tượng rời rạc không liên kết
Tôi xin đề xuất thế này gia_bach xem được không nhé:

Command: Pid (New/Update) N:
Chọn: U (Update)
Chọn Text và Table cần Xoá:
Chọn lại Point:
Chiều cao chữ (175):
Chọn điểm đặt bảng:
  • 0

#729 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 13 January 2010 - 01:03 PM

.............................
Thực tế trong quá trình vẽ Việc Di chuyển Point và Delete point xảy ra rất thường xuyên
cho nên cần phải Update Table
Update phai dam bao cac truong hop nhu: Add Point; Reselect; Unselect,..

Nhu vay, Kể ra cũng hơi khó cho gia_bach vì Point; Text; Table là những đối tượng rời rạc không liên kết
............................

Có vẻ như trinhvqh muốn biết giới hạn của LISPkhả năng viết Lisp của anh em CadViet tới đâu hơn là .... ?

Thực sự thì vấn đề đặt ra có độ khó rất cao. Tuy nhiên, về cơ bản bài toán này có thể giải quyết bằng LISP cộng với điều kiện biên :
- tạo liên kết giữa đối tượng Point và Text số thứ tự : khi vị trí Point thay đổi dẫn đến số thứ tự cũng cần cập nhật theo (đánh số lại số thứ tự )
Có thể tạo liên kết giữa đối tượng Point và Text số thứ tự bằng cách đưa Text số thứ tự vào 1 Layer có tên riêng biệt, nhưng việc tạo mới 1 Layer có vẻ như đụng đến CAD Standard của user (hay CTy)

Đó chỉ là 1 giải pháp đề xuất, thực tế tùy cơ ứng biến. Tuy nhiên vào thời điểm này, công việc quá bận rộn nên không thể giúp bác đuợc.
  • 0

#730 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 13 January 2010 - 01:24 PM

Có vẻ như trinhvqh muốn biết giới hạn của LISPkhả năng viết Lisp của anh em CadViet tới đâu hơn là .... ?

Thực sự thì vấn đề đặt ra có độ khó rất cao. Tuy nhiên, về cơ bản bài toán này có thể giải quyết bằng LISP cộng với điều kiện biên :
- tạo liên kết giữa đối tượng Point và Text số thứ tự : khi vị trí Point thay đổi dẫn đến số thứ tự cũng cần cập nhật theo (đánh số lại số thứ tự )
Có thể tạo liên kết giữa đối tượng Point và Text số thứ tự bằng cách đưa Text số thứ tự vào 1 Layer có tên riêng biệt, nhưng việc tạo mới 1 Layer có vẻ như đụng đến CAD Standard của user (hay CTy)

Đó chỉ là 1 giải pháp đề xuất, thực tế tùy cơ ứng biến. Tuy nhiên vào thời điểm này, công việc quá bận rộn nên không thể giúp bác đuợc.


Suy luận của gia_bach thật oan cho tôi
Tôi nghĩ mình chỉ đóng vai trò thay mặt anh em để đặt vấn đề cho các cao thủ Lisp mà thôi

Theo tôi biết thì Pid.lsp rất cần cho công việc của bản vẽ quy hoạch Giao thông định vị
Với những kinh nghiệm từ ACA tôi muốn góp ý cho hoàn thiện mà thôi
Hoàn toàn không có ý 'thứ sức" hay "làm khó" gì ở đây

Vừa rồi offline, tôi quyết định đến để gặp Tue_NV để xin thông tin về bác như
tôi đã có viết trong bài viết trước đây "Hậu tạ cái vụ bác viết Dim.lsp cho tôi"

Chúc vui vẻ và hẹn gặp một ngày gần nhất
  • 1

#731 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 13 January 2010 - 02:35 PM

Bác viết những bài viết như vầy thì thiệt tình người khác nghĩ cho đúng về bác thì khó lắm

Vụ này coi bộ các chuyên gia "Ô tô líp" lại bó tay rồi
Bạn lại đưa ra một bài toán khá "nghẹt"
Làm cho Topic này mất đi sự xôn xao vốn có
:cheers:


Đành phải tiếp tục nhờ ACA khai thông giùm bạn đây
Vụ này nếu dùng ACA thì dễ hơn ăn ớt

http://www.cadviet.c.../2/hogatrim.rar
Nào, hãy tiếp tục leo "Ô tô" và chạy "Líp líp" đi bà con!!!


Tôi nghĩ mình chỉ đóng vai trò thay mặt anh em để đặt vấn đề cho các cao thủ Lisp mà thôi


Bác viết đặt vấn đề cho các cao thủ Lisp .
Vậy Tue_NV xin hỏi bác Ai là cao thủ Lisp vậy bác?
Chắc trên diễn đàn này chẳng có ai nhận mình là cao thủ Lisp cả đâu bác ạ

Nếu không ai nhận mình là cao thủ Lisp , điều đó có nghĩa là Bác đặt vấn đề nhầm địa chỉ rồi
  • 1

#732 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 13 January 2010 - 02:50 PM

Bác viết những bài viết như vầy thì thiệt tình người khác nghĩ cho đúng về bác thì khó lắm
Bác viết đặt vấn đề cho các cao thủ Lisp .
Vậy Tue_NV xin hỏi bác Ai là cao thủ Lisp vậy bác?
Chắc trên diễn đàn này chẳng có ai nhận mình là cao thủ Lisp cả đâu bác ạ

Bác đặt vấn đề nhầm địa chỉ rồi


Tue không thấy người ta vẫn suy tôn Thanh Lam, Hồng Nhung, Mỹ Linh, Hà Trần là những diva nhưng có ai trong số họ dám nhận mình là diva đâu
thì cái chuyện "cao thủ ô tô líp" cũng tuơng tự như vậy Tue à.

Bởi vậy, khi gặp Tue tôi liền nói Tue là người nghiêm túc nhất diễn đàn Cadviet còn gì (không thích giỡn)
Offline cadviet miền Trung có 03 mạng alô tham gia maf tá hoả (một ông giọng Bắc, một ông giọng Huế)
Quảng Nôm hay cai ăn cục nói hòn, các bác thông cảm!
  • 0

#733 aliosa

aliosa

    biết vẽ polygon

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

Đã gửi 14 January 2010 - 10:52 AM

Xin chào các bạn. Chúc các bạn năm mới sức khỏe và thành đạt !
Mình xin nhờ các bạn viets giúp mình lisp với nội dung sau:
NỘI DUNG:
- Trên bản vẽ có các đối tượng là line ở các lớp khác nhau và có chiều dài khác nhau
YÊU CẦU:
- Viết một lisp để tác các LINE ở lớp "XRGRID" và có chiều dài >2 sang lớp mới là "DUONG_GIONG"
Mong các bạn giúp mình ! Xin chân thành cảm ơn!
  • 0

#734 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 14 January 2010 - 04:10 PM

Xin chào các bạn. Chúc các bạn năm mới sức khỏe và thành đạt !
Mình xin nhờ các bạn viets giúp mình lisp với nội dung sau:
NỘI DUNG:
- Trên bản vẽ có các đối tượng là line ở các lớp khác nhau và có chiều dài khác nhau
YÊU CẦU:
- Viết một lisp để tác các LINE ở lớp "XRGRID" và có chiều dài >2 sang lớp mới là "DUONG_GIONG"
Mong các bạn giúp mình ! Xin chân thành cảm ơn!

Bạn chạy thử Lisp này :
(defun C:test(/ ent i ss)
(vl-load-com)
(if (setq i -1 ss (ssget '((0 . "LINE")(8 . "XRGRID"))))
(progn
(or (tblsearch "layer" "DUONG_GIONG")
(command "-layer" "n" "DUONG_GIONG" ""))
(while (setq ent (ssname ss (setq i (1+ i))))
(setq ent (vlax-Ename->Vla-Object ent))
(if (> (vla-get-Length ent) 2)
(vla-put-Layer ent "DUONG_GIONG")) ) )))

  • 0

#735 aliosa

aliosa

    biết vẽ polygon

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

Đã gửi 14 January 2010 - 05:18 PM

Bạn chạy thử Lisp này :

(defun C:test(/ ent i ss)
(vl-load-com)
(if (setq i -1 ss (ssget '((0 . "LINE")(8 . "XRGRID"))))
(progn
(or (tblsearch "layer" "DUONG_GIONG")
(command "-layer" "n" "DUONG_GIONG" ""))
(while (setq ent (ssname ss (setq i (1+ i))))
(setq ent (vlax-Ename->Vla-Object ent))
(if (> (vla-get-Length ent) 2)
(vla-put-Layer ent "DUONG_GIONG")) ) )))

Mình xin chân thành cảm ơn bạn. Chúc bạn cùng cộng đồng CADVIET mạnh khoẻ và thành công !
  • 0

#736 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 14 January 2010 - 09:02 PM

Lúc trước mình có down lisp Scale các đối tượng tại tâm của TUE_NV!Nay mình nhờ TUE_NV sửa lại một chút dùm nhé!
Mình có rất nhiều hình vẽ bằng Pline kín, trong đó có các text!Mình muốn khi Scale tất cả các hình đó thì tâm Scale là tâm của hình Pline kín đó, text nằm trong pline kín đó thì scale theo tại đúng điểm đặt text!
Tâm của các hình đó là Centroid của hình đó được xac định bằng lệnh Massprop (ko biết còn cách nào xác định tâm ko nữa?)
Nhờ TUE_NV và các bạn giúp dùm mình nhé!
Thanks mọi người!
http://www.cadviet.c...les/2/cad_1.dwg
http://www.cadviet.c...files/2/scn.lsp
  • 0

#737 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 15 January 2010 - 08:53 AM

Lúc trước mình có down lisp Scale các đối tượng tại tâm của TUE_NV!Nay mình nhờ TUE_NV sửa lại một chút dùm nhé!
Mình có rất nhiều hình vẽ bằng Pline kín, trong đó có các text!Mình muốn khi Scale tất cả các hình đó thì tâm Scale là tâm của hình Pline kín đó, text nằm trong pline kín đó thì scale theo tại đúng điểm đặt text!
Tâm của các hình đó là Centroid của hình đó được xac định bằng lệnh Massprop (ko biết còn cách nào xác định tâm ko nữa?)
Nhờ TUE_NV và các bạn giúp dùm mình nhé!
Thanks mọi người!
http://www.cadviet.c...les/2/cad_1.dwg
http://www.cadviet.c...files/2/scn.lsp

Nếu hiểu yêu cầu của bạn là : Scale Pline kín tại Centroid của Pline đó và Scale tất cả các text nằm trong Pline kín tại đúng điểm đặt text
Tui e rằng sau khi thực hiện lệnh này, sẽ có truờng hợp Text lọt ra ngoài đuờng Pline ?!
  • 0

#738 tomboy

tomboy

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 15 January 2010 - 09:44 AM

Cảm ơn bạn tomboy nhiều lắm. Đúng ý mình rồi.
Tiện thể, bạn có thể bớt chút thời gian viết thêm cho trường hợp là đa giác lõm được không?

Cảm ơn tomboy nhiều

mình sửa lại cho bạn thành đa giác lõm đây: http://www.cadviet.c...les/2/dgl_3.lsp
vẫn là lệnh DGL nhé
Link vá lỗi: http://www.cadviet.c...les/2/dgl_5.lsp
  • 1

#739 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 15 January 2010 - 09:59 AM

mình sửa lại cho bạn thành đa giác lõm đây: http://www.cadviet.c...les/2/dgl_1.lsp
vẫn là lệnh DGL nhé

Cảm ơn tomboy rất rất nhiều lắm. Nhưng Tue_NV vẫn thấy cái Lisp trên nó vẽ đa giác lồi chứ chưa vẽ ra được đa giác lõm Tomboy à.

Đây là file .dwg thể hiện đa giác lõm cần vẽ
http://www.cadviet.c...2/dagiaclom.dwg

Tiện thể Tomboy có thể nâng cấp lên trong trường hợp đối tượng là point nữa được không? Vì đôi lúc mọi người cần vẽ đối tượng là Point hơn là điểm chèn của Text. Tue_NV tham quá :cheers:
Cảm ơn tomboy nhiều.

@truongthanh : Trường hợp mà Text lọt ra ngoài Pline như trường hợp anh gia_bach nói là trường hợp mà hệ số tỉ lệ < 1 và điểm chèn (Insert) của Text nằm khá xa so với tâm Centroid
  • 0

#740 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 15 January 2010 - 11:04 AM

Cảm ơn tomboy rất rất nhiều lắm. Nhưng Tue_NV vẫn thấy cái Lisp trên nó vẽ đa giác lồi chứ chưa vẽ ra được đa giác lõm Tomboy à.

Đây là file .dwg thể hiện đa giác lõm cần vẽ
http://www.cadviet.c...2/dagiaclom.dwg
...............

Vẽ đa giác lõm qua các điểm nói chung sẽ có rất nhiều nghiệm ?!
Phải chăng yêu cầu của Tue_NV là : Tìm (vẽ) đa giác bao quanh tập điểm mà có diện tích nhỏ nhất ?
Tham khảo
  • 1