明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1352|回复: 8

[提问] 完善均分程序

[复制链接]
发表于 2015-2-25 11:07 | 显示全部楼层 |阅读模式
  1. (defun C:lg (/ pt1 pt2 l p1 p2 P3 P4 P5 P6 K setq old_OS old_CMD)
  2. ;;保存系统变量设置
  3.     (setq old_OS  (getvar "OSMODE")
  4.       old_CMD (getvar "CMDECHO")
  5.     )
  6.      
  7.     (setvar "CMDECHO" 0)
  8.     (command "-osnap" "INT")
  9.   (setq pt1 (getpoint "\n左下角点:"))
  10.   (setq pt2 (getpoint pt1 "\n右下角点:"))
  11. (setvar "OSMODE" 0)
  12.   (setq p1 (polar pt1 (/ pi 2.0) 400))
  13.   (setq p2 (polar pt2 (/ pi 2.0) 400))
  14.   (setq p3 (polar pt1 (/ pi 2.0) 800))
  15.   (setq p4 (polar pt2 (/ pi 2.0) 800))
  16.   (setq p5 (polar pt1 (/ pi 2.0) 1200))
  17.   (setq p6 (polar pt2 (/ pi 2.0) 1200))
  18.   (command "line" p1 p2 "")
  19.   (command "line" p3 p4 "")
  20.   (command "line" p5 p6 "")
  21.   (command "line" pt2 p6 "")
  22.   (command "line" pt1 p5 "")
  23.   (command "line" pt1 pt2 "")
  24.   (setq k (angle pt1 pt2))
  25.   (setq L (distance pt1 pt2))
  26.   (setq N (/ L 1200))
  27.   (setq I 1)
  28.   (setq P0 Pt1)
  29. (while (<= i N)
  30.   (setq P1 (polar p0 (/ pi 2.0) 1200))
  31.   (command "line" p0 p1 "")
  32.   (setq p0 (polar p0 k 1200))
  33.   (setq I (+ i 1))
  34. )
  35. ;;恢复系统变量设置
  36.     (setvar "CMDECHO" old_CMD)
  37.     (setvar "OSMODE" old_OS)
  38.     (setq *error* olderr)
  39.   (princ)
  40. )
大家新年好。我写的一个小玩意,竖直线的间距是1200,但当最后的距离大于1200小于2400时,最后的距离就是这个值。这个不是我想要得效果,我的想法是当整个长度不是1200的整数倍时,让竖直线的间距按接近1200的值均分这个长度。请高手完善一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-2-25 12:47 | 显示全部楼层
  1. ;; tt(间距均分)
  2. (defun c:tt ()
  3.   (setq int (Uint 1 "" "垂直数量" int))
  4.   (while (and (setq pt1 (getpoint "\n左下角点: "))
  5.               (setq pt2 (getpoint pt1 "\n右下角点: "))
  6.          )
  7.     (setq ll  (distance pt1 pt2)
  8.           dd1 (/ ll 1200.)
  9.           nn  (fix dd1)
  10.           nn  (if (= nn dd1)
  11.                 nn
  12.                 (1+ nn)
  13.               )
  14.           s1  (xyp-line pt1 pt2)
  15.           s2  (xyp-line pt1 (xyp-Pt2Y pt1 (* int 400)))
  16.     )
  17.     (xyp-ArrayRV s1 (1+ int) 400)
  18.     (xyp-ArrayRH s2 (1+ nn) (/ ll nn 1.))
  19.   )
  20.   (princ)
  21. )
 楼主| 发表于 2015-2-25 14:29 | 显示全部楼层
谢谢院长,xyp-line xyp-ArrayRV xyp-ArrayRH你的这几个函数能否提供一下
发表于 2015-2-25 14:34 | 显示全部楼层
;生成直线
  1. (defun cx-mak-line (pt1 pt2 )
  2.   (entmakex (list '(0 . "LINE") (cons 10 pt1) (cons 11 pt2)))
  3. )
发表于 2015-2-25 14:36 | 显示全部楼层
关于2个阵列.
  1. (vla-ArrayRectangular  tc_en_obj rc_chang rc_kuan 1 *small_a *small_a 0.0)
复制代码
发表于 2015-2-26 08:32 | 显示全部楼层
  1. (defun C:lg (/ pt1 pt2 l p1 p2 P3 P4 P5 P6 K old_OS)
  2. ;;保存系统变量设置
  3. (setq old_OS (getvar "OSMODE"))
  4. (setvar "OSMODE" 32);INT
  5. (setq pt1 (getpoint "\n左下角点: "))
  6. (setq pt2 (getpoint pt1 "\n右下角点: "))
  7. (setvar "OSMODE" 0)
  8. (setq k (angle pt1 pt2))
  9. (setq L (distance pt1 pt2))
  10. (setq N (fix (/ L 1200)))
  11. (setq dst (/ L N))
  12. (setq p1 (polar pt1 (/ pi 2) 400))
  13. (setq p2 (polar pt2 (/ pi 2) 400))
  14. (setq p3 (polar pt1 (/ pi 2) 800))
  15. (setq p4 (polar pt2 (/ pi 2) 800))
  16. (setq p5 (polar pt1 (/ pi 2) 1200))
  17. (setq p6 (polar pt2 (/ pi 2) 1200))
  18. (entmake (list '(0 . "LINE") (cons 10 p1) (cons 11 p2)))
  19. (entmake (list '(0 . "LINE") (cons 10 p3) (cons 11 p4)))
  20. (entmake (list '(0 . "LINE") (cons 10 p5) (cons 11 p6)))
  21. (entmake (list '(0 . "LINE") (cons 10 p6) (cons 11 pt2)))
  22. (entmake (list '(0 . "LINE") (cons 10 pt2) (cons 11 pt1)))
  23. (entmake (list '(0 . "LINE") (cons 10 pt1) (cons 11 p5)))
  24. (setq P0 Pt1)
  25. (repeat (1- N)
  26.   (setq p0 (polar p0 k dis))
  27.   (setq P1 (polar p0 (/ pi 2) 1200))
  28.   (entmake (list '(0 . "LINE") (cons 10 p0) (cons 11 p1)))
  29. )
  30. (setvar "OSMODE" old_OS)
  31. (princ)
  32. )
 楼主| 发表于 2015-2-26 11:29 | 显示全部楼层
错误: 输入的列表有缺陷
发表于 2015-3-4 14:57 | 显示全部楼层
鱼与熊掌 发表于 2015-2-25 14:34
;生成直线

  1. (defun line(argments);;argments==>(list p1 p2 图层 颜色 线型 厚度 线宽)p2以后可依次省略
  2.   (entmakex(mapcar'cons'(0 10 11 8 62 6 39 370)(cons"line"argments))))
发表于 2015-3-4 16:36 | 显示全部楼层
ZZXXQQ 发表于 2015-2-26 08:32
请问如何画出方框里红色的平分线?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 08:03 , Processed in 0.187022 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表