JONTHEPOPE 发表于 2022-7-6 10:02:34

Lisp代码

我很喜欢这个网站和使用autolisp代码。
 
有人知道我可以用什么方法写一个简单的代码吗
 
公式
 

y=mx+b

 
或者任何其他类型的图形计算?
 
谢谢jtp

BIGAL 发表于 2022-7-6 10:16:33

(setq y(+(*M X)B))?????????

Lee Mac 发表于 2022-7-6 10:28:59

这将绘制大多数函数:
 
http://www.cadtutor.net/forum/showthread.php?53014-绘制正余弦波任意想法&p=358974&viewfull=1#post358974
 
使用该功能:
 
(setq fun (lambda ( x ) (+ (* m x) c)))
 
对于任意m&c值。

pBe 发表于 2022-7-6 10:36:01

李·麦克,
 
您将如何编写此代码?
 

(defun c:testL (/ L1 L2 1data 2data 1A 1B 2A 2B s_t X1 X2 X3 X4 line_distance)
(while (not (and
      (setq L1 (car (entsel "\nSelect a Line: "))
   L2 (car (entsel "\nSelect another Line: "))
      )
    )
      )
)   
(cond
((setq
   1data (entget L1)
   2data (entget L2)
   1A    (cdr (assoc 10 1data)) ; start of first Line
   1B    (cdr (assoc 11 1data)) ; end of first Line
   2A    (cdr (assoc 10 2data)) ; start of second Line
   2B    (cdr (assoc 11 2data)) ; end of second Line
   s_t   0
   )
   (repeat 3
   (setq x1 (nth s_t 1A)
    x2 (nth s_t 1B)
    x3 (nth s_t 2A)
    x4 (nth s_t 2B)
   )
   (setq vts
   (/ (* (abs (- x3 x1))
    (* (abs (- x2 x1)) (abs (- x4 x3)))
      )
      (* (abs (- x2 x1)) (abs (- x4 x3)))
   )
   )
   (set (setq vv (read (strcat "D" (itoa (+ s_t 1))))) vts)
   (setq s_t (1+ s_t))
   )
   (setq line-distance (sqrt (+ (* d1 d1) (* d2 d2) (* d3 d3))))
   (princ)
)
)
)

 
这是一个获得两条斜线之间最短距离的方程。。。不知怎的,我没有得到我需要的结果。。
这部分是我不确定的地方(公式)
 


(setq line-distance (sqrt (+ (* d1 d1) (* d2 d2) (* d3 d3))))

 
数学arrrgh公司

Lee Mac 发表于 2022-7-6 10:47:22

像这样的?
 
每条线可以位于无限多个平面中,但其中只有两个在3-空间中相互平行,因此取线的两个方向向量的叉积,我们可以找到这些平行平面的法向量。然后,我们可以使用点积将两个平面之间的任何向量投影到单位法线,以获得最短距离。
 
这可能对您有所帮助:
 
http://lee-mac.com/mathematicalfunctions.html
 
 

JONTHEPOPE 发表于 2022-7-6 10:55:36

哇,谢谢!

pBe 发表于 2022-7-6 11:12:29

 
哦,是的。。。谢谢李
页: [1]
查看完整版本: Lisp代码