永发信息网

求救:请CAD的LISP高手帮忙

答案:2  悬赏:80  手机版
解决时间 2021-03-04 21:33
  • 提问者网友:玫瑰园
  • 2021-03-04 18:29
;平面图转换成45度透视图
;增加角度转换.块或者字体.
(defun c:gps_lrr ( / aa ang ang_pt1_2 ang_pt2 ang_pt2_2 ang_tmp ang50 dclid dclname do e e_lst e0 ent ent_lst ent_type filen n ppt ppt2 ppt3 ppt4 ppt5 pt pt_10 pt_11 pt2 pt3 pt4 pt5 py rad ss sslst sslst2 stream tempname y) ;!!!轴测图转换工具
(defun gps->pt-trans (pt y)
(if pt
(trans (polar (list (car (trans pt 0 1)) y)
(* 0.25 PI)
(- (cadr (trans pt 0 1)) y) )
1 0 ))
)
(defun gps->ang-trans (ang y / ang_pt1_2 ang_pt2 ang_pt2_2 ang_tmp)
(setq ang_pt2 (polar '(0 0) ang 10))
(setq ang_pt1_2 (gps->pt-trans '(0 0) y)
ang_pt2_2 (gps->pt-trans ang_pt2 y)
)
(setq ang_tmp (angle ang_pt1_2 ang_pt2_2) )
)

(cond ((= $blk "1") (princ "\n请选择要转换的物体(遇块炸开):" ))
((= $blk "0") (princ "\n请选择要转换的物体(遇块不炸):"))
(T (setq $blk "0")(princ "\n请选择要转换的物体(遇块不炸):"))
)

(setq sslst (gps->ss-2lst (ssget)) sslst2 sslst)
(if sslst
(progn
(while (/= (type aa) 'LIST)
(initget 2 "S")
(setq aa (getpoint "\n设置(S)/选择基准点:"))
(cond ((= (type aa) 'STR)
(setq dclname
(cond
((setq tempname (vl-filename-mktemp "SLB-VIEW.tmp") filen (open tempname "w"))
(foreach stream
'(
"gpslrr:dialog {\n"
" label = \"参数设置\" ;\n"
" :boxed_column {\n"
" vertical_margin = none ;\n"
" :toggle {\n"
" key = \"blk\" ;\n"
" label = \"炸开块、标注\" ;\n"
" }\n"
" }\n"
;" :boxed_column {\n"
;" vertical_margin = none ;\n"
; " :edit_box {\n"
; " key = \"nspl\" ;\n"
; " label = \"拟合SPLINE线段数量\" ;\n"
; " value = \"100\";\n"
; " }\n"
; " }\n"
" ok_cancel;\n"
"}\n"
)
(princ stream filen)
)
(close filen)
tempname
)))
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-03-04 19:49
兄弟,问题搞复杂了。

AutoCAD本身就是三维辅助设计软件,直接通过模型空间建模,图纸空间做轴测图就好了。功能比用LSP强大多了。

你在走前的弯路了……

中国国内很多的AutoCAD教学,有问题的。
全部回答
  • 1楼网友:夜余生
  • 2021-03-04 19:55
(setq ss (ssget "x" '((0 . "text")(cons 62 1) (-4 . "=") (40 . 5)))) ;红色 (setq ss (ssget "x" '((0 . "text")(cons 62 255) (-4 . "=") (40 . 5)))) ;黑色 颜色就按 color中的颜色序号设置
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