明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 钾肥

自己编写的一个LISP有问题!哪位帮忙解决一下

  [复制链接]
发表于 2004-1-4 19:36:00 | 显示全部楼层
具体用途不清楚,所以不好判断
但你的程序倒不是坐标系的问题,而是两条平行线只要不是水平或垂直就会有问题
你少点取了一个参数(平行线的角度)
 楼主| 发表于 2004-1-4 21:39:00 | 显示全部楼层
这个程序主要是用来画风管或线槽等物体的断口的!
不知道这么取!

你知道吗?
发表于 2004-1-9 08:50:00 | 显示全部楼层
看看这样是否可行

  1. (defun err(msg)
  2.   (princ msg)
  3.   (setvar "osmode" os)
  4.   (setvar "cmdecho" cmd)
  5.   (setq *error* errtmp)
  6.   (princ)
  7. )

  8. (defun c:test( / pt1 pt2 pt3 ptCenter)
  9.   (setq os (getvar "osmode"))
  10.   (setq cmd (getvar "cmdecho"))
  11.   (setq errtmp *error*)
  12.   (setq *error* err)
  13.   (setq pt1 (getpoint "\n输入第一点:"))
  14.   (setq pt2 (getpoint "\n输入第二点:"))
  15.   (setvar "osmode" 0)
  16.   (setvar "cmdecho" 0)
  17.   (setq pt1 (trans pt1 1 0))
  18.   (setq pt2 (trans pt2 1 0))
  19.   (command "_.ucs" "")
  20.   (setq ptCenter (list (/ (+ (car pt1) (car pt2)) 2)
  21.                        (/ (+ (cadr pt1) (cadr pt2)) 2)
  22.                        0.0))
  23.   (setq ang (angle pt1 pt2))
  24.   (if (> ang pi)
  25.     (setq ang (- ang pi))
  26.   )
  27.   (cond
  28.     ((equal (/ pi 2) ang 0.00001) (setq pt3 nil))
  29.     (t (setq pt3 (polar ptCenter (- ang) (/ (distance pt1 pt2) 2))))
  30.   )

  31.   (command "_.line" pt1 pt2 "")
  32.   (if pt3
  33.     (command "_.line" ptCenter pt3 "")
  34.   )
  35.   (command "_.ucs" "p")
  36.   (setvar "osmode" os)
  37.   (setvar "cmdecho" cmd)
  38.   (setq *error* errtmp)
  39.   (princ)
  40. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 12:58 , Processed in 0.158320 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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