嘿
谢谢你的回复。
我附上了文件scharnier。zip,因为它是一个三维实体对象。
只有在播放lisp并在二维对象捕捉点上拾取拾取点时,lisp文件才能正常工作。但是,如果我在中播放lisp并从3d对象中拾取一个拾取点,结果是它必须绘制的长方体的尺寸/大小完全不同。
我会给你代码,这样你就可以看到命令了
ps1:你只能在acad中加载一次附件后播放这个lisp,否则他找不到文件。。。
ps2:有人知道我如何在不首先加载块的情况下插入附件中类似的块吗?
- (defun c:front ()
- ;define the function
- ;*
- ;Save System Variables
- (setq oldsnap (getvar "osmode"))
- ;save snap settings
- (setq oldblipmode (getvar "blipmode"))
- ;save blipmode setting
- ;*
- ;Switch OFF system Variables
- (setvar "osmode" 0)
- ;Switch OFF snap
- (setvar "blipmode" 0)
- ;Switch OFF Blipmode
- ;*
- ;get User Inputs
- (setq s (getdist "\Offset of the front:"))
- ;Hoeveel speling rondom de fronten
- (setq d (getdist "\nThickness of the front : "))
- ;Thickness of the front
- (setq h (getdist "\nHight of the front : "))
- ;Hight of the front
- (setq b (getdist "\nWidth of the front : "))
- ;Width of the front
- ;*
- ;Get Insertion Point
- (setvar "osmode" 32)
- ;Switch ON snap
- (setq ip (getpoint "\nInsertion Point : "))
- ;get the insertion point
- (setvar "osmode" 0)
- ;Switch OFF snap
- (setvar "cmdecho" 1)
- ;*
- ;Start of Polar calculations
- (setq p2 (polar ip (dtr 0.0) 0))
- (setq p3 (polar ip (dtr 0.0) b))
- (setq p4 (polar p3 (dtr -90.0) d))
- (setq p5 (list (car p2) (cadr p2) (+ (caddr p2) h)))
- (setq p6 (list (car p5) (cadr p5) (- (caddr p5) 160)))
- (setq r1 (list (car p2) (cadr p2) (+ (caddr p2) s)))
- (setq p7 (polar p2 (dtr 0.0) s))
- (setq p8 (list (car p7) (cadr p7) (+ (caddr p7) s)))
- (setq p9 (polar r1 (dtr 0.0) b))
- (setq p10 (polar p9 (dtr 180.0) s))
- (setq p11 (list (car p7) (cadr p7) (+ (caddr p7) h)))
- (setq p12 (list (car p11) (cadr p11) (- (caddr p11) s)))
- (setq p13 (polar p10 (dtr -90.0) d))
- ;End of Polar Calculations
- ;*
- ;Start of Command Function
- (command "ucs" "w"
- ) ;End command
- (command "box" p8 p13 p12
- ) ;End Command
- ;End of Command Function
- ;Start of Command Function
- (command "-insert" "listscharnier" "_non" ip "" "" "0"
- "-insert" "listscharnier" "_non" p6 "" "" "0"
- ) ;End command
- ;End of Command Function
- ;*
- (setvar "osmode" 32)
- ;Switch ON snap
- ;*
- ;Reset System Variable
- (setvar "osmode" oldsnap)
- ;Reset snap
- (setvar "blipmode" oldblipmode)
- ;Reset blipmode
- ;*
- (princ)
- ;finish cleanly
- );end of defun
- ;*
- ;This function converts Degrees to Radians.
- (defun dtr (x)
- ;define degrees to radians function
- (* pi (/ x 180.0))
- ;divide the angle bij 180 then
- ;mutiply the result by the constant PI
- ) ;End of function
- ;*
- (princ) ;load cleanly
- ;*
有人知道吗?
沙尼尔。拉链 |