Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] lsp ghi kích thước


  • Please log in to reply
13 replies to this topic

#1 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 06:05 PM

Em đã nghiên cứu lại, chương trình của em là do người viết đã gộp các lsp lại thành 1 file .fas , và tiện ích ghi kích thước chỉ là 1 trong số đó, em đã tìm hiểu và pit hình như là chưa có cách chuyển ngược .fas thành lsp đc, nên em mới mún có 1 lsp ghi kích thước đó riêng. Em đã phân tích đc việc chọn tỉ lệ bản đồ là để định kích thước khi in, do chương trình em làm là vẽ bên model mà trình bày và in bên layout sử dụng viewport cho đúng tỉ lệ in với tỉ lệ 1:1, do em cũng ko pit nói làm sao cho nó đầy đủ nên em đã quay lại video cho nó trực quan hơn chút, em đã tìm ra quy luật cỡ text, là khi mình chọn tỉ lệ bđ bên model và in bên layout 1:1 để khi in ra cỡ chữ lun là 1.7 milimet, còn mũi tên là polyline, và độ lớn mũi tên cũng như khoảng cách giống ra cũng phụ thuộc vào tỉ lệ chọn, để khi in ra kích thước độ rộng mũi tên là 0.48, chiều dài từ đầu mũi tên đến độ rộng mũi tên và chiều dài đường line còn lại đều là 1.6 li, khoảng cách giống ra là 1 số lẻ khoảng 0.88, khoảng cách text với đường cần ghi kích thước là 0.48, chương trình này tự tạo ra 2 layer là b-canh1, và b-mui tên, de khi minh ghi kich thuoc dù đang ở layer hiện hành nào sử dụng nó cũng đưa về đúng 2 layer đó, font chữ nó cũng tự tạo ra khi chạy lần đầu và mặc định gắn vào tiện ích ghi kích thước này lun khi sử dụng. Em ko pit còn thiếu dữ liệu nào không, em đã mò hết cỡ rùi hihi, còn về cách bắt điểm thì như trang #2 trong topic em đã trình bày. em quên nó tự tạo ra 2 font lận, tùy thuộc vào hướng mình pick, mà font thẳng hay nghiêng, font thẳng là vni-helve-condese fontstyle: regular , font nghiêng là vni-helve fontstyle: italic
http://www.cadviet.c...04473_mau_5.dwg file cad minh họa
file video

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

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








#2 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 03 November 2012 - 07:41 PM

Bạn đã học lisp mà đưa thiếu nhiều yếu tố quá. Trong file thì các điểm bạn pick là điểm nào? Các đối tượng có yêu cầu layer, ... gì không?
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 08:08 PM

em mới học mà anh ^^, anh Duy thông cảm hen, em đang dậm chân tại chương III, em Ket cho câu hỏi tới giờ nghĩ chưa ra nữa hihi.
Điểm pick là bất kỳ điểm nào lun anh do mình tùy chọn trong osnap, chương trình nó vậy đó hay cái là pick lơ lửng ko cần bắt điểm mà có khoảng cách cũng ra lun ,
chương trình đó thì nó tự tạo layer giống file em đưa vậy đó, xong nó mặc định dù minh đang ở layer hiện hành nào, mà sử dụng nó thì ghi kích thước thì text và mủi tên tự đưa về đúng layer của nó
Chết rùi bị anh Ketxu la rùi , sau này em sẽ phân tích suy luận kỹ hơn trước khi yêu cầu
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

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








#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 03 November 2012 - 08:54 PM

nhoclangbat : yêu cầu nhiều nhưng chỉ lấy số lượng thôi hả nlb? các yêu cầu thì thiếu thốn dữ liệu, tí lại chỉnh sửa thêm thắt yêu cầu một lần. tại sao k suy luận, phân tích vấn đề trước khj yêu cầu?
  • 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


#5 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 10:17 PM

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

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








#6 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 04 November 2012 - 08:03 AM

Mình vẫn chưa hiểu vì sao bạn không dùng lệnh DAL bình thường mà phải dùng lisp.
Chỉ cần bạn hiệu chỉnh Dim Style 1 chút là sẽ đạt yêu cầu ngay thôi mà.

Mà mình nghĩ mọi người góp ý để bạn rút kinh nghiệm trong những lần post bài sau thôi chứ đâu muốn bạn đóng topic như vậy.
Chỉ đóng topic khi bạn thực sự tìm ra được câu trả lời cho vấn đề chính.
  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#7 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 04 November 2012 - 10:54 AM

