Cad_Cae 板


LINE

※ 引述《dogcatbig (123)》之銘言: : 如題 : 因為小弟最近在看autocad程式設計 : autolisp+dcl+visual lisp篇這本 : (作者:吳永進、林美櫻) : 範例50 : 做到一個例題是有統計圖面上的圖案 : (例如:圓形、正方形、直線) : 書上的程式描述能夠自已點出數量 : 並繪出表格 : 可是小弟試的話並不行~ : 是不是小弟有什麼地方疏忽了 : 可以請教一下版上的高手嗎? : 給小弟指點一下^^ : 謝謝 回文順便問一個條件式: 總算是做到這個範例了,可是很奇怪,題目要求是統計"圖塊"而不是"圖案", 莫非是版本的差異? (我的書上個月買進,版次:2008年6月初版) 我在執行這個範例時並沒什麼大問題(不知道原po能不能再詳細描述一下問題 是什麼?)不過有一個取出圖塊名稱字首的條件式,看不懂它的用意是什麼: (setq blk_key (substr (cdr blkn) 1 1)) (if (/= blk_key "*")… 知道用意的熱心板友請回板或站內信皆可,感謝! 另外,若如原po要求統計圖案,好像只要把10test3 的例題和範例50的內容拼 湊一下就行了。但也遇到一個難解的情況:"正方形"的群碼中似乎沒有獨立於 矩形、pline 的四邊封閉圍線或三段線的特徵碼,計算數量時會把上述所有圖 元全算進去…當然,也包括畫在圖面上的表格,所以會愈算愈多。 以下試作原po形容的問題,以及範例50的內容,(斷行請記得接上): ===================================================================== (defun c:lsp50a() (setvar "cmdecho" 0) (setq os (getvar "osmode")) (setvar "osmode" 0) (command "style" "cc" "txt,chineset" "" "" "" "" "" "") ;畫出表頭 (setq pt1 (getpoint "\n左上角: ")) (setq ww (getdist pt1 "\n寬度 <60>: ")) (if (null ww) (setq ww 60.0)) (setq hh (getdist pt1 "\n每格高度 <8>: ")) (if (null hh) (setq hh 8.0)) (setq pt2 (polar pt1 0 ww)) (setq pt3 (polar pt2 (* pi 1.5) hh)) (setq pt4 (polar pt1 (* pi 1.5) hh)) (command "pline" pt1 pt2 pt3 pt4 "c") (setq pt5 (polar pt1 0 (/ ww 2))) (setq pt6 (polar pt5 (* pi 1.5) hh)) (command "pline" pt5 pt6 "") (command "text" "m" (inters pt1 pt6 pt4 pt5) (/ hh 2) 0 "圖元類別") (command "text" "m" (inters pt5 pt3 pt2 pt6) (/ hh 2) 0 "數量") (setq type (getstring "\nChosse entity type:circle、line、arc、rectang: ")) (while (/= type "") (if (= type "rectang") (progn (setq type "LWPOLYLINE") (setq ss (ssget "x" (list (cons 0 type) (cons 90 4)))) (setq type "rectang") ) (setq ss (ssget "x" (list (cons 0 type)))) );endif (if (null ss) (setq count 0) (setq count (sslength ss)) );endif ;畫出表格 (setq pt1 pt4 pt5 pt6 pt2 pt3) (setq pt4 (polar pt1 (* pi 1.5) hh)) (setq pt6 (polar pt5 (* pi 1.5) hh)) (setq pt3 (polar pt2 (* pi 1.5) hh)) (command "pline" pt2 pt3 pt4 pt1 "") (command "pline" pt5 pt6 "") (command "text" "m" (inters pt1 pt6 pt4 pt5) (/ hh 2) 0 type) (command "text" "m" (inters pt5 pt3 pt2 pt6) (/ hh 2) 0 (itoa count)) (setq type (getstring "\nEnter entity type (circle、line、arc、 rectang): ")) );end while (setvar "osmode" os) (prin1) ) (prompt "***************<<c:lsp50a>>***************") (prin1) ============================================================================== (defun c:lsp_50() (setvar "cmdecho" 0) (setq os (getvar "osmode")) (setvar "osmode" 0) (setq pt1 (getpoint "\n左上角: ")) (setq ww (getdist pt1 "\n寬度 <50>: ")) (if (null ww) (setq ww 40.0)) (setq hh (getdist pt1 "\n每格高度 <8>: ")) (if (null hh) (setq hh 8.0)) (setq pt2 (polar pt1 0 ww)) (setq pt3 (polar pt2 (* pi 1.5) hh)) (setq pt4 (polar pt1 (* pi 1.5) hh)) (command "pline" pt1 pt2 pt3 pt4 "c") (setq pt5 (polar pt1 0 (/ ww 2))) (setq pt6 (polar pt5 (* pi 1.5) hh)) (command "line" pt5 pt6 "") (command "text" "m" (inters pt1 pt6 pt4 pt5) (/ hh 2) 0 "圖塊名稱") (command "text" "m" (inters pt5 pt3 pt2 pt6) (/ hh 2) 0 "數量") (setq blk (tblnext "block" t)) (while blk (setq blkn (assoc 2 blk)) ;這裏看不懂用意是什麼 (setq blk_key (substr (cdr blkn) 1 1)) (if (/= blk_key "*") (progn (setq ss (ssget "X" (list blkn))) (if (null ss) (setq ssn 0) (setq ssn (sslength ss)) ) (setq blknn (cdr blkn)) (setq pt1 pt4 pt5 pt6 pt2 pt3) (setq pt4 (polar pt1 (* pi 1.5) hh)) (setq pt6 (polar pt5 (* pi 1.5) hh)) (setq pt3 (polar pt2 (* pi 1.5) hh)) (command "pline" pt2 pt3 pt4 pt1 "") (command "line" pt5 pt6 "") (command "text" "m" (inters pt1 pt6 pt4 pt5) (/ hh 2) 0 blknn) (command "text" "m" (inters pt5 pt3 pt2 pt6) (/ hh 2) 0 (itoa ssn)) ) ) (setq blk (tblnext "block")) ) (setvar "osmode" os) (prin1) ) --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.204.242
1F:→ phragmite:試了加上四邊等長兩角垂直的條件,應該可符合原po的要求 10/21 00:18
2F:→ phragmite: 線 10/21 00:21







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP