Đến nội dung


Hình ảnh
- - - - -

Vẽ 1 đường Line(có 2 đoạn) sau đó cho phép người dùng nhập ký tự vào 2 text1, text2


  • Please log in to reply
21 replies to this topic

#21 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 22 March 2009 - 02:46 PM

Bác Tue_NV ơi tôi lại làm phiền bác 1 chút rồi
khi vẽ thì chỉ được 1 chiều còn chiều kia thì chưa được
bác xem hình đây
http://www.cadviet.c...files/Pline.jpg
tôi chỉnh mãi mà từ sáng đến giờ vẫn chưa được lại làm phiền bác vậy
bác viết code sao cho + vẽ theo hướng nào thì nó vẫn được
+ và thêm đk nữa là đối tượng được chọn=line2 (line2 song song với đối tượng chọn)

Xin chỉnh lại là chọn đối tượng Line. Vẽ line1 line2 bằng Pline và line2 song song với line được chọn
Tue_NV đã chỉnh lại Code theo ý của bạn
Hy vọng bạn hài lòng
;;
(defun gocve( goc)
(if (and (> goc 90.0) (< goc 270.0)) (+ goc 180.0) goc)
)
;;
(defun c:LTE(/ c ent sp ep angl a di b ang d ct cd tb hei sty fo)
(vl-load-com)
(setq ent (entsel "\n Chon duong Line:")
c (cadr ent)
ent (car ent)
sp (vlax-curve-getStartPoint ent)
ep (vlax-curve-getEndPoint ent)
angl (angle ep sp)

a (getpoint c "\n Pick diem cuoi cua Line 1 :")
di (getpoint a "\n Pick diem cuoi cua Line 2 :")

b (polar a angl (distance a di))
ang (/ (* angl 180) pi))

(if (or (and (< (car b) (car a)) (< (car a) (car di))) (and (< (car di) (car a)) (< (car a) (car b))))
(Progn
(setq angl (angle sp ep)
b (polar a angl (distance a di))
ang (/ (* angl 180) pi))
))

(setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))

(Command "PLine" c a b "")
(if (= (tblobjname "layer" "PLine trich dan") nil)
(Command "layer" "n" "PLine trich dan" "")
)
(Command "change" "L" "" "P" "LA" "PLine trich dan" "")


(setq ct (getstring "\n Nhap vao chu tren :")
cd (getstring "\n Nhap vao chu duoi :"))

(setq tb (tblsearch "style" "Arial"))
(if (= tb nil)
(progn
(Command "style" "arial" "Arial.ttf" "0" "1" "0" "n" "n")
(setq hei (cdr (assoc 42 tb))
sty (cdr (assoc 2 tb))
fo (cdr (assoc 3 tb)))
)
)
(if (/= tb nil)
(progn
(setq hei (cdr (assoc 42 tb))
sty (cdr (assoc 2 tb))
fo (cdr (assoc 3 tb)))
)
)
(Command "style" fo "0" "" "" "n" "n")
(Command "text" "j" "BC" d hei (gocve ang) ct)

(if (= (tblobjname "layer" "Text do rong tren") nil)
(Command "layer" "n" "Text do rong tren" "")
)
(Command "change" "L" "" "P" "LA" "Text do rong tren" "")

(Command "text" "j" "TC" d hei (gocve ang) cd)
(if (= (tblobjname "layer" "Text do rong duoi") nil)
(Command "layer" "n" "Text do rong duoi" "")
)
(Command "change" "L" "" "P" "LA" "Text do rong duoi" "")


(Princ)
)
Bạn hãy chạy thử xem và cho biết ý kiến nhé. Nếu bạn còn gì vướng mắc nữa hãy cứ post lên đây. Tue_NV sẽ giúp.
Chúc bạn thành công.
  • 0

#22 truongbv

truongbv

    biết zoom

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

Đã gửi 23 March 2009 - 09:21 AM

Cám ơn bác Tue_NV.
tôi đã chạy và OK rồi có gì phát sinh thì lại làm phiền các bác vậy.
  • 0