你好
我一直在尝试编写自己的例程,将外部参照附着到图形。LISP的原因是我们在两个不同的网格系统中有设计和测量图纸。我不希望最终用户每次需要从其他网格系统外部参照图形时都必须输入比例、插入和旋转参数,因为这样做可能会出错。
我已经使用LISP例程很多年了,但对实际语言没有太多经验。我在下面写的似乎很有效,但我想知道是否存在错误,以及是否可以用更好的方式写。
非常感谢您的帮助。
我还附上了我的测试图纸。代码从“CONVERT OSGB36_300916”运行。dwg“和”CONVERT LOCAL_300916。dwg’是要附着的外部参照。我打算包括覆盖或附加选项,以毫米为单位处理图形,以及此转换的逆。欢迎提出任何其他建议。
转换OSGB36_300916。图纸
转换本地_300916。图纸
- (defun c:MAGXREF (/ UserAngBase UserAngDir MAGinsert MAGscale MAGrotate MAGdwg)
- (setvar "CMDECHO" 0)
- (setq
- UserAngBase (getvar "ANGBASE")
- UserAngDir (getvar "ANGDIR")
- )
- (setvar "ANGBASE" 0)
- (setvar "ANGDIR" 0)
- (setq
- MAGinsert "379371.746456400,369122.032139750" ;insert for drawing in meters. consider millimetres.
- MAGscale 0.999592303
- MAGrotate 38.704108479
- MAGdwg (getfiled "Select MAG Local DWG" (getvar "dwgprefix") "dwg"
- ;attach or overlay? - user input required
- )
- (command "-xref" "Attach" MAGdwg MAGinsert MAGscale MAGscale MAGrotate)
- (setvar "ANGBASE" UserAngBase)
- (setvar "ANGDIR" UserAngDir)
- (setvar "CMDECHO" 1)
- (prin1)
- )
|