em close để phân tích lại cho kỹ rùi em post lại cho nó đầy đủ đó mà hihi
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

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








#8 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 10 November 2012 - 08:09 AM

Vì sao bạn không dùng lệnh DAL.
  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#9 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 November 2012 - 10:11 AM

em ko pit cách nào để chỉnh line 2 mũo tên ngắn lại như vd của em
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

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








#10 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 10 November 2012 - 11:18 AM

Chỉnh Dim style như sau:
Preffix là nhiều dấu space tức là " ".
Suffix là nhiều dấu space rồi 1 dấu - tức là " -".

Nhược điểm: Có dấu - ở mũi tên phía sau.
Ưu điểm: Nó chính là Dim, Khi bạn stretch, kéo thì nó tự nhảy giá trị chiều dài.

Nếu bạn vẫn muốn Lisp thì OK, chủ nhật nhiều người nghiện lisp rảnh lém
  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#11 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 November 2012 - 03:54 PM

cách này em mới pit ah nha thank anh HHVD nhưng cái vụ dấu "_" nó làm bản vẽ ko đc đẹp lắm anh ah, chắc phải đợi anh nào rãnh giúp hộ em cái hihi
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

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








#12 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 106 (tàm tạm)

Đã gửi 11 November 2012 - 02:32 PM

 
(defun dxf(code e) (cdr (assoc code (entget e))))
(Defun Bdraw();;;Begin draw, get some current system variables, disable them (bat dau ve, lay bien he thong hien hanh)
(setq OldOs (getvar "osmode"))
(setq OldLay (getvar "clayer"))
(setq OldOrth (getvar "orthomode"))
(setvar "osmode" 555)
(setvar "cmdecho" 0)
(setvar "orthomode" 0)
(command "undo" "BE")
(setq temperr *error*)
(setq *error* Edraw)
)
(Defun Edraw(errmsg);;;End draw, reset all system variables (ket thuc ve, reset tac ca cac bien he thong)
(setvar "osmode" OldOs)
(setvar "clayer" OldLay)
(setvar "cmdecho" 1)
(setvar "orthomode" oldorth)
(if temperr (setq *error* temperr))
(princ "\nWritten by K.S Duong Ba Diep, Mobile:0935.399.773")
)
(defun LM:ProjectPointToLine ( pt p1 p2 / nm )
(setq nm (mapcar '- p2 p1)
p1 (trans p1 0 nm)
pt (trans pt 0 nm)
)
(trans (list (car p1) (cadr p1) (caddr pt)) nm 0)
)
(defun CV:Geom-divpoint (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)))
(defun MakeText (point string Height Ang justify Style Layer Color xdata / Lst); Ang: Radial
(setq Lst (list '(0 . "TEXT")
(cons 8 (if Layer Layer (getvar "Clayer")))
(cons 62 (if Color Color 256))
(cons 10 point)
(cons 40 Height)
(cons 1 string)
(if Ang (cons 50 Ang))
(cons 7 (if Style Style (getvar "Textstyle")))
(cons -3 (if xdata (list xdata) nil)))
justify (strcase justify))
(cond ((= 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)))))
((= justify "TL") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 3)))))
((= justify "TC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 3)))))
((= justify "TR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 3)))))
((= justify "ML") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 2)))))
((= justify "MC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 2)))))
((= justify "MR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 2)))))
((= justify "BL") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 1)))))
((= justify "BC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 1)))))
((= justify "BR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 1))))))
(entmakex Lst));end
(defun DBD-WriteRegedit (ValueDefault Promt KeyReg StringReg func keyw / key1 key)
(setq key1 (vl-registry-read KeyReg StringReg))
(if (not key1) (vl-registry-write KeyReg StringReg (setq key1 ValueDefault)))
(if Promt
(progn
(if keyw (apply 'initget keyw))
(setq key (func (strcat Promt " <" key1 ">: ")))
(cond
((= (type key) 'INT) (vl-registry-write KeyReg StringReg (itoa key)))
((= (type key) 'REAL) (vl-registry-write KeyReg StringReg (rtos key)))
((= (type key) 'STR) (vl-registry-write KeyReg StringReg key))
(t (alert "Loi nang"))
)
)
)
(if (not key) (setq key (read key1)))
key
)
(defun RoundPi (a / amin)
(setq amin (- a (* pi (fix (/ a pi)))))
(if (and (> amin (* pi 0.5)) (< amin (* pi 1.5))) (setq amin (+ pi amin)))
amin
)
(defun c:aaa (/ Ht Lmt lamtron conti pt1 pt2 pt3 pt4 pt5 pt6 pt-mid-12 pt-mid-56 pt5a pt5b pt6a pt6b kq ang ang56)
(Bdraw)
(command "undo" "BE")
(if (not (tblsearch "Layer" "DBD_TXT")) (Command "Layer" "N" "DBD_TXT" "C" "Yellow" "DBD_TXT" ""))
(if (not (tblsearch "Layer" "DBD_Line")) (Command "Layer" "N" "DBD_Line" "C" "Magenta" "DBD_Line" ""))
(setq Lmt (DBD-WriteRegedit "0.8" nil "HKEY_CURRENT_USER\\DIEP" "Lmuiten" getreal nil))
(setq Ht (DBD-WriteRegedit "2.0" nil "HKEY_CURRENT_USER\\DIEP" "Hchu" getreal nil))
(setq lamtron (DBD-WriteRegedit "2" nil "HKEY_CURRENT_USER\\DIEP" "Lamtron" getint nil))
(setq conti T)
(while conti
(initget 128)
(setq pt1 (getpoint (strcat "\n Pick diem thu nhat/L mui ten<" (rtos Lmt 2 2) ">/H chu<" (rtos Ht 2 2) ">/Tron lam<" (itoa lamtron) ">")))
(cond
((listp pt1) (setq conti nil))
((and (= (setq typ (type pt1)) 'STR) (= (strcase pt1) "L")) (setq Lmt (DBD-WriteRegedit "0.8" "\nNhap chieu dai mui ten" "HKEY_CURRENT_USER\\DIEP" "Lmuiten" getreal nil)))
((and (= (setq typ (type pt1)) 'STR) (= (strcase pt1) "H")) (setq Ht (DBD-WriteRegedit "2.0" "\nNhap chieu cao chu" "HKEY_CURRENT_USER\\DIEP" "Hchu" getreal nil)))
((and (= (setq typ (type pt1)) 'STR) (= (strcase pt1) "T")) (setq lamtron (DBD-WriteRegedit "2" "\nLam tron may so" "HKEY_CURRENT_USER\\DIEP" "Lamtron" getint nil)))
)
)
(setq pt2 (getpoint pt1 "\n Pick diem thu hai"))
(setq pt-mid-12 (CV:Geom-divpoint pt1 pt2 0.5))
(setq kq (distance pt1 pt2))
(command "DIMALIGNED" pt1 pt2 pause)
(setq pt3 (getvar "lastpoint"))
(entdel (entlast))
(setq
pt4 (LM:ProjectPointToLine pt3 pt1 pt2)
ang (angle pt4 pt3)
angtxt (RoundPi (+ (/ pi 2) ang))
; angtxt (if (< (+ (/ pi 2) ang) pi) (+ (/ pi 2) ang) (RoundPi ))
dis (distance pt3 pt4)
pt5 (polar pt1 ang dis)
pt6 (polar pt2 ang dis)
pt-mid-56 (CV:Geom-divpoint pt5 pt6 0.5)
ang56 (angle pt5 pt6)
pt5a (polar pt5 ang56 Lmt)
pt5b (polar pt5 ang56 (* 5 Lmt))
pt6a (polar pt6 ang56 (- Lmt))
pt6b (polar pt6 ang56 (* -5 Lmt))
)
(setvar "osmode" 0)
(setvar "clayer" "DBD_Line")
(command "pline" pt5 "w" 0.0 (/ Lmt 3) pt5a "w" 0.0 0.0 pt5b "")
(command "pline" pt6 "w" 0.0 (/ Lmt 3) pt6a "w" 0.0 0.0 pt6b "")
(MakeText pt-mid-56 (rtos kq 2 lamtron) Ht angtxt "MC" nil "DBD_TXT" nil nil)
(Edraw)
)

  • 2

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#13 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 11 November 2012 - 07:13 PM

anh HHVD ghe that, em cảm ơn anh rất nhiều anh đã bỏ công viết chi tiết như vậy giúp em, lsp chạy êm lắm anh :D
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

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








#14 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 12 November 2012 - 09:21 AM

anh HHVD anh có thể sữa giúp em sữa 1 tí trong lsp thui hihi, nếu khoảng cách mà ngắn thì cho nó khỏi hiện mủi tên mà chỉ cần text thui anh, còn lại đều êm ^^
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

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