本帖最后由 lohas1118 于 2013-6-20 19:51 编辑
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-19483.png
此程序只能绘制Y轴视图,如何增加可绘制X轴视图的功能。
不知为何原因无法上传图片,通俗点说就是只能画竖的方向视图,但有时我需要画横的方向视图。求高手帮忙修改,多谢了。
补充:绘制的视图是聚合的,要修改成不是聚合线的图。
;;;;;;冲子侧视图绘制程序
(defun c:cfs()
(setq oce (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq OSM (getvar "OSMODE"))
(setvar "OSMODE" 0)
(if (= run nil)
(progn
(setq qza 50)
(setq oqza qza)
(setq vd 20)
(setq oVd Vd)
(setq run 1)
)
)
(setq msg "请输入高度值:")
(if (/= qza nil) (setq msg (strcat "\n请输入高度值<" (rtos qza) ">:")))
(initget 6)
(setq qza (getreal msg))
(if (= qza nil) (setq qza oqza))
(setq oqza qza)
(setq msg "\n请输入视图间距:")
(if (/= Vd nil) (setq msg (strcat "\n请输入视图间距<" (rtos Vd) ">:")))
(initget 6)
(setq Vd (getreal msg))
(if (= Vd nil) (setq Vd oVd))
(setq oVd Vd)
(initget 1)
(setq poi (getpoint "\n请在原图内选取一点"))
(COMMAND "BOUNDARY" poi "")
(setq txtnn (ssget "L"))
(setq txtn (ssname txtnn 0))
(setq tdate (entget txtn))
(command "undo" "1")
(setq x (list (cadr (assoc '10 tdate))))
(setq y (list (caddr (assoc '10 tdate))))
(foreach n tdate
(if (= 10 (car n))
(progn
(setq x1 (list (cadr n)))
(setq x (append x x1))
(setq y1 (list (caddr n)))
(setq y (append y y1))
)
)
)
(setq x1 (car (vl-sort x '>)))
(setq x2 (car (vl-sort x '<)))
(setq y1 (car (vl-sort y '>)))
(setq y2 (car (vl-sort y '<)))
(setq dx (- x1 x2))
(setq dy (- y1 y2))
(setq ck (getpoint "\n请在有缺口一侧点击"))
(if (< (car ck) (* 0.5 (+ x1 x2)))
(progn
(setq pf (list x2 (- y2 Vd)))
(setq pf1 (mapcar '+ pf (list dx 0)))
(setq pf2 (mapcar '- pf1 (list 0 qza)))
(setq pf3 (mapcar '- pf2 (list dx 0)))
(setq pf7 (mapcar '- pf (list 0 15.95)))
(setq pf6 (mapcar '+ pf7 (list 1 0)))
(setq pf5 (mapcar '- pf6 (list 0 3.5)))
(setq pf4 (mapcar '- pf5 (list 1 0)))
(command "ucs" "w")
(command "pline" pf pf1 pf2 pf3 pf4 pf5 pf6 pf7 "c")
)
(progn
(setq pf (list x2 (- y2 Vd)))
(setq pf1 (mapcar '- pf (list 0 qza)))
(setq pf2 (mapcar '+ pf1 (list dx 0)))
(setq pf7 (mapcar '+ pf (list dx 0)))
(setq pf6 (mapcar '- pf7 (list 0 17.95)))
(setq pf5 (mapcar '- pf6 (list 1 0)))
(setq pf4 (mapcar '- pf5 (list 0 3.5)))
(setq pf3 (mapcar '+ pf4 (list 1 0)))
(command "ucs" "w")
(command "pline" pf pf1 pf2 pf3 pf4 pf5 pf6 pf7 "c")
)
)
(setvar "OSMODE" OSM)
(setvar "cmdecho" oce)
)
|