柱脚的最后一个角度
我在网上找到了这个代码,不知道出了什么问题。我需要找到最后一个角度,这样我就可以在最后一个角度的方向上插入一个块到最后一个点。非常感谢您的帮助。
(DEFUN C:FPOLE(/ent sub1 ptlist pt1 pt2 ang)
(命令“pLINE”)
(while(=1(getvar“cmdactive”))
(命令暂停)
)
(SETQ ENT(CAR(ENTLAST)))
(SETQ SUB1(ENTNEXT ENT))
(SETQ PTLIST NIL)
(当SUB1
(IF(=(CDR(aSSOC 0(ENTGET SUB1)))“顶点”)
(SETQ PTLIST(追加PTLIST(列表
(CDR(aSSOC 10(ENTGET SUB1 kаааа)а)
)
(SETQ SUB1(ENTNEXT SUB1))
)
(SETQ PT1(CADR(反向PTLIST)))
(SETQ PT2(最后一个PTLIST))
(SETQ ANG1(角度PT1 PT2))
(SETQ ANG2(RTOS(*180.0(/ANG1 pi)))2 4)
(COMAND“INSERT”“FLAG”“1”“1”ANG2)
) 最后一个“command”函数只有一个“m”,Insert命令没有指定插入点。
然而,我倾向于在这项任务中使用曲线函数,因为代码将适用于圆弧、圆、直线、多段线、LW多段线、椭圆、样条曲线等。
(defun c:test ( / a e p ) (vl-load-com)
(if
(and (setq e (car (entsel)))
(not
(vl-catch-all-error-p
(setq p
(vl-catch-all-apply 'vlax-curve-getEndParam (list e))
)
)
)
(setq a (* 180. (/ (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv e p)) pi)))
)
(command "_.-insert" "flag" "_non" (trans (vlax-curve-getPointatParam e p) 0 1) "1" "1" a)
)
(princ)
)
注意,没有检查“flag”块的存在。 哦,顺便说一句,请阅读这篇关于邮寄代码的文章。 谢谢李!你是最好的。你总是激励我说,Lisp程序是多么简单,但在一个简单的头脑里却太复杂了。 谢谢Shakuhachi
我很高兴能为我的帖子提供一些灵感
页:
[1]