明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3815|回复: 18

谁能给我详细解释下这个程序哦,怎么就是画虚线的呢??各个IF里边hh什么意义啊

  [复制链接]
发表于 2012-6-2 08:47:46 | 显示全部楼层 |阅读模式

;;vlisp 3.0
;;BY Amtonny
;;2009.04.02
(defun C:ll ()
  (setq olderr *error*
*error* BZERR
  )
  (princ "\n******画虚线******")
  (while t
    (setvar "cmdecho" 0)
  (setq pa (getpoint "\n 请指定虚线第一点:"))
  (setq pb (getpoint pa"\n 请指定下一点:"))
   (setq hh (distance pa pb))
  (command "LINE" pa pb"")
  (if (<= hh 0.7000000 )
  (command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "0.5" ""))
  (if (> hh 0.70000001 )
  (command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "0.7" ""))
  (if (> hh 1.20000001 )
  (command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "1" ""))
    (if (> hh 2.000001 )
(command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "2" ""))
    (if (> hh 5.00001 )
(command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "5" ""))
    (if (> hh 30.0000 )
(command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "10" ""))
    (if (> hh 50.000001 )
(command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "15" ""))
    (if (> hh 90.000001 )
(command "change" (entlast) "" "p" "color" "252" "ltype" "DASHED2" "S" "20" ""))
      (princ "\n")
    )
  (setq *error* olderr)
  (princ)
)




该贴已经同步到 L。小妖。的微博
发表于 2012-6-3 22:40:05 | 显示全部楼层
L。小妖。 发表于 2012-6-3 22:18
根据自己需要来分段的话,那我懂了~你说的很明白,谢谢你哦!!

都是这样过来的。加油吧
回复 支持 1 反对 0

使用道具 举报

发表于 2012-6-2 09:52:50 | 显示全部楼层
hh是所画的线长
发表于 2012-6-2 10:50:16 | 显示全部楼层
很基础的东西。建议看看明经LSP教程就明白了。
 楼主| 发表于 2012-6-3 16:07:01 | 显示全部楼层
ZZXXQQ 发表于 2012-6-2 09:52
hh是所画的线长

是线长。但是<= hh 0.7000000 是什么意思呢,  
为什么要按下面这样分类呢?这样分类就能把任何实线改成虚线么?(if (<= hh 0.7000000 )
   (if (> hh 0.70000001 )
    (if (> hh 1.20000001 )
     (if (> hh 2.000001 )
    (if (> hh 5.00001 )
    (if (> hh 30.0000 )
    (if (> hh 50.000001 )
    (if (> hh 90.000001 )
 楼主| 发表于 2012-6-3 16:09:39 | 显示全部楼层
wowan1314 发表于 2012-6-2 10:50
很基础的东西。建议看看明经LSP教程就明白了。

哦。就是不太明白为何如此分类,怎么就能把任何实线都改成虚线了(if (<= hh 0.7000000 )
   (if (> hh 0.70000001 )
    (if (> hh 1.20000001 )
     (if (> hh 2.000001 )
    (if (> hh 5.00001 )
    (if (> hh 30.0000 )
    (if (> hh 50.000001 )
    (if (> hh 90.000001 )
发表于 2012-6-3 16:50:15 | 显示全部楼层
程序就是改的虚线呀。
发表于 2012-6-3 17:23:08 | 显示全部楼层
你这个是根据长的度长自动给设定虚线比列的!
发表于 2012-6-3 19:01:41 | 显示全部楼层
没看懂,再研究研究,支持!
 楼主| 发表于 2012-6-3 21:03:53 | 显示全部楼层
功夫佬 发表于 2012-6-3 17:23
你这个是根据长的度长自动给设定虚线比列的!

什么是“长的度长”和“虚线比列”啊~
 楼主| 发表于 2012-6-3 21:28:48 | 显示全部楼层
ZZXXQQ 发表于 2012-6-3 16:50
程序就是改的虚线呀。

就是为什么能改了。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-21 23:54 , Processed in 0.218391 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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