通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  上等兵

注册:2011-4-6
跳转到指定楼层
1#
发表于 2012-11-9 11:52:11 |只看该作者 |倒序浏览
;按比例画杆路
(defun c:hgl(/ lx ls zg oce bl p1 ghqz gh r osm a1 len p2 p11 p22 p3 a2 p4 p5 ghstring)
  (setq lx 2.25 ;设定直线下面的字偏离直线的距离为lx
        ls 2.25 ;设定直线上面的字偏离直线的距离为ls
        zg 1.5) ;设定字高zg
  (command "-style" "Standard" "" 0 "" "" "" "" "")    ;切换到默认的字体
  (graphscr) ;切换到图形窗口
  (setq oce (getvar "cmdecho"))  ;储存旧的指令响应值
  (setvar "cmdecho" 0)         ;关闭指令响应
  (setq bl 8000                     ;(getint "\n请输入比例尺[1:X]内的X值<推荐4000>:")
        p1 (getpoint "\n杆路的起点:")         ;取得基准点p1      
        ghqz (getstring "\n杆号前缀<不包括常用的字母“P”,可不输入>:")
        gh (getint "\n杆号<单纯一个整数>:")                             ;取得杆号标注
        r 1               ;电杆半径
  )
(setq osm (getvar "osmode"))  ;储存对象捕捉的系统变量
(setvar "osmode" 0)           ;关闭对象捕捉
;;;;;;;;开始外循环
(while (setq a1 (getangle p1 "\n杆路的方向<右键退出/Esc退出>:"))   ;取得杆路的方向
;;;;;;;;开始内循环
  
(while (setq len (getdist "\n请输入杆距<米>:"))   ;取得杆距
(setq
    p2 (polar p1 a1 (/ (* len 1000) bl))         ;计算p2的坐标
    p11 (polar P1 a1 r)
    p22 (polar p1 a1 (- (/ (* len 1000) bl) r))
    p3 (list (/ (+ (car p1) (car p2)) 2.0) (/ (+ (cadr p1) (cadr p2)) 2.0)) ;计算p1p2的中点p3的坐标
)
  (command ".line" p11 p22 "") ;画直线
  ;(command ".point" p2) ;画点标记
  (command ".circle" p2 r) ;画圆形

(if (and  (> a1 (* pi 0.5))(< a1 (* pi 1.5)))
    (setq a2 (angle p2 p1))
    (setq a2 a1)
)
(setq
    p4 (polar p2 (+ a2 (/ pi 2)) ls) ;计算直线上面的文字位置 杆号
    p5 (polar p3 (- a2 (/ pi 2)) lx) ;计算直线下面的文字位置
    ghstring (strcat ghqz "P" (itoa gh))
)
(if (= (rem gh 3) 0)
  (command ".text" "m" p4 zg (/ (* a2 180) pi) ghstring) ;以中央对齐的方式写直线上面的字   杆号
)
  (command ".text" "m" p5 zg (/ (* a2 180) pi) (rtos len 2 1)) ;以中央对齐的方式写直线下面的字:米
  
  (command ".-pan" p2 p1)       ;平移窗口
  (setq p1 p2)                  ;开始重复
  (setq gh (+ 1 gh))            ;杆号自加1
)       ;内循环体结束
)       ;外循环体结束
(setvar "osmode" osm)         ;恢复对象捕捉
(setvar "cmdecho" oce) ;恢复旧的指令响应值
  (princ)
) ;c:hgl函数结束

举报本楼

本帖有 2 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-5-21 12:23 , Processed in 0.116462 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部